bsw/jbe@0: local truster_id = app.session.member.id bsw/jbe@0: bsw/jbe@0: local trustee_id = param.get("trustee_id", atom.integer) bsw/jbe@0: bsw/jbe@0: local area_id = param.get("area_id", atom.integer) bsw/jbe@0: bsw/jbe@0: local issue_id = param.get("issue_id", atom.integer) bsw/jbe@0: bsw/jbe@0: if issue_id then bsw/jbe@0: area_id = nil bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: local delegation = Delegation:by_pk(truster_id, area_id, issue_id) bsw/jbe@0: bsw/jbe@4: if param.get("delete") or trustee_id == -1 then bsw/jbe@0: bsw/jbe@0: if delegation then bsw/jbe@5: bsw/jbe@0: delegation:destroy() bsw/jbe@5: bsw/jbe@0: if issue_id then bsw/jbe@0: slot.put_into("notice", _"Your delegation for this issue has been deleted.") bsw/jbe@0: elseif area_id then bsw/jbe@0: slot.put_into("notice", _"Your delegation for this area has been deleted.") bsw/jbe@0: else bsw/jbe@0: slot.put_into("notice", _"Your global delegation has been deleted.") bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: end bsw/jbe@5: bsw/jbe@0: else bsw/jbe@0: bsw/jbe@0: if not delegation then bsw/jbe@0: delegation = Delegation:new() bsw/jbe@0: delegation.truster_id = truster_id bsw/jbe@0: delegation.area_id = area_id bsw/jbe@0: delegation.issue_id = issue_id bsw/jbe@5: if issue_id then bsw/jbe@5: delegation.scope = "issue" bsw/jbe@5: elseif area_id then bsw/jbe@5: delegation.scope = "area" bsw/jbe@5: else bsw/jbe@5: delegation.scope = "global" bsw/jbe@5: end bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: delegation.trustee_id = trustee_id bsw/jbe@0: bsw/jbe@0: delegation:save() bsw/jbe@0: bsw/jbe@0: if issue_id then bsw/jbe@0: slot.put_into("notice", _"Your delegation for this issue has been updated.") bsw/jbe@0: elseif area_id then bsw/jbe@0: slot.put_into("notice", _"Your delegation for this area has been updated.") bsw/jbe@0: else bsw/jbe@0: slot.put_into("notice", _"Your global delegation has been updated.") bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: end bsw/jbe@0: