liquid_feedback_frontend

annotate app/main/initiative/_action/revoke.lua @ 964:1997cf1da04b

Added support for finished phases
author bsw
date Thu Feb 21 19:32:48 2013 +0100 (2013-02-21)
parents bf99dcc58f68
children 32cc544d5a5b
rev   line source
bsw@10 1 local initiative = Initiative:by_id(param.get_id())
bsw@10 2
bsw@10 3 local initiator = Initiator:by_pk(initiative.id, app.session.member.id)
bsw@10 4 if not initiator or initiator.accepted ~= true then
bsw@10 5 error("access denied")
bsw@10 6 end
bsw@10 7
bsw@10 8 -- TODO important m1 selectors returning result _SET_!
bsw@10 9 local issue = initiative:get_reference_selector("issue"):for_share():single_object_mode():exec()
bsw@10 10
bsw@10 11 if issue.closed then
bsw@10 12 slot.put_into("error", _"This issue is already closed.")
bsw@10 13 return false
bsw@10 14 elseif issue.half_frozen then
bsw@10 15 slot.put_into("error", _"This issue is already frozen.")
bsw@10 16 return false
bsw@964 17 elseif not issue.accepted and issue.phase_finished then
bsw@964 18 slot.put_into("error", _"Current phase is already closed.")
bsw@964 19 return false
bsw@10 20 end
bsw@10 21
bsw@10 22 if initiative.revoked then
bsw@10 23 slot.put_into("error", _"This initiative is already revoked")
bsw@10 24 return false
bsw@10 25 end
bsw@10 26
bsw@10 27 local suggested_initiative_id = param.get("suggested_initiative_id", atom.integer)
bsw@10 28
bsw@10 29 if suggested_initiative_id ~= -1 then
bsw@10 30 local suggested_initiative = Initiative:by_id(suggested_initiative_id)
bsw@10 31 if not suggested_initiative then
bsw@10 32 error("object not found")
bsw@10 33 end
bsw@10 34 if initiative.id == suggested_initiative.id then
bsw@10 35 slot.put_into("error", _"You can't suggest the initiative you are revoking")
bsw@10 36 return false
bsw@10 37 end
bsw@10 38 initiative.suggested_initiative_id = suggested_initiative.id
bsw@10 39 end
bsw@10 40
bsw@10 41 if not param.get("are_you_sure", atom.boolean) then
bsw@10 42 slot.put_into("error", _"You have to mark 'Are you sure' to revoke!")
bsw@10 43 return false
bsw@10 44 end
bsw@10 45
bsw@377 46 initiative.revoked_by_member_id = app.session.member_id
bsw@10 47 initiative.revoked = "now"
bsw@10 48 initiative:save()
bsw@10 49
bsw@10 50 slot.put_into("notice", _"Initiative is revoked now")
bsw@10 51

Impressum / About Us