bsw/jbe@0: Area = mondelefant.new_class() bsw/jbe@0: Area.table = 'area' bsw/jbe@0: bsw/jbe@0: Area:add_reference{ bsw@262: mode = 'm1', bsw@262: to = "Unit", bsw@262: this_key = 'unit_id', bsw@262: that_key = 'id', bsw@262: ref = 'unit', bsw@262: } bsw@262: bsw@262: Area:add_reference{ bsw/jbe@0: mode = '1m', bsw/jbe@0: to = "Issue", bsw/jbe@0: this_key = 'id', bsw/jbe@0: that_key = 'area_id', bsw/jbe@0: ref = 'issues', bsw/jbe@0: back_ref = 'area' bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: Area:add_reference{ bsw/jbe@0: mode = '1m', bsw/jbe@0: to = "Membership", bsw/jbe@0: this_key = 'id', bsw/jbe@0: that_key = 'area_id', bsw/jbe@0: ref = 'memberships', bsw/jbe@0: back_ref = 'area' bsw/jbe@0: } bsw/jbe@0: bsw/jbe@0: Area:add_reference{ bsw@2: mode = '1m', bsw@2: to = "Delegation", bsw@2: this_key = 'id', bsw@2: that_key = 'area_id', bsw@2: ref = 'delegations', bsw@2: back_ref = 'area' bsw@2: } bsw@2: bsw@2: Area:add_reference{ bsw/jbe@0: mode = 'mm', bsw/jbe@0: to = "Member", bsw/jbe@0: this_key = 'id', bsw/jbe@0: that_key = 'id', bsw/jbe@0: connected_by_table = 'membership', bsw/jbe@0: connected_by_this_key = 'area_id', bsw/jbe@0: connected_by_that_key = 'member_id', bsw/jbe@0: ref = 'members' bsw/jbe@0: } bsw@7: bsw@7: Area:add_reference{ bsw@7: mode = 'mm', bsw@7: to = "Policy", bsw@7: this_key = 'id', bsw@7: that_key = 'id', bsw@7: connected_by_table = 'allowed_policy', bsw@7: connected_by_this_key = 'area_id', bsw@7: connected_by_that_key = 'policy_id', bsw@7: ref = 'allowed_policies' bsw@7: } bsw@7: bsw@7: function Area.object_get:default_policy() bsw@7: return Policy:new_selector() bsw@7: :join("allowed_policy", nil, "allowed_policy.policy_id = policy.id") bsw@7: :add_where{ "allowed_policy.area_id = ? AND allowed_policy.default_policy", self.id } bsw@10: :optional_object_mode() bsw@7: :exec() bsw@7: end bsw@7: bsw@193: function Area:build_selector(args) bsw@193: local selector = Area:new_selector() bsw@193: if args.active ~= nil then bsw@193: selector:add_where{ "active = ?", args.active } bsw@193: end bsw@241: if args.unit_id ~= nil then bsw@241: selector:add_where{ "unit_id = ?", args.unit_id } bsw@241: end bsw@193: return selector bsw@193: end bsw@262: bsw@262: function Area.object_get:name_with_unit_name() bsw@262: if config.feature_units_enabled then bsw@262: return self.unit.name .. " > " .. self.name bsw@262: end bsw@262: end