liquid_feedback_frontend

view model/issue.lua @ 1:dd0109e81922

Version alpha2

Minor bug in bargraph output for suggestions fixed
author bsw
date Wed Nov 18 12:00:00 2009 +0100 (2009-11-18)
parents 3bfb2fcf7ab9
children 5c601807d397
line source
1 Issue = mondelefant.new_class()
2 Issue.table = 'issue'
4 Issue:add_reference{
5 mode = 'm1',
6 to = "Area",
7 this_key = 'area_id',
8 that_key = 'id',
9 ref = 'area',
10 }
12 Issue:add_reference{
13 mode = 'm1',
14 to = "Policy",
15 this_key = 'policy_id',
16 that_key = 'id',
17 ref = 'policy',
18 }
20 Issue:add_reference{
21 mode = '1m',
22 to = "Initiative",
23 this_key = 'id',
24 that_key = 'issue_id',
25 ref = 'initiatives',
26 back_ref = 'issue'
27 }
29 Issue:add_reference{
30 mode = '1m',
31 to = "Interest",
32 this_key = 'id',
33 that_key = 'issue_id',
34 ref = 'interests',
35 back_ref = 'issue',
36 default_order = '"id"'
37 }
39 Issue:add_reference{
40 mode = '1m',
41 to = "Supporter",
42 this_key = 'id',
43 that_key = 'issue_id',
44 ref = 'supporters',
45 back_ref = 'issue',
46 default_order = '"id"'
47 }
49 Issue:add_reference{
50 mode = '1m',
51 to = "DirectVoter",
52 this_key = 'id',
53 that_key = 'issue_id',
54 ref = 'direct_voters',
55 back_ref = 'issue',
56 default_order = '"member_id"'
57 }
59 Issue:add_reference{
60 mode = '1m',
61 to = "Vote",
62 this_key = 'id',
63 that_key = 'issue_id',
64 ref = 'votes',
65 back_ref = 'issue',
66 default_order = '"member_id", "initiative_id"'
67 }
69 Issue:add_reference{
70 mode = 'mm',
71 to = "Member",
72 this_key = 'id',
73 that_key = 'id',
74 connected_by_table = 'interest',
75 connected_by_this_key = 'issue_id',
76 connected_by_that_key = 'member_id',
77 ref = 'members'
78 }
80 function Issue:get_state_name_for_state(value)
81 local state_name_table = {}
82 return state_name_table[value] or value
83 end
85 function Issue:search(search_string)
86 return self:new_selector()
87 :join('"initiative"', nil, '"initiative"."issue_id" = "issue"."id"')
88 :add_where{ '"initiative"."name" ILIKE ?', "%" .. search_string:gsub("%%", "") .. "%" }
89 :set_distinct()
90 :exec()
91 end
93 function Issue.object_get:state()
94 if self.accepted then
95 if self.frozen then
96 return "frozen"
97 elseif self.closed then
98 return "closed"
99 else
100 return "accepted"
101 end
102 else
103 if self.closed then
104 return "closed"
105 else
106 return "new"
107 end
108 end
109 end

Impressum / About Us