annotate model/newsletter_to_send.lua @ 1530:94d6843fdc94
Add language chooser to profile page
 | author | 
 bsw | 
 | date | 
 Mon Sep 21 18:44:25 2020 +0200 (2020-09-21) | 
 | 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 |