bsw/jbe@0: local member_id = app.session.member.id bsw/jbe@0: bsw/jbe@0: local suggestion_id = param.get("suggestion_id", atom.integer) bsw/jbe@0: bsw/jbe@0: local opinion = Opinion:by_pk(member_id, suggestion_id) bsw/jbe@0: bsw/jbe@0: if opinion and param.get("delete") then bsw/jbe@0: opinion:destroy() bsw/jbe@0: slot.put_into("notice", _"Your opinion has been updated") bsw/jbe@0: return bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: if not opinion then bsw/jbe@0: opinion = Opinion:new() bsw/jbe@0: opinion.member_id = member_id bsw/jbe@0: opinion.suggestion_id = suggestion_id bsw/jbe@0: opinion.fulfilled = false bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: local degree = param.get("degree", atom.number) bsw/jbe@0: local fulfilled = param.get("fulfilled", atom.boolean) bsw/jbe@0: bsw/jbe@0: if degree ~= nil then bsw/jbe@0: opinion.degree = degree bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: if fulfilled ~= nil then bsw/jbe@0: opinion.fulfilled = fulfilled bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: opinion:save() bsw/jbe@0: bsw/jbe@0: slot.put_into("notice", _"Your opinion has been updated")