liquid_feedback_frontend
diff app/main/member/settings_notification.lua @ 287:ee477a136fd4
Moved notification functions to model
| author | bsw |
|---|---|
| date | Sat Feb 25 12:04:36 2012 +0100 (2012-02-25) |
| parents | c587d8762e62 |
| children | 9e6a23f11f32 |
line diff
1.1 --- a/app/main/member/settings_notification.lua Sat Feb 25 11:51:37 2012 +0100 1.2 +++ b/app/main/member/settings_notification.lua Sat Feb 25 12:04:36 2012 +0100 1.3 @@ -1,58 +1,3 @@ 1.4 -function send_notification(event) 1.5 - 1.6 - local url 1.7 - 1.8 - local body = "" 1.9 - 1.10 - body = body .. _(" Unit: #{name}\n", { name = event.issue.area.unit.name }) 1.11 - body = body .. _(" Area: #{name}\n", { name = event.issue.area.name }) 1.12 - body = body .. _(" Issue: ##{id}\n", { id = event.issue_id }) 1.13 - body = body .. _(" Policy: #{phase}\n", { phase = event.issue.policy.name }) 1.14 - body = body .. _(" Phase: #{phase}\n\n", { phase = event.state }) 1.15 - body = body .. _(" Event: #{event}\n\n", { event = event.event }) 1.16 - 1.17 - if event.initiative_id then 1.18 - url = request.get_absolute_baseurl() .. "initiative/show/" .. event.initiative_id .. ".html" 1.19 - elseif event.suggestion_id then 1.20 - url = request.get_absolute_baseurl() .. "suggestion/show/" .. event.suggestion_id .. ".html" 1.21 - else 1.22 - url = request.get_absolute_baseurl() .. "issue/show/" .. event.issue_id .. ".html" 1.23 - end 1.24 - 1.25 - body = body .. _(" URL: #{url}\n\n", { url = url }) 1.26 - 1.27 - if event.initiative_id then 1.28 - local initiative = Initiative:by_id(event.initiative_id) 1.29 - body = body .. _("i#{id}: #{name}\n\n", { id = initiative.id, name = initiative.name }) 1.30 - else 1.31 - local initiative_count = Initiative:new_selector() 1.32 - :add_where{ "initiative.issue_id = ?", event.issue_id } 1.33 - :count() 1.34 - local initiatives = Initiative:new_selector() 1.35 - :add_where{ "initiative.issue_id = ?", event.issue_id } 1.36 - :add_order_by("initiative.supporter_count DESC") 1.37 - :limit(3) 1.38 - :exec() 1.39 - for i, initiative in ipairs(initiatives) do 1.40 - body = body .. _("i#{id}: #{name}\n", { id = initiative.id, name = initiative.name }) 1.41 - end 1.42 - if initiative_count - 3 > 0 then 1.43 - body = body .. _("and #{count} more initiatives\n", { count = initiative_count }) 1.44 - end 1.45 - body = body .. "\n" 1.46 - end 1.47 - 1.48 - if event.suggestion_id then 1.49 - local suggestion = Suggestion:by_id(event.suggestion_id) 1.50 - body = body .. _("#{name}\n\n", { name = suggestion.name }) 1.51 - end 1.52 - 1.53 - slot.put("<pre>", encode.html_newlines(body), "</pre>") 1.54 - slot.put("<hr />") 1.55 -end 1.56 - 1.57 - 1.58 - 1.59 slot.put_into("title", _"Notification settings") 1.60 1.61 slot.select("actions", function() 1.62 @@ -155,31 +100,5 @@ 1.63 ui.submit{ value = _"Change display settings" } 1.64 end 1.65 } 1.66 - 1.67 -local last_id = 6000; 1.68 - 1.69 -while last_id < 6050 do 1.70 - 1.71 - local event = Event:new_selector() 1.72 - :add_where{ "event.id > ?", last_id } 1.73 - :add_order_by("event.id") 1.74 - :limit(1) 1.75 - :optional_object_mode() 1.76 - :exec() 1.77 - 1.78 - last_id = nil 1.79 - if event then 1.80 - last_id = event.id 1.81 - local members_to_notify = Member:new_selector() 1.82 - :join("event_seen_by_member", nil, { "event_seen_by_member.seen_by_member_id = member.id AND event_seen_by_member.notify_level <= member.notify_level AND event_seen_by_member.id = ?", event.id } ) 1.83 - :add_where("member.activated NOTNULL AND member.notify_email NOTNULL") 1.84 - :exec() 1.85 - ui.container{ content = _("Event #{id} -> #{num} members", { id = event.id, num = #members_to_notify }) } 1.86 - 1.87 - send_notification(event) 1.88 - 1.89 - end 1.90 -end 1.91 - 1.92 - 1.93 + 1.94 -- select event.id, event.occurrence, membership.member_id NOTNULL as membership, interest.member_id NOTNULL as interest, supporter.member_id NOTNULL as supporter, event.event, event.state, issue.id, initiative.name FROM event JOIN issue ON issue.id = event.issue_id LEFT JOIN membership ON membership.area_id = issue.area_id AND membership.member_id = 41 LEFT JOIN interest ON interest.issue_id = issue.id AND interest.member_id = 41 LEFT JOIN initiative ON initiative.id = event.initiative_id LEFT JOIN supporter ON supporter.initiative_id = initiative.id AND supporter.member_id = 41 WHERE (((event.event = 'issue_state_changed' OR event.event = 'initiative_created_in_new_issue') AND membership.member_id NOTNULL OR interest.member_id NOTNULL) OR (event.event = 'initiative_created_in_existing_issue' AND interest.member_id NOTNULL) OR ((event.event = 'initiative_revoked' OR event.event = 'new_draft_created' OR event.event = 'suggestion_created') AND supporter.member_id NOTNULL)) AND event.id > 7000 ORDER by event.id ASC LIMIT 1; 1.95 \ No newline at end of file