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 |