annotate app/main/initiative/_action/revoke.lua @ 720:cdd0bcbbef8b
Improved paginators on initiative view, optical improvements
 | author | 
 bsw | 
 | date | 
 Wed Jun 27 19:28:39 2012 +0200 (2012-06-27) | 
 | 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 
 |