bsw/jbe@0: Initiator = mondelefant.new_class() bsw/jbe@0: Initiator.table = 'initiator' bsw/jbe@0: Initiator.primary_key = { "initiative_id", "member_id" } bsw/jbe@0: bsw/jbe@0: Initiator:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Initiative", bsw/jbe@0: this_key = 'initiative_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'initiative', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: Initiator:add_reference{ bsw/jbe@0: mode = 'm1', bsw/jbe@0: to = "Member", bsw/jbe@0: this_key = 'member_id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: ref = 'member', bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: function Initiator:by_pk(initiative_id, member_id) bsw/jbe@0: return self:new_selector() bsw/jbe@0: :add_where{ "initiative_id = ?", initiative_id } bsw/jbe@0: :add_where{ "member_id = ?", member_id } bsw/jbe@0: :optional_object_mode() bsw/jbe@0: :exec() bsw/jbe@0: end bsw@558: bsw@558: function Initiator:selector_for_invites(member_id) bsw@558: return Initiative:new_selector() bsw@558: :join("issue", "_issue_state", "_issue_state.id = initiative.issue_id") bsw@558: :join("initiator", nil, { "initiator.initiative_id = initiative.id AND initiator.member_id = ? AND initiator.accepted ISNULL", member_id }) bsw@558: :add_where("_issue_state.closed ISNULL AND _issue_state.half_frozen ISNULL") bsw@558: end