liquid_feedback_frontend
view app/main/unit/show.lua @ 529:5ca9de94cb13
Delegation preview when setting delegation, optical enhancements, typos fixed
author | bsw |
---|---|
date | Sun May 20 19:43:01 2012 +0200 (2012-05-20) |
parents | 305329da1c75 |
children | d6bc1e7a409f |
line source
1 local unit_id = config.single_unit_id or param.get_id()
3 local unit = Unit:by_id(unit_id)
5 slot.select("head", function()
6 execute.view{ module = "unit", view = "_head", params = { unit = unit, show_content = true } }
7 end)
9 if config.single_unit_id and not app.session.member_id and config.motd_public then
10 local help_text = config.motd_public
11 ui.container{
12 attr = { class = "wiki motd" },
13 content = function()
14 slot.put(format.wiki_text(help_text))
15 end
16 }
17 end
19 util.help("unit.show", _"Unit")
21 local areas_selector = Area:build_selector{ active = true, unit_id = unit_id }
22 areas_selector:add_order_by("member_weight DESC")
24 local members_selector = Member:build_selector{
25 active = true,
26 voting_right_for_unit_id = unit.id
27 }
29 local delegations_selector = Delegation:new_selector()
30 :join("member", "truster", "truster.id = delegation.truster_id AND truster.active")
31 :join("privilege", "truster_privilege", "truster_privilege.member_id = truster.id AND truster_privilege.unit_id = delegation.unit_id AND truster_privilege.voting_right")
32 :join("member", "trustee", "trustee.id = delegation.trustee_id AND truster.active")
33 :join("privilege", "trustee_privilege", "trustee_privilege.member_id = trustee.id AND trustee_privilege.unit_id = delegation.unit_id AND trustee_privilege.voting_right")
34 :add_where{ "delegation.unit_id = ?", unit.id }
36 local open_issues_selector = Issue:new_selector()
37 :join("area", nil, "area.id = issue.area_id")
38 :add_where{ "area.unit_id = ?", unit.id }
39 :add_where("issue.closed ISNULL")
40 :add_order_by("coalesce(issue.fully_frozen + issue.voting_time, issue.half_frozen + issue.verification_time, issue.accepted + issue.discussion_time, issue.created + issue.admission_time) - now()")
42 local closed_issues_selector = Issue:new_selector()
43 :join("area", nil, "area.id = issue.area_id")
44 :add_where{ "area.unit_id = ?", unit.id }
45 :add_where("issue.closed NOTNULL")
46 :add_order_by("issue.closed DESC")
48 local tabs = {
49 module = "unit",
50 view = "show",
51 id = unit.id
52 }
54 tabs[#tabs+1] = {
55 name = "areas",
56 label = _"Areas",
57 module = "area",
58 view = "_list",
59 params = { areas_selector = areas_selector }
60 }
62 tabs[#tabs+1] = {
63 name = "timeline",
64 label = _"Latest events",
65 module = "event",
66 view = "_list",
67 params = { for_unit = unit }
68 }
70 tabs[#tabs+1] = {
71 name = "open",
72 label = _"Open issues",
73 module = "issue",
74 view = "_list",
75 params = {
76 for_state = "open",
77 issues_selector = open_issues_selector, for_unit = true
78 }
79 }
80 tabs[#tabs+1] = {
81 name = "closed",
82 label = _"Closed issues",
83 module = "issue",
84 view = "_list",
85 params = {
86 for_state = "closed",
87 issues_selector = closed_issues_selector, for_unit = true
88 }
89 }
91 if app.session.member_id then
92 tabs[#tabs+1] = {
93 name = "eligible_voters",
94 label = _"Eligible voters",
95 module = "member",
96 view = "_list",
97 params = { members_selector = members_selector }
98 }
100 tabs[#tabs+1] = {
101 name = "delegations",
102 label = _"Delegations",
103 module = "delegation",
104 view = "_list",
105 params = { delegations_selector = delegations_selector }
106 }
107 end
109 ui.tabs(tabs)