bsw/jbe@0: Delegation = mondelefant.new_class() bsw/jbe@0: Delegation.table = 'delegation' bsw/jbe@0: bsw/jbe@0: Delegation:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Member", bsw/jbe@0: this_key = 'truster_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'truster', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: Delegation:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Member", bsw/jbe@0: this_key = 'trustee_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'trustee', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: Delegation:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Area", bsw/jbe@0: this_key = 'area_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'area', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: Delegation:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Issue", bsw/jbe@0: this_key = 'issue_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'issue', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: function Delegation:by_pk(truster_id, area_id, issue_id) bsw/jbe@0: local selector = self:new_selector():optional_object_mode() bsw/jbe@0: selector:add_where{ "truster_id = ?", truster_id } bsw/jbe@0: if area_id then bsw/jbe@0: selector:add_where{ "area_id = ?", area_id } bsw/jbe@0: else bsw/jbe@0: selector:add_where("area_id ISNULL") bsw/jbe@0: end bsw/jbe@0: if issue_id then bsw/jbe@0: selector:add_where{ "issue_id = ? ", issue_id } bsw/jbe@0: else bsw/jbe@0: selector:add_where("issue_id ISNULL ") bsw/jbe@0: end bsw/jbe@0: return selector:exec() bsw/jbe@0: end