liquid_feedback_frontend

annotate model/area.lua @ 262:7ef1e03e4057

Added unit chooser and unit support to area list
author bsw
date Tue Feb 07 17:54:00 2012 +0100 (2012-02-07)
parents 6725c13b6ce0
children 1b8d51e21614
rev   line source
bsw/jbe@0 1 Area = mondelefant.new_class()
bsw/jbe@0 2 Area.table = 'area'
bsw/jbe@0 3
bsw/jbe@0 4 Area:add_reference{
bsw@262 5 mode = 'm1',
bsw@262 6 to = "Unit",
bsw@262 7 this_key = 'unit_id',
bsw@262 8 that_key = 'id',
bsw@262 9 ref = 'unit',
bsw@262 10 }
bsw@262 11
bsw@262 12 Area:add_reference{
bsw/jbe@0 13 mode = '1m',
bsw/jbe@0 14 to = "Issue",
bsw/jbe@0 15 this_key = 'id',
bsw/jbe@0 16 that_key = 'area_id',
bsw/jbe@0 17 ref = 'issues',
bsw/jbe@0 18 back_ref = 'area'
bsw/jbe@0 19 }
bsw/jbe@0 20
bsw/jbe@0 21 Area:add_reference{
bsw/jbe@0 22 mode = '1m',
bsw/jbe@0 23 to = "Membership",
bsw/jbe@0 24 this_key = 'id',
bsw/jbe@0 25 that_key = 'area_id',
bsw/jbe@0 26 ref = 'memberships',
bsw/jbe@0 27 back_ref = 'area'
bsw/jbe@0 28 }
bsw/jbe@0 29
bsw/jbe@0 30 Area:add_reference{
bsw@2 31 mode = '1m',
bsw@2 32 to = "Delegation",
bsw@2 33 this_key = 'id',
bsw@2 34 that_key = 'area_id',
bsw@2 35 ref = 'delegations',
bsw@2 36 back_ref = 'area'
bsw@2 37 }
bsw@2 38
bsw@2 39 Area:add_reference{
bsw/jbe@0 40 mode = 'mm',
bsw/jbe@0 41 to = "Member",
bsw/jbe@0 42 this_key = 'id',
bsw/jbe@0 43 that_key = 'id',
bsw/jbe@0 44 connected_by_table = 'membership',
bsw/jbe@0 45 connected_by_this_key = 'area_id',
bsw/jbe@0 46 connected_by_that_key = 'member_id',
bsw/jbe@0 47 ref = 'members'
bsw/jbe@0 48 }
bsw@7 49
bsw@7 50 Area:add_reference{
bsw@7 51 mode = 'mm',
bsw@7 52 to = "Policy",
bsw@7 53 this_key = 'id',
bsw@7 54 that_key = 'id',
bsw@7 55 connected_by_table = 'allowed_policy',
bsw@7 56 connected_by_this_key = 'area_id',
bsw@7 57 connected_by_that_key = 'policy_id',
bsw@7 58 ref = 'allowed_policies'
bsw@7 59 }
bsw@7 60
bsw@7 61 function Area.object_get:default_policy()
bsw@7 62 return Policy:new_selector()
bsw@7 63 :join("allowed_policy", nil, "allowed_policy.policy_id = policy.id")
bsw@7 64 :add_where{ "allowed_policy.area_id = ? AND allowed_policy.default_policy", self.id }
bsw@10 65 :optional_object_mode()
bsw@7 66 :exec()
bsw@7 67 end
bsw@7 68
bsw@193 69 function Area:build_selector(args)
bsw@193 70 local selector = Area:new_selector()
bsw@193 71 if args.active ~= nil then
bsw@193 72 selector:add_where{ "active = ?", args.active }
bsw@193 73 end
bsw@241 74 if args.unit_id ~= nil then
bsw@241 75 selector:add_where{ "unit_id = ?", args.unit_id }
bsw@241 76 end
bsw@193 77 return selector
bsw@193 78 end
bsw@262 79
bsw@262 80 function Area.object_get:name_with_unit_name()
bsw@262 81 if config.feature_units_enabled then
bsw@262 82 return self.unit.name .. " > " .. self.name
bsw@262 83 end
bsw@262 84 end

Impressum / About Us