annotate app/main/interest/_action/update.lua @ 281:b77e6a17ca77
Check unit voting right where neccessary, hide action buttons for units without voting right
author |
bsw |
date |
Thu Feb 16 15:01:49 2012 +0100 (2012-02-16) |
parents |
bde068b37608 |
children |
1997cf1da04b |
rev |
line source |
bsw/jbe@0
|
1 local issue_id = assert(param.get("issue_id", atom.integer), "no issue id given")
|
bsw/jbe@5
|
2
|
bsw/jbe@0
|
3 local interest = Interest:by_pk(issue_id, app.session.member.id)
|
bsw/jbe@0
|
4
|
bsw@92
|
5 local issue = Issue:new_selector():add_where{ "id = ?", issue_id }:for_share():single_object_mode():exec()
|
bsw/jbe@5
|
6
|
bsw/jbe@5
|
7 if issue.closed then
|
bsw/jbe@5
|
8 slot.put_into("error", _"This issue is already closed.")
|
bsw/jbe@5
|
9 return false
|
bsw/jbe@5
|
10 elseif issue.fully_frozen then
|
bsw/jbe@5
|
11 slot.put_into("error", _"Voting for this issue has already begun.")
|
bsw/jbe@5
|
12 return false
|
bsw/jbe@5
|
13 end
|
bsw/jbe@5
|
14
|
bsw/jbe@0
|
15 if param.get("delete", atom.boolean) then
|
bsw/jbe@0
|
16 if interest then
|
bsw/jbe@0
|
17 interest:destroy()
|
bsw@277
|
18 --slot.put_into("notice", _"Interest removed")
|
bsw/jbe@0
|
19 else
|
bsw@277
|
20 --slot.put_into("notice", _"Interest not existent")
|
bsw/jbe@0
|
21 end
|
bsw/jbe@0
|
22 return
|
bsw/jbe@0
|
23 end
|
bsw/jbe@0
|
24
|
bsw@281
|
25 if not app.session.member:has_voting_right_for_unit_id(issue.area.unit_id) then
|
bsw@281
|
26 error("access denied")
|
bsw@281
|
27 end
|
bsw@281
|
28
|
bsw/jbe@0
|
29 if not interest then
|
bsw/jbe@0
|
30 interest = Interest:new()
|
bsw/jbe@0
|
31 interest.issue_id = issue_id
|
bsw/jbe@0
|
32 interest.member_id = app.session.member_id
|
bsw/jbe@0
|
33 end
|
bsw/jbe@0
|
34
|
bsw/jbe@0
|
35 interest:save()
|
bsw/jbe@0
|
36
|
bsw@277
|
37 --slot.put_into("notice", _"Interest updated")
|