annotate app/main/initiative/_action/add_initiator.lua @ 286:c587d8762e62
Registration process updated for Core 2.0, lockable member fields, notification settings
author |
bsw |
date |
Sat Feb 25 11:51:37 2012 +0100 (2012-02-25) |
parents |
808269b7f41c |
children |
32cc544d5a5b |
rev |
line source |
bsw@10
|
1 local initiative = Initiative:by_id(param.get("initiative_id"))
|
bsw@10
|
2 local member = Member:by_id(param.get("member_id"))
|
bsw@10
|
3
|
bsw@10
|
4 if not member then
|
bsw@10
|
5 slot.put_into("error", _"Please choose a member")
|
bsw@10
|
6 return false
|
bsw@10
|
7 end
|
bsw@10
|
8
|
bsw@10
|
9 local initiator = Initiator:by_pk(initiative.id, app.session.member.id)
|
bsw@10
|
10 if not initiator or initiator.accepted ~= true then
|
bsw@10
|
11 error("access denied")
|
bsw@10
|
12 end
|
bsw@10
|
13
|
bsw@10
|
14 -- TODO important m1 selectors returning result _SET_!
|
bsw@10
|
15 local issue = initiative:get_reference_selector("issue"):for_share():single_object_mode():exec()
|
bsw@10
|
16
|
bsw@10
|
17 if issue.closed then
|
bsw@10
|
18 slot.put_into("error", _"This issue is already closed.")
|
bsw@10
|
19 return false
|
bsw@10
|
20 elseif issue.half_frozen then
|
bsw@10
|
21 slot.put_into("error", _"This issue is already frozen.")
|
bsw@10
|
22 return false
|
bsw@10
|
23 end
|
bsw@10
|
24
|
bsw@10
|
25 if initiative.revoked then
|
bsw@10
|
26 slot.put_into("error", _"This initiative is revoked")
|
bsw@10
|
27 return false
|
bsw@10
|
28 end
|
bsw@10
|
29
|
bsw@10
|
30 local initiator = Initiator:by_pk(initiative.id, member.id)
|
bsw@10
|
31 if initiator then
|
bsw@10
|
32 if initiator.accepted == true then
|
bsw@10
|
33 slot.put_into("error", _"This member is already initiator of this initiative")
|
bsw@10
|
34 elseif initiator.accepted == false then
|
bsw@10
|
35 slot.put_into("error", _"This member has rejected to become initiator of this initiative")
|
bsw@10
|
36 elseif initiator.accepted == nil then
|
bsw@10
|
37 slot.put_into("error", _"This member is already invited to become initiator of this initiative")
|
bsw@10
|
38 end
|
bsw@10
|
39 return false
|
bsw@10
|
40 end
|
bsw@10
|
41
|
bsw@10
|
42 local initiator = Initiator:new()
|
bsw@10
|
43 initiator.initiative_id = initiative.id
|
bsw@10
|
44 initiator.member_id = member.id
|
bsw@10
|
45 initiator.accepted = nil
|
bsw@10
|
46 initiator:save()
|
bsw@10
|
47
|
bsw@280
|
48 --slot.put_into("notice", _"Member is now invited to be initiator")
|
bsw@10
|
49
|