annotate model/newsletter_to_send.lua @ 1859:02c34183b6df
Fixed wrong filename in INSTALL file
author |
bsw |
date |
Tue Nov 28 18:54:51 2023 +0100 (17 months ago) |
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 |