annotate model/newsletter_to_send.lua @ 1570:dcacc0b98d70
Fixed filter for issue list of units without privilege
 | author | bsw | 
 | date | Wed Nov 11 12:23:48 2020 +0100 (2020-11-11) | 
 | parents | 4b1f59181341 | 
 | children |  | 
 
 | rev | line source | 
| bsw@1248 | 1 NewsletterToSend = mondelefant.new_class() | 
| bsw@1248 | 2 NewsletterToSend.table = 'newsletter_to_send' | 
| bsw@1248 | 3 | 
| bsw@1248 | 4 NewsletterToSend:add_reference{ | 
| bsw@1248 | 5   mode          = 'm1', | 
| bsw@1248 | 6   to            = "Newsletter", | 
| bsw@1248 | 7   this_key      = 'newsletter_id', | 
| bsw@1248 | 8   that_key      = 'id', | 
| bsw@1248 | 9   ref           = 'newsletter', | 
| bsw@1248 | 10 } | 
| bsw@1248 | 11 | 
| bsw@1248 | 12 NewsletterToSend:add_reference{ | 
| bsw@1248 | 13   mode          = 'm1', | 
| bsw@1248 | 14   to            = "Member", | 
| bsw@1248 | 15   this_key      = 'recipient_id', | 
| bsw@1248 | 16   that_key      = 'id', | 
| bsw@1248 | 17   ref           = 'member', | 
| bsw@1248 | 18 } | 
| bsw@1248 | 19 | 
| bsw@1248 | 20 function NewsletterToSend:get_next() | 
| bsw@1248 | 21   return NewsletterToSend:new_selector() | 
| bsw@1248 | 22     :set_distinct("newsletter_id") | 
| bsw@1252 | 23     -- SAFETY FIRST, NEVER send newsletter more then 21 days in past or future | 
| bsw@1252 | 24     :add_where("now() - published BETWEEN '-21 days'::interval AND '21 days'::interval") | 
| bsw@1252 | 25     :add_order_by("published") | 
| bsw@1248 | 26     :add_order_by("newsletter_id") | 
| bsw@1248 | 27     :limit(1) | 
| bsw@1248 | 28     :optional_object_mode() | 
| bsw@1248 | 29     :exec() | 
| bsw@1248 | 30 end | 
| bsw@1248 | 31 | 
| bsw@1248 | 32 function NewsletterToSend:by_newsletter_id(id) | 
| bsw@1248 | 33   return NewsletterToSend:new_selector() | 
| bsw@1248 | 34     :add_where{ "newsletter_id = ?", id } | 
| bsw@1296 | 35     :add_order_by("random()") | 
| bsw@1248 | 36     :exec() | 
| bsw@1248 | 37 end |