liquid_feedback_frontend
view model/newsletter_to_send.lua @ 1843:b01d9920371b
merge
| author | jbe | 
|---|---|
| date | Thu Feb 03 15:57:22 2022 +0100 (2022-02-03) | 
| parents | 4b1f59181341 | 
| children | 
 line source
     1 NewsletterToSend = mondelefant.new_class()
     2 NewsletterToSend.table = 'newsletter_to_send'
     4 NewsletterToSend:add_reference{
     5   mode          = 'm1',
     6   to            = "Newsletter",
     7   this_key      = 'newsletter_id',
     8   that_key      = 'id',
     9   ref           = 'newsletter',
    10 }
    12 NewsletterToSend:add_reference{
    13   mode          = 'm1',
    14   to            = "Member",
    15   this_key      = 'recipient_id',
    16   that_key      = 'id',
    17   ref           = 'member',
    18 }
    20 function NewsletterToSend:get_next()
    21   return NewsletterToSend:new_selector()
    22     :set_distinct("newsletter_id")
    23     -- SAFETY FIRST, NEVER send newsletter more then 21 days in past or future
    24     :add_where("now() - published BETWEEN '-21 days'::interval AND '21 days'::interval")
    25     :add_order_by("published")
    26     :add_order_by("newsletter_id")
    27     :limit(1)
    28     :optional_object_mode()
    29     :exec()
    30 end
    32 function NewsletterToSend:by_newsletter_id(id)
    33   return NewsletterToSend:new_selector()
    34     :add_where{ "newsletter_id = ?", id }
    35     :add_order_by("random()")
    36     :exec()
    37 end
