liquid_feedback_frontend

view app/main/member/_list_supported_initiatives.lua @ 137:43ac94c7575b

add potential/full support filter into supported initiatives tab

fixes bug #47
author Daniel Poelzleithner <poelzi@poelzi.org>
date Wed Oct 06 13:05:30 2010 +0200 (2010-10-06)
parents 6a12fb7e4963
children
line source
1 local initiatives_selector = param.get("initiatives_selector", "table")
2 local member = param.get("member", "table")
4 local filters = {
5 {
6 label = _"Filter",
7 {
8 name = "open",
9 label = _"Open",
10 selector_modifier = function(selector)
11 selector:add_where("issue.closed ISNULL")
12 end
13 },
14 {
15 name = "new",
16 label = _"New",
17 selector_modifier = function(selector)
18 selector:add_where("issue.accepted ISNULL AND issue.closed ISNULL")
19 end
20 },
21 {
22 name = "accepted",
23 label = _"In discussion",
24 selector_modifier = function(selector)
25 selector:add_where("issue.accepted NOTNULL AND issue.half_frozen ISNULL AND issue.closed ISNULL")
26 end
27 },
28 {
29 name = "half_frozen",
30 label = _"Frozen",
31 selector_modifier = function(selector)
32 selector:add_where("issue.half_frozen NOTNULL AND issue.fully_frozen ISNULL")
33 end
34 },
35 {
36 name = "frozen",
37 label = _"Voting",
38 selector_modifier = function(selector)
39 selector:add_where("issue.fully_frozen NOTNULL AND issue.closed ISNULL")
40 filter_voting = true
41 end
42 },
43 {
44 name = "finished",
45 label = _"Finished",
46 selector_modifier = function(selector)
47 selector:add_where("issue.closed NOTNULL AND issue.fully_frozen NOTNULL")
48 end
49 },
50 {
51 name = "cancelled",
52 label = _"Cancelled",
53 selector_modifier = function(selector)
54 selector:add_where("issue.closed NOTNULL AND issue.fully_frozen ISNULL")
55 end
56 },
57 {
58 name = "any",
59 label = _"Any",
60 selector_modifier = function(selector) end
61 },
62 }
63 }
66 if member then
67 filters[#filters+1] = {
68 label = _"Support",
69 name = "support",
70 {
71 name = "any",
72 label = _"Any",
73 selector_modifier = function(selector)
74 end
75 },
76 {
77 name = "potential",
78 label = _"Potential supported",
79 selector_modifier = function(selector)
80 -- not even having is_potential_supporter is working here :-( hopefully the optimizer will work it out...
81 selector:add_where({"EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", member.id })
82 end
83 },
84 {
85 name = "supporter",
86 label = _"Supporter",
87 selector_modifier = function(selector)
88 selector:add_where({"NOT EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", member.id })
89 end
90 },
91 }
92 end
94 filters.label = _"Filter"
95 filters.name = "filter_voting"
96 filters.selector = initiatives_selector
97 filters.content = function()
98 execute.view{
99 module = "initiative",
100 view = "_list",
101 params = { initiatives_selector = initiatives_selector }
102 }
103 end
106 ui.filters(filters)

Impressum / About Us