rev |
line source |
bsw/jbe@19
|
1 local issue
|
bsw/jbe@19
|
2 if request.get_json_request_slots() then
|
bsw/jbe@19
|
3 issue = Issue:by_id(param.get("issue_id"))
|
bsw/jbe@19
|
4 else
|
bsw/jbe@19
|
5 issue = param.get("issue", "table")
|
bsw/jbe@19
|
6 end
|
bsw/jbe@19
|
7
|
bsw/jbe@19
|
8 local voting_requested_percentage = 0
|
bsw/jbe@19
|
9 if issue.vote_later and issue.population and issue.population > 0 then
|
bsw/jbe@19
|
10 voting_requested_percentage = math.ceil(issue.vote_later / issue.population * 100)
|
bsw/jbe@19
|
11 end
|
bsw/jbe@19
|
12
|
bsw/jbe@19
|
13 local interested_members_selector = issue:get_reference_selector("interested_members_snapshot")
|
bsw/jbe@19
|
14 :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id")
|
bsw/jbe@19
|
15 :add_field("direct_interest_snapshot.weight")
|
bsw/jbe@19
|
16 :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event")
|
bsw/jbe@19
|
17
|
bsw/jbe@19
|
18 local voting_requests_selector = issue:get_reference_selector("interested_members_snapshot")
|
bsw/jbe@19
|
19 :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id")
|
bsw/jbe@19
|
20 :add_where("direct_interest_snapshot.voting_requested = false")
|
bsw@41
|
21 :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event")
|
bsw/jbe@19
|
22
|
bsw/jbe@19
|
23 local delegations_selector = issue:get_reference_selector("delegations")
|
bsw/jbe@19
|
24
|
bsw/jbe@19
|
25
|
bsw/jbe@19
|
26 ui.tabs{
|
bsw/jbe@19
|
27 module = "issue",
|
bsw/jbe@19
|
28 view = "show_tab",
|
bsw/jbe@19
|
29 static_params = { issue_id = issue.id },
|
bsw/jbe@19
|
30 {
|
bsw/jbe@19
|
31 name = "interested_members",
|
bsw/jbe@19
|
32 label = _"Interested members" .. " (" .. tostring(interested_members_selector:count()) .. ")" ,
|
bsw/jbe@19
|
33 icon = { static = "icons/16/eye.png" },
|
bsw/jbe@19
|
34 module = "member",
|
bsw/jbe@19
|
35 view = "_list",
|
bsw/jbe@19
|
36 params = {
|
bsw/jbe@19
|
37 issue = issue,
|
bsw/jbe@19
|
38 members_selector = interested_members_selector
|
bsw/jbe@19
|
39 }
|
bsw/jbe@19
|
40 },
|
bsw/jbe@19
|
41 {
|
bsw/jbe@19
|
42 name = "voting_requests",
|
bsw/jbe@19
|
43 label = _"Vote later requests" .. " (" .. tostring(voting_requests_selector:count()) .. ") (" .. tostring(voting_requested_percentage) .. "%)",
|
bsw/jbe@19
|
44 icon = { static = "icons/16/clock_play.png" },
|
bsw/jbe@19
|
45 module = "member",
|
bsw/jbe@19
|
46 view = "_list",
|
bsw/jbe@19
|
47 params = {
|
bsw/jbe@19
|
48 issue = issue,
|
bsw/jbe@19
|
49 members_selector = voting_requests_selector
|
bsw/jbe@19
|
50 }
|
bsw/jbe@19
|
51 },
|
bsw/jbe@19
|
52 {
|
bsw/jbe@19
|
53 name = "delegations",
|
bsw/jbe@19
|
54 label = _"Delegations" .. " (" .. tostring(delegations_selector:count()) .. ")" ,
|
bsw/jbe@19
|
55 icon = { static = "icons/16/table_go.png" },
|
bsw/jbe@19
|
56 module = "delegation",
|
bsw/jbe@19
|
57 view = "_list",
|
bsw/jbe@19
|
58 params = { delegations_selector = delegations_selector }
|
bsw/jbe@19
|
59 },
|
bsw/jbe@19
|
60 {
|
bsw/jbe@19
|
61 name = "details",
|
bsw/jbe@19
|
62 label = _"Details",
|
bsw/jbe@19
|
63 icon = { static = "icons/16/magnifier.png" },
|
bsw/jbe@19
|
64 module = "issue",
|
bsw/jbe@19
|
65 view = "_details",
|
bsw/jbe@19
|
66 params = { issue = issue }
|
bsw/jbe@19
|
67 },
|
bsw/jbe@19
|
68 }
|
bsw/jbe@19
|
69
|
bsw/jbe@19
|
70
|