liquid_feedback_frontend

view model/area.lua @ 280:808269b7f41c

More repositioning and optical enhancements
author bsw
date Thu Feb 16 14:08:55 2012 +0100 (2012-02-16)
parents aec9df5b4cd3
children 63d6549cc00b
line source
1 Area = mondelefant.new_class()
2 Area.table = 'area'
4 Area:add_reference{
5 mode = 'm1',
6 to = "Unit",
7 this_key = 'unit_id',
8 that_key = 'id',
9 ref = 'unit',
10 }
12 Area:add_reference{
13 mode = '1m',
14 to = "Issue",
15 this_key = 'id',
16 that_key = 'area_id',
17 ref = 'issues',
18 back_ref = 'area'
19 }
21 Area:add_reference{
22 mode = '1m',
23 to = "Membership",
24 this_key = 'id',
25 that_key = 'area_id',
26 ref = 'memberships',
27 back_ref = 'area'
28 }
30 Area:add_reference{
31 mode = '1m',
32 to = "Delegation",
33 this_key = 'id',
34 that_key = 'area_id',
35 ref = 'delegations',
36 back_ref = 'area'
37 }
39 Area:add_reference{
40 mode = 'mm',
41 to = "Member",
42 this_key = 'id',
43 that_key = 'id',
44 connected_by_table = 'membership',
45 connected_by_this_key = 'area_id',
46 connected_by_that_key = 'member_id',
47 ref = 'members'
48 }
50 Area:add_reference{
51 mode = 'mm',
52 to = "Policy",
53 this_key = 'id',
54 that_key = 'id',
55 connected_by_table = 'allowed_policy',
56 connected_by_this_key = 'area_id',
57 connected_by_that_key = 'policy_id',
58 ref = 'allowed_policies'
59 }
61 function Area.object_get:default_policy()
62 return Policy:new_selector()
63 :join("allowed_policy", nil, "allowed_policy.policy_id = policy.id")
64 :add_where{ "allowed_policy.area_id = ? AND allowed_policy.default_policy", self.id }
65 :optional_object_mode()
66 :exec()
67 end
69 function Area:build_selector(args)
70 local selector = Area:new_selector()
71 if args.active ~= nil then
72 selector:add_where{ "area.active = ?", args.active }
73 end
74 if args.unit_id ~= nil then
75 selector:add_where{ "area.unit_id = ?", args.unit_id }
76 end
77 return selector
78 end
80 function Area.object_get:name_with_unit_name()
81 if not config.single_unit_id then
82 return self.unit.name .. ", " .. self.name
83 else
84 return self.name
85 end
86 end

Impressum / About Us