rev |
line source |
bsw@525
|
1 local member = param.get("member", "table")
|
bsw@525
|
2
|
bsw@525
|
3 local tabs = {
|
bsw/jbe@19
|
4 module = "member",
|
bsw/jbe@19
|
5 view = "show_tab",
|
bsw@525
|
6 static_params = {
|
bsw@558
|
7 member_id = member.id
|
bsw/jbe@19
|
8 }
|
bsw@525
|
9 }
|
bsw@525
|
10
|
bsw@558
|
11 tabs[#tabs+1] = {
|
bsw@558
|
12 name = "profile",
|
bsw@558
|
13 label = _"Profile",
|
bsw@558
|
14 icon = { static = "icons/16/application_form.png" },
|
bsw@558
|
15 module = "member",
|
bsw@558
|
16 view = "_profile",
|
bsw@558
|
17 params = { member = member },
|
bsw@558
|
18 }
|
bsw@525
|
19
|
bsw@525
|
20 local areas_selector = member:get_reference_selector("areas")
|
bsw@525
|
21 tabs[#tabs+1] = {
|
bsw@525
|
22 name = "areas",
|
bsw@774
|
23 label = _"Units and areas",
|
bsw@525
|
24 icon = { static = "icons/16/package.png" },
|
bsw@594
|
25 module = "index",
|
bsw@594
|
26 view = "_member_home",
|
bsw@558
|
27 params = { areas_selector = areas_selector, member = member, for_member = true },
|
bsw@525
|
28 }
|
bsw@525
|
29
|
bsw@558
|
30 tabs[#tabs+1] = {
|
bsw@558
|
31 name = "timeline",
|
bsw@602
|
32 label = _"Latest events",
|
bsw@558
|
33 module = "event",
|
bsw@558
|
34 view = "_list",
|
bsw@558
|
35 params = { for_member = member }
|
bsw@558
|
36 }
|
bsw@525
|
37
|
bsw@525
|
38 tabs[#tabs+1] = {
|
bsw@525
|
39 name = "open",
|
bsw@525
|
40 label = _"Open issues",
|
bsw@525
|
41 module = "issue",
|
bsw@525
|
42 view = "_list",
|
bsw@525
|
43 link_params = {
|
bsw@558
|
44 filter_interest = "issue",
|
bsw@525
|
45 },
|
bsw@525
|
46 params = {
|
bsw@525
|
47 for_state = "open",
|
bsw@558
|
48 for_member = member,
|
bsw@525
|
49 issues_selector = Issue:new_selector()
|
bsw@525
|
50 :add_where("issue.closed ISNULL")
|
bsw@525
|
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()")
|
bsw@525
|
52 }
|
bsw@525
|
53 }
|
bsw@525
|
54
|
bsw@525
|
55 tabs[#tabs+1] = {
|
bsw@525
|
56 name = "closed",
|
bsw@525
|
57 label = _"Closed issues",
|
bsw@525
|
58 module = "issue",
|
bsw@525
|
59 view = "_list",
|
bsw@525
|
60 link_params = {
|
bsw@558
|
61 filter_interest = "issue",
|
bsw@525
|
62 },
|
bsw@525
|
63 params = {
|
bsw@525
|
64 for_state = "closed",
|
bsw@558
|
65 for_member = member,
|
bsw@525
|
66 issues_selector = Issue:new_selector()
|
bsw@525
|
67 :add_where("issue.closed NOTNULL")
|
bsw@525
|
68 :add_order_by("issue.closed DESC")
|
bsw@525
|
69
|
bsw@525
|
70 }
|
bsw@525
|
71 }
|
bsw@525
|
72
|
bsw@525
|
73
|
bsw@558
|
74 local outgoing_delegations_selector = member:get_reference_selector("outgoing_delegations")
|
bsw@558
|
75 :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id")
|
bsw@558
|
76 :add_where("_member_showtab_issue.closed ISNULL")
|
bsw@558
|
77 tabs[#tabs+1] = {
|
bsw@558
|
78 name = "outgoing_delegations",
|
bsw@558
|
79 label = _"Outgoing delegations" .. " (" .. tostring(outgoing_delegations_selector:count()) .. ")",
|
bsw@558
|
80 icon = { static = "icons/16/table_go.png" },
|
bsw@558
|
81 module = "delegation",
|
bsw@558
|
82 view = "_list",
|
bsw@558
|
83 params = { delegations_selector = outgoing_delegations_selector, outgoing = true },
|
bsw@558
|
84 }
|
bsw@525
|
85
|
bsw@558
|
86 local incoming_delegations_selector = member:get_reference_selector("incoming_delegations")
|
bsw@558
|
87 :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id")
|
bsw@558
|
88 :add_where("_member_showtab_issue.closed ISNULL")
|
bsw@558
|
89 tabs[#tabs+1] = {
|
bsw@558
|
90 name = "incoming_delegations",
|
bsw@558
|
91 label = _"Incoming delegations" .. " (" .. tostring(incoming_delegations_selector:count()) .. ")",
|
bsw@558
|
92 icon = { static = "icons/16/table_go.png" },
|
bsw@558
|
93 module = "delegation",
|
bsw@558
|
94 view = "_list",
|
bsw@558
|
95 params = { delegations_selector = incoming_delegations_selector, incoming = true },
|
bsw@558
|
96 }
|
bsw@525
|
97
|
bsw@558
|
98 local contacts_selector = member:get_reference_selector("saved_members"):add_where("public")
|
bsw@558
|
99 tabs[#tabs+1] = {
|
bsw@558
|
100 name = "contacts",
|
bsw@558
|
101 label = _"Contacts" .. " (" .. tostring(contacts_selector:count()) .. ")",
|
bsw@558
|
102 icon = { static = "icons/16/book_edit.png" },
|
bsw@558
|
103 module = "member",
|
bsw@558
|
104 view = "_list",
|
bsw@558
|
105 params = { members_selector = contacts_selector },
|
bsw@558
|
106 }
|
bsw@525
|
107
|
bsw@525
|
108 ui.tabs(tabs)
|