bsw@301: local unit_id = config.single_unit_id or param.get_id() bsw@301: bsw@301: local unit = Unit:by_id(unit_id) bsw@301: bsw@1045: if not unit then bsw@1045: execute.view { module = "index", view = "404" } bsw@1045: request.set_status("404 Not Found") bsw@1045: return bsw@1045: end bsw@301: bsw@1045: bsw@1045: unit:load_delegation_info_once_for_member_id(app.session.member_id) bsw@301: bsw@301: local areas_selector = Area:build_selector{ active = true, unit_id = unit_id } bsw@301: areas_selector:add_order_by("member_weight DESC") bsw@301: bsw@301: local members_selector = Member:build_selector{ bsw@301: active = true, bsw@301: voting_right_for_unit_id = unit.id bsw@301: } bsw@301: bsw@301: local delegations_selector = Delegation:new_selector() bsw@301: :join("member", "truster", "truster.id = delegation.truster_id AND truster.active") bsw@302: :join("privilege", "truster_privilege", "truster_privilege.member_id = truster.id AND truster_privilege.unit_id = delegation.unit_id AND truster_privilege.voting_right") bsw@301: :join("member", "trustee", "trustee.id = delegation.trustee_id AND truster.active") bsw@302: :join("privilege", "trustee_privilege", "trustee_privilege.member_id = trustee.id AND trustee_privilege.unit_id = delegation.unit_id AND trustee_privilege.voting_right") bsw@301: :add_where{ "delegation.unit_id = ?", unit.id } bsw@301: bsw@414: local open_issues_selector = Issue:new_selector() bsw@301: :join("area", nil, "area.id = issue.area_id") bsw@301: :add_where{ "area.unit_id = ?", unit.id } bsw@414: :add_where("issue.closed ISNULL") bsw@414: :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: bsw@414: local closed_issues_selector = Issue:new_selector() bsw@414: :join("area", nil, "area.id = issue.area_id") bsw@414: :add_where{ "area.unit_id = ?", unit.id } bsw@414: :add_where("issue.closed NOTNULL") bsw@414: :add_order_by("issue.closed DESC") bsw@301: bsw@1045: bsw@301: bsw@1045: execute.view { module = "unit", view = "_head", params = { unit = unit } } bsw@301: bsw@414: bsw@1045: execute.view { bsw@1045: module = "unit", view = "_sidebar", params = { bsw@1045: unit = unit bsw@414: } bsw@301: } bsw@301: bsw@1045: execute.view { bsw@1045: module = "unit", view = "_sidebar_whatcanido", params = { bsw@1045: unit = unit bsw@1045: } bsw@1045: } bsw@1045: bsw@1045: execute.view { bsw@1045: module = "unit", view = "_sidebar_members", params = { bsw@1045: unit = unit bsw@1045: } bsw@1045: } bsw@1045: bsw@1045: execute.view { bsw@1045: module = "issue", bsw@1045: view = "_list2", bsw@1045: params = { for_unit = unit, head = function () bsw@1045: ui.heading { attr = { class = "left" }, level = 1, content = unit.name } bsw@1045: end } bsw@1045: } bsw@1045: bsw@1045: --[[ bsw@870: if app.session:has_access("all_pseudonymous") then bsw@301: tabs[#tabs+1] = { bsw@525: name = "eligible_voters", bsw@525: label = _"Eligible voters", bsw@301: module = "member", bsw@301: view = "_list", bsw@301: params = { members_selector = members_selector } bsw@301: } bsw@301: bsw@301: tabs[#tabs+1] = { bsw@301: name = "delegations", bsw@301: label = _"Delegations", bsw@301: module = "delegation", bsw@301: view = "_list", bsw@301: params = { delegations_selector = delegations_selector } bsw@301: } bsw@301: end bsw@301: bsw@1045: ui.tabs(tabs) bsw@1045: bsw@1045: --]]