liquid_feedback_frontend

view app/main/unit/show.lua @ 456:7d3f7aa90008

Show member names in event list only when logged in or pseudonym public mode
author bsw
date Sun Mar 11 18:56:28 2012 +0100 (2012-03-11)
parents 699b9fa7bc36
children 63d6549cc00b
line source
1 local unit_id = config.single_unit_id or param.get_id()
3 local unit = Unit:by_id(unit_id)
5 if not config.single_unit_id then
6 slot.put_into("title", unit.name)
7 else
8 slot.put_into("title", encode.html(config.app_title))
9 end
11 if config.single_unit_id and not app.session.member_id and config.motd_public then
12 local help_text = config.motd_public
13 ui.container{
14 attr = { class = "wiki motd" },
15 content = function()
16 slot.put(format.wiki_text(help_text))
17 end
18 }
19 end
21 util.help("unit.show", _"Unit")
23 if app.session.member_id then
24 execute.view{
25 module = "delegation",
26 view = "_show_box",
27 params = { unit_id = unit_id }
28 }
29 end
32 local areas_selector = Area:build_selector{ active = true, unit_id = unit_id }
33 areas_selector:add_order_by("member_weight DESC")
35 local members_selector = Member:build_selector{
36 active = true,
37 voting_right_for_unit_id = unit.id
38 }
40 local delegations_selector = Delegation:new_selector()
41 :join("member", "truster", "truster.id = delegation.truster_id AND truster.active")
42 :join("privilege", "truster_privilege", "truster_privilege.member_id = truster.id AND truster_privilege.unit_id = delegation.unit_id AND truster_privilege.voting_right")
43 :join("member", "trustee", "trustee.id = delegation.trustee_id AND truster.active")
44 :join("privilege", "trustee_privilege", "trustee_privilege.member_id = trustee.id AND trustee_privilege.unit_id = delegation.unit_id AND trustee_privilege.voting_right")
45 :add_where{ "delegation.unit_id = ?", unit.id }
47 local open_issues_selector = Issue:new_selector()
48 :join("area", nil, "area.id = issue.area_id")
49 :add_where{ "area.unit_id = ?", unit.id }
50 :add_where("issue.closed ISNULL")
51 :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()")
53 local closed_issues_selector = Issue:new_selector()
54 :join("area", nil, "area.id = issue.area_id")
55 :add_where{ "area.unit_id = ?", unit.id }
56 :add_where("issue.closed NOTNULL")
57 :add_order_by("issue.closed DESC")
59 local tabs = {
60 module = "unit",
61 view = "show",
62 id = unit.id
63 }
65 tabs[#tabs+1] = {
66 name = "areas",
67 label = _"Areas",
68 module = "area",
69 view = "_list",
70 params = { areas_selector = areas_selector }
71 }
73 tabs[#tabs+1] = {
74 name = "timeline",
75 label = _"Events",
76 module = "event",
77 view = "_list",
78 params = { for_unit = unit }
79 }
81 tabs[#tabs+1] = {
82 name = "open",
83 label = _"Open issues",
84 module = "issue",
85 view = "_list",
86 params = {
87 for_state = "open",
88 issues_selector = open_issues_selector, for_unit = true
89 }
90 }
91 tabs[#tabs+1] = {
92 name = "closed",
93 label = _"Closed issues",
94 module = "issue",
95 view = "_list",
96 params = {
97 for_state = "closed",
98 issues_selector = closed_issues_selector, for_unit = true
99 }
100 }
102 if app.session.member_id then
103 tabs[#tabs+1] = {
104 name = "members",
105 label = _"Members",
106 module = "member",
107 view = "_list",
108 params = { members_selector = members_selector }
109 }
111 tabs[#tabs+1] = {
112 name = "delegations",
113 label = _"Delegations",
114 module = "delegation",
115 view = "_list",
116 params = { delegations_selector = delegations_selector }
117 }
118 end
120 ui.tabs(tabs)

Impressum / About Us