bsw/jbe@19: local issue bsw/jbe@19: if request.get_json_request_slots() then bsw/jbe@19: issue = Issue:by_id(param.get("issue_id")) bsw/jbe@19: else bsw/jbe@19: issue = param.get("issue", "table") bsw/jbe@19: end bsw/jbe@19: bsw/jbe@19: local voting_requested_percentage = 0 bsw/jbe@19: if issue.vote_later and issue.population and issue.population > 0 then bsw/jbe@19: voting_requested_percentage = math.ceil(issue.vote_later / issue.population * 100) bsw/jbe@19: end bsw/jbe@19: bsw/jbe@19: local interested_members_selector = issue:get_reference_selector("interested_members_snapshot") bsw/jbe@19: :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id") bsw/jbe@19: :add_field("direct_interest_snapshot.weight") bsw/jbe@19: :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event") bsw/jbe@19: bsw/jbe@19: local voting_requests_selector = issue:get_reference_selector("interested_members_snapshot") bsw/jbe@19: :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id") bsw/jbe@19: :add_where("direct_interest_snapshot.voting_requested = false") bsw/jbe@19: bsw/jbe@19: local delegations_selector = issue:get_reference_selector("delegations") bsw/jbe@19: bsw/jbe@19: bsw/jbe@19: ui.tabs{ bsw/jbe@19: module = "issue", bsw/jbe@19: view = "show_tab", bsw/jbe@19: static_params = { issue_id = issue.id }, bsw/jbe@19: { bsw/jbe@19: name = "interested_members", bsw/jbe@19: label = _"Interested members" .. " (" .. tostring(interested_members_selector:count()) .. ")" , bsw/jbe@19: icon = { static = "icons/16/eye.png" }, bsw/jbe@19: module = "member", bsw/jbe@19: view = "_list", bsw/jbe@19: params = { bsw/jbe@19: issue = issue, bsw/jbe@19: members_selector = interested_members_selector bsw/jbe@19: } bsw/jbe@19: }, bsw/jbe@19: { bsw/jbe@19: name = "voting_requests", bsw/jbe@19: label = _"Vote later requests" .. " (" .. tostring(voting_requests_selector:count()) .. ") (" .. tostring(voting_requested_percentage) .. "%)", bsw/jbe@19: icon = { static = "icons/16/clock_play.png" }, bsw/jbe@19: module = "member", bsw/jbe@19: view = "_list", bsw/jbe@19: params = { bsw/jbe@19: issue = issue, bsw/jbe@19: members_selector = voting_requests_selector bsw/jbe@19: } bsw/jbe@19: }, bsw/jbe@19: { bsw/jbe@19: name = "delegations", bsw/jbe@19: label = _"Delegations" .. " (" .. tostring(delegations_selector:count()) .. ")" , bsw/jbe@19: icon = { static = "icons/16/table_go.png" }, bsw/jbe@19: module = "delegation", bsw/jbe@19: view = "_list", bsw/jbe@19: params = { delegations_selector = delegations_selector } bsw/jbe@19: }, bsw/jbe@19: { bsw/jbe@19: name = "details", bsw/jbe@19: label = _"Details", bsw/jbe@19: icon = { static = "icons/16/magnifier.png" }, bsw/jbe@19: module = "issue", bsw/jbe@19: view = "_details", bsw/jbe@19: params = { issue = issue } bsw/jbe@19: }, bsw/jbe@19: } bsw/jbe@19: bsw/jbe@19: