bsw/jbe@0: local area_id = assert(param.get("area_id", atom.integer), "no area id given") bsw/jbe@0: local membership = Membership:by_pk(area_id, app.session.member.id) bsw/jbe@0: bsw@1045: local area = Area:by_id(area_id) bsw/jbe@0: if param.get("delete", atom.boolean) then bsw/jbe@0: if membership then bsw/jbe@0: membership:destroy() bsw@1045: slot.put_into("notice", _"Subscription removed") bsw/jbe@0: else bsw@1045: slot.put_into("notice", _"Subscription already removed") bsw/jbe@0: end bsw/jbe@0: return bsw/jbe@0: end bsw/jbe@0: bsw@1045: if not app.session.member:has_voting_right_for_unit_id(area.unit_id) then bsw@1045: slot.put_into("error", _"You are not eligible to participate") bsw@1045: return false bsw@1045: end bsw@1045: bsw/jbe@0: if not membership then bsw/jbe@0: membership = Membership:new() bsw/jbe@0: membership.area_id = area_id bsw/jbe@0: membership.member_id = app.session.member_id bsw@1045: membership:save() bsw@1045: slot.put_into("notice", _"Subject area subscribed") bsw/jbe@0: end