liquid_feedback_frontend
view app/main/initiative/_action/remove_initiator.lua @ 832:e45d7a0a23f2
Minor updates to greek language files
author | Stratos Zolotas |
---|---|
date | Thu Jul 12 12:37:59 2012 +0200 (2012-07-12) |
parents | 808269b7f41c |
children | 32cc544d5a5b |
line source
1 local initiative = Initiative:by_id(param.get("initiative_id"))
2 local initiator = Initiator:by_pk(initiative.id, app.session.member.id)
4 -- TODO important m1 selectors returning result _SET_!
5 local issue = initiative:get_reference_selector("issue"):for_share():single_object_mode():exec()
7 if issue.closed then
8 slot.put_into("error", _"This issue is already closed.")
9 return false
10 elseif issue.half_frozen then
11 slot.put_into("error", _"This issue is already frozen.")
12 return false
13 end
15 if initiative.revoked then
16 slot.put_into("error", _"This initiative is revoked")
17 return false
18 end
20 local initiator_todelete = Initiator:by_pk(initiative.id, param.get("member_id", atom.integer))
22 if not (initiator and initiator.accepted) and not (initiator.member_id == initiator_todelete.member_id) then
23 error("access denied")
24 end
26 if initiator_todelete.accepted == false and initiator.member_id ~= initiator_todelete.member_id then
27 error("access denied")
28 end
30 local initiators = initiative
31 :get_reference_selector("initiators")
32 :add_where("accepted")
33 :for_update()
34 :exec()
36 if #initiators > 1 or initiator_todelete.accepted ~= true then
37 initiator_todelete:destroy()
38 -- slot.put_into("notice", _"Member has been removed from initiators")
39 else
40 slot.put_into("error", _"Can't remove last initiator")
41 return false
42 end