liquid_feedback_frontend
view app/main/initiative/_action/add_support.lua @ 131:adc1b0554667
add make file to generate html help files
| author | Daniel Poelzleithner <poelzi@poelzi.org> | 
|---|---|
| date | Tue Oct 05 14:28:37 2010 +0200 (2010-10-05) | 
| parents | 72c5e0ee7c98 | 
| children | 034f96181e59 | 
 line source
     1 local initiative = Initiative:new_selector():add_where{ "id = ?", param.get_id()}:single_object_mode():exec()
     3 -- TODO important m1 selectors returning result _SET_!
     4 local issue = initiative:get_reference_selector("issue"):for_share():single_object_mode():exec()
     6 if issue.closed then
     7   slot.put_into("error", _"This issue is already closed.")
     8   return false
     9 elseif issue.fully_frozen then 
    10   slot.put_into("error", _"Voting for this issue has already begun.")
    11   return false
    12 end
    14 if initiative.revoked then
    15   slot.put_into("error", _"This initiative is revoked")
    16   return false
    17 end
    19 local member = app.session.member
    21 local supporter = Supporter:by_pk(initiative.id, member.id)
    23 local last_draft = Draft:new_selector()
    24   :add_where{ "initiative_id = ?", initiative.id }
    25   :add_order_by("id DESC")
    26   :limit(1)
    27   :single_object_mode()
    28   :exec()
    30 if not supporter then
    31   supporter = Supporter:new()
    32   supporter.member_id = member.id
    33   supporter.initiative_id = initiative.id
    34   supporter.draft_id = last_draft.id
    35   supporter:save()
    36   slot.put_into("notice", _"Your support has been added to this initiative")
    37 elseif supporter.draft_id ~= last_draft.id then
    38   supporter.draft_id = last_draft.id
    39   supporter:save()
    40   slot.put_into("notice", _"Your support has been updated to the latest draft")
    41 else
    42   slot.put_into("notice", _"You are already supporting the latest draft")
    43 end
