liquid_feedback_frontend
annotate app/main/opinion/_action/update.lua @ 285:6c88b4bfb56c
Apply interest/support filter for member at member page
| author | bsw | 
|---|---|
| date | Fri Feb 17 15:16:02 2012 +0100 (2012-02-17) | 
| 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") |