rev |
line source |
bsw@301
|
1 local unit_id = config.single_unit_id or param.get_id()
|
bsw@301
|
2
|
bsw@301
|
3 local unit = Unit:by_id(unit_id)
|
bsw@301
|
4
|
bsw@526
|
5 slot.select("head", function()
|
bsw@529
|
6 execute.view{ module = "unit", view = "_head", params = { unit = unit, show_content = true } }
|
bsw@526
|
7 end)
|
bsw@301
|
8
|
bsw@301
|
9 if config.single_unit_id and not app.session.member_id and config.motd_public then
|
bsw@301
|
10 local help_text = config.motd_public
|
bsw@301
|
11 ui.container{
|
bsw@301
|
12 attr = { class = "wiki motd" },
|
bsw@301
|
13 content = function()
|
bsw@301
|
14 slot.put(format.wiki_text(help_text))
|
bsw@301
|
15 end
|
bsw@301
|
16 }
|
bsw@301
|
17 end
|
bsw@301
|
18
|
bsw@301
|
19 util.help("unit.show", _"Unit")
|
bsw@301
|
20
|
bsw@301
|
21 local areas_selector = Area:build_selector{ active = true, unit_id = unit_id }
|
bsw@301
|
22 areas_selector:add_order_by("member_weight DESC")
|
bsw@301
|
23
|
bsw@301
|
24 local members_selector = Member:build_selector{
|
bsw@301
|
25 active = true,
|
bsw@301
|
26 voting_right_for_unit_id = unit.id
|
bsw@301
|
27 }
|
bsw@301
|
28
|
bsw@301
|
29 local delegations_selector = Delegation:new_selector()
|
bsw@301
|
30 :join("member", "truster", "truster.id = delegation.truster_id AND truster.active")
|
bsw@302
|
31 :join("privilege", "truster_privilege", "truster_privilege.member_id = truster.id AND truster_privilege.unit_id = delegation.unit_id AND truster_privilege.voting_right")
|
bsw@301
|
32 :join("member", "trustee", "trustee.id = delegation.trustee_id AND truster.active")
|
bsw@302
|
33 :join("privilege", "trustee_privilege", "trustee_privilege.member_id = trustee.id AND trustee_privilege.unit_id = delegation.unit_id AND trustee_privilege.voting_right")
|
bsw@301
|
34 :add_where{ "delegation.unit_id = ?", unit.id }
|
bsw@301
|
35
|
bsw@414
|
36 local open_issues_selector = Issue:new_selector()
|
bsw@301
|
37 :join("area", nil, "area.id = issue.area_id")
|
bsw@301
|
38 :add_where{ "area.unit_id = ?", unit.id }
|
bsw@414
|
39 :add_where("issue.closed ISNULL")
|
bsw@414
|
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()")
|
bsw@414
|
41
|
bsw@414
|
42 local closed_issues_selector = Issue:new_selector()
|
bsw@414
|
43 :join("area", nil, "area.id = issue.area_id")
|
bsw@414
|
44 :add_where{ "area.unit_id = ?", unit.id }
|
bsw@414
|
45 :add_where("issue.closed NOTNULL")
|
bsw@414
|
46 :add_order_by("issue.closed DESC")
|
bsw@301
|
47
|
bsw@301
|
48 local tabs = {
|
bsw@301
|
49 module = "unit",
|
bsw@301
|
50 view = "show",
|
bsw@301
|
51 id = unit.id
|
bsw@301
|
52 }
|
bsw@301
|
53
|
bsw@301
|
54 tabs[#tabs+1] = {
|
bsw@301
|
55 name = "areas",
|
bsw@301
|
56 label = _"Areas",
|
bsw@301
|
57 module = "area",
|
bsw@301
|
58 view = "_list",
|
bsw@301
|
59 params = { areas_selector = areas_selector }
|
bsw@301
|
60 }
|
bsw@301
|
61
|
bsw@301
|
62 tabs[#tabs+1] = {
|
bsw@414
|
63 name = "timeline",
|
bsw@528
|
64 label = _"Latest events",
|
bsw@414
|
65 module = "event",
|
bsw@414
|
66 view = "_list",
|
bsw@414
|
67 params = { for_unit = unit }
|
bsw@414
|
68 }
|
bsw@414
|
69
|
bsw@414
|
70 tabs[#tabs+1] = {
|
bsw@414
|
71 name = "open",
|
bsw@414
|
72 label = _"Open issues",
|
bsw@301
|
73 module = "issue",
|
bsw@301
|
74 view = "_list",
|
bsw@414
|
75 params = {
|
bsw@414
|
76 for_state = "open",
|
bsw@414
|
77 issues_selector = open_issues_selector, for_unit = true
|
bsw@414
|
78 }
|
bsw@414
|
79 }
|
bsw@414
|
80 tabs[#tabs+1] = {
|
bsw@414
|
81 name = "closed",
|
bsw@414
|
82 label = _"Closed issues",
|
bsw@414
|
83 module = "issue",
|
bsw@414
|
84 view = "_list",
|
bsw@414
|
85 params = {
|
bsw@414
|
86 for_state = "closed",
|
bsw@414
|
87 issues_selector = closed_issues_selector, for_unit = true
|
bsw@414
|
88 }
|
bsw@301
|
89 }
|
bsw@301
|
90
|
bsw@301
|
91 if app.session.member_id then
|
bsw@301
|
92 tabs[#tabs+1] = {
|
bsw@525
|
93 name = "eligible_voters",
|
bsw@525
|
94 label = _"Eligible voters",
|
bsw@301
|
95 module = "member",
|
bsw@301
|
96 view = "_list",
|
bsw@301
|
97 params = { members_selector = members_selector }
|
bsw@301
|
98 }
|
bsw@301
|
99
|
bsw@301
|
100 tabs[#tabs+1] = {
|
bsw@301
|
101 name = "delegations",
|
bsw@301
|
102 label = _"Delegations",
|
bsw@301
|
103 module = "delegation",
|
bsw@301
|
104 view = "_list",
|
bsw@301
|
105 params = { delegations_selector = delegations_selector }
|
bsw@301
|
106 }
|
bsw@301
|
107 end
|
bsw@301
|
108
|
bsw@301
|
109 ui.tabs(tabs) |