liquid_feedback_frontend
annotate app/main/opinion/_action/update.lua @ 298:724ac69b7c97
Fix voting_right_for_unit_id argument for member selector builder
author | bsw |
---|---|
date | Sat Feb 25 22:27:03 2012 +0100 (2012-02-25) |
parents | b77e6a17ca77 |
children | 1997cf1da04b |
rev | line source |
---|---|
bsw/jbe@0 | 1 local member_id = app.session.member.id |
bsw/jbe@0 | 2 |
bsw/jbe@0 | 3 local suggestion_id = param.get("suggestion_id", atom.integer) |
bsw/jbe@0 | 4 |
bsw/jbe@0 | 5 local opinion = Opinion:by_pk(member_id, suggestion_id) |
bsw/jbe@0 | 6 |
bsw/jbe@6 | 7 local suggestion = Suggestion:by_id(suggestion_id) |
bsw/jbe@6 | 8 |
bsw/jbe@6 | 9 if not suggestion then |
bsw/jbe@6 | 10 slot.put_into("error", _"This suggestion has been meanwhile deleted") |
bsw/jbe@6 | 11 return false |
bsw/jbe@6 | 12 end |
bsw/jbe@6 | 13 |
bsw/jbe@5 | 14 -- TODO important m1 selectors returning result _SET_! |
bsw/jbe@6 | 15 local issue = suggestion.initiative:get_reference_selector("issue"):for_share():single_object_mode():exec() |
bsw/jbe@5 | 16 |
bsw/jbe@5 | 17 if issue.closed then |
bsw/jbe@5 | 18 slot.put_into("error", _"This issue is already closed.") |
bsw/jbe@5 | 19 return false |
bsw/jbe@5 | 20 elseif issue.fully_frozen then |
bsw/jbe@5 | 21 slot.put_into("error", _"Voting for this issue has already begun.") |
bsw/jbe@5 | 22 return false |
bsw/jbe@5 | 23 end |
bsw/jbe@5 | 24 |
bsw@3 | 25 if param.get("delete") then |
bsw@3 | 26 if opinion then |
bsw@3 | 27 opinion:destroy() |
bsw@3 | 28 end |
bsw@280 | 29 --slot.put_into("notice", _"Your rating has been deleted") |
bsw/jbe@0 | 30 return |
bsw/jbe@0 | 31 end |
bsw/jbe@0 | 32 |
bsw@281 | 33 local degree = param.get("degree", atom.number) |
bsw@281 | 34 local fulfilled = param.get("fulfilled", atom.boolean) |
bsw@281 | 35 |
bsw@281 | 36 if degree ~= 0 and not app.session.member:has_voting_right_for_unit_id(suggestion.initiative.issue.area.unit_id) then |
bsw@281 | 37 error("access denied") |
bsw@281 | 38 end |
bsw@281 | 39 |
bsw/jbe@0 | 40 if not opinion then |
bsw/jbe@0 | 41 opinion = Opinion:new() |
bsw/jbe@0 | 42 opinion.member_id = member_id |
bsw/jbe@0 | 43 opinion.suggestion_id = suggestion_id |
bsw/jbe@0 | 44 opinion.fulfilled = false |
bsw/jbe@0 | 45 end |
bsw/jbe@0 | 46 |
bsw/jbe@0 | 47 |
bsw/jbe@0 | 48 if degree ~= nil then |
bsw/jbe@0 | 49 opinion.degree = degree |
bsw/jbe@0 | 50 end |
bsw/jbe@0 | 51 |
bsw/jbe@0 | 52 if fulfilled ~= nil then |
bsw/jbe@0 | 53 opinion.fulfilled = fulfilled |
bsw/jbe@0 | 54 end |
bsw/jbe@0 | 55 |
bsw/jbe@0 | 56 opinion:save() |
bsw/jbe@0 | 57 |
bsw@280 | 58 --slot.put_into("notice", _"Your rating has been updated") |