rev |
line source |
bsw@197
|
1 local area = param.get("area", "table") or Area:by_id(param.get_id())
|
bsw/jbe@19
|
2
|
bsw@414
|
3 local open_issues_selector = area:get_reference_selector("issues")
|
bsw@414
|
4 :add_where("issue.closed ISNULL")
|
bsw@414
|
5 :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
|
6
|
bsw@414
|
7 local closed_issues_selector = area:get_reference_selector("issues")
|
bsw@414
|
8 :add_where("issue.closed NOTNULL")
|
bsw@414
|
9 :add_order_by("issue.closed DESC")
|
bsw@414
|
10
|
bsw@610
|
11 local members_selector = area:get_reference_selector("members"):add_where("member.active")
|
bsw/jbe@19
|
12 local delegations_selector = area:get_reference_selector("delegations")
|
bsw@619
|
13 :join("member", "truster", "truster.id = delegation.truster_id AND truster.active")
|
bsw@619
|
14 :join("member", "trustee", "trustee.id = delegation.trustee_id AND trustee.active")
|
bsw/jbe@19
|
15
|
bsw@51
|
16 local tabs = {
|
bsw/jbe@19
|
17 module = "area",
|
bsw/jbe@19
|
18 view = "show_tab",
|
bsw/jbe@19
|
19 static_params = { area_id = area.id },
|
bsw@51
|
20 }
|
bsw@51
|
21
|
bsw@414
|
22 tabs[#tabs+1] = {
|
bsw@414
|
23 name = "timeline",
|
bsw@602
|
24 label = _"Latest events",
|
bsw@414
|
25 module = "event",
|
bsw@414
|
26 view = "_list",
|
bsw@414
|
27 params = { for_area = area }
|
bsw@414
|
28 }
|
bsw@414
|
29
|
bsw@414
|
30 tabs[#tabs+1] = {
|
bsw@414
|
31 name = "open",
|
bsw@414
|
32 label = _"Open issues",
|
bsw@414
|
33 module = "issue",
|
bsw@414
|
34 view = "_list",
|
bsw@414
|
35 params = {
|
bsw@414
|
36 for_state = "open",
|
bsw@414
|
37 issues_selector = open_issues_selector, for_area = true
|
bsw@51
|
38 }
|
bsw@414
|
39 }
|
bsw@414
|
40 tabs[#tabs+1] = {
|
bsw@414
|
41 name = "closed",
|
bsw@414
|
42 label = _"Closed issues",
|
bsw@414
|
43 module = "issue",
|
bsw@414
|
44 view = "_list",
|
bsw@414
|
45 params = {
|
bsw@414
|
46 for_state = "closed",
|
bsw@414
|
47 issues_selector = closed_issues_selector, for_area = true
|
bsw@414
|
48 }
|
bsw@414
|
49 }
|
bsw@51
|
50
|
bsw@51
|
51 if app.session.member_id then
|
bsw@51
|
52 tabs[#tabs+1] =
|
bsw@51
|
53 {
|
bsw@51
|
54 name = "members",
|
bsw@525
|
55 label = _"Participants" .. " (" .. tostring(members_selector:count()) .. ")",
|
bsw@51
|
56 icon = { static = "icons/16/group.png" },
|
bsw@51
|
57 module = "member",
|
bsw@51
|
58 view = "_list",
|
bsw@51
|
59 params = { members_selector = members_selector }
|
bsw@51
|
60 }
|
bsw/jbe@19
|
61
|
bsw@51
|
62 tabs[#tabs+1] =
|
bsw@51
|
63 {
|
bsw@51
|
64 name = "delegations",
|
bsw@51
|
65 label = _"Delegations" .. " (" .. tostring(delegations_selector:count()) .. ")",
|
bsw@51
|
66 icon = { static = "icons/16/table_go.png" },
|
bsw@51
|
67 module = "delegation",
|
bsw@51
|
68 view = "_list",
|
bsw@51
|
69 params = { delegations_selector = delegations_selector }
|
bsw@51
|
70 }
|
bsw@51
|
71 end
|
bsw@51
|
72
|
bsw@51
|
73 ui.tabs(tabs)
|