annotate app/main/initiative/_action/revoke.lua @ 597:516962033e96
Fixed sorting of contacts
 | author | bsw | 
 | date | Sun Jun 24 20:50:02 2012 +0200 (2012-06-24) | 
 | parents | bf99dcc58f68 | 
 | children | 1997cf1da04b | 
 
 | 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@10 | 17 end | 
| bsw@10 | 18 | 
| bsw@10 | 19 if initiative.revoked then | 
| bsw@10 | 20   slot.put_into("error", _"This initiative is already revoked") | 
| bsw@10 | 21   return false | 
| bsw@10 | 22 end | 
| bsw@10 | 23 | 
| bsw@10 | 24 local suggested_initiative_id = param.get("suggested_initiative_id", atom.integer) | 
| bsw@10 | 25 | 
| bsw@10 | 26 if suggested_initiative_id ~= -1 then | 
| bsw@10 | 27   local suggested_initiative = Initiative:by_id(suggested_initiative_id) | 
| bsw@10 | 28   if not suggested_initiative then | 
| bsw@10 | 29     error("object not found") | 
| bsw@10 | 30   end | 
| bsw@10 | 31   if initiative.id == suggested_initiative.id then | 
| bsw@10 | 32     slot.put_into("error", _"You can't suggest the initiative you are revoking") | 
| bsw@10 | 33     return false | 
| bsw@10 | 34   end | 
| bsw@10 | 35   initiative.suggested_initiative_id = suggested_initiative.id | 
| bsw@10 | 36 end | 
| bsw@10 | 37 | 
| bsw@10 | 38 if not param.get("are_you_sure", atom.boolean) then | 
| bsw@10 | 39   slot.put_into("error", _"You have to mark 'Are you sure' to revoke!") | 
| bsw@10 | 40   return false | 
| bsw@10 | 41 end | 
| bsw@10 | 42 | 
| bsw@377 | 43 initiative.revoked_by_member_id = app.session.member_id | 
| bsw@10 | 44 initiative.revoked = "now" | 
| bsw@10 | 45 initiative:save() | 
| bsw@10 | 46 | 
| bsw@10 | 47 slot.put_into("notice", _"Initiative is revoked now") | 
| bsw@10 | 48 |