bsw@197: local area = Area:by_id(param.get_id()) bsw@197: bsw@1045: if not area then bsw@1045: execute.view { module = "index", view = "404" } bsw@1045: request.set_status("404 Not Found") bsw@1045: return bsw@1045: end bsw@1045: bsw/jbe@1309: app.current_area = area bsw/jbe@1309: bsw/jbe@1309: bsw@1045: area:load_delegation_info_once_for_member_id(app.session.member_id) bsw/jbe@0: jorges@103: app.html_title.title = area.name jorges@103: app.html_title.subtitle = _("Area") jorges@103: bsw/jbe@1309: ui.container{ attr = { class = "mdl-grid" }, content = function() bsw/jbe@1309: ui.container{ attr = { class = "mdl-cell mdl-cell--12-col" }, content = function() bsw/jbe@1309: ui.heading{ content = area.unit.name .. " / " .. area.name } bsw/jbe@0: bsw/jbe@1309: execute.view { bsw/jbe@1309: module = "area", view = "_head", params = { bsw/jbe@1309: area = area, member = app.session.member bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@1309: bsw/jbe@1309: execute.view { bsw/jbe@1309: module = "area", view = "_sidebar_whatcanido", params = { bsw/jbe@1309: area = area bsw/jbe@1309: } bsw/jbe@1309: } bsw@1045: bsw/jbe@1309: execute.view { bsw/jbe@1309: module = "area", view = "_sidebar_members", params = { bsw/jbe@1309: area = area bsw/jbe@1309: } bsw/jbe@1309: } bsw/jbe@0: bsw/jbe@1309: local function getOpenIssuesSelector() bsw/jbe@1309: return area:get_reference_selector("issues") bsw/jbe@1309: :add_order_by("coalesce(issue.fully_frozen + issue.voting_time, issue.half_frozen + issue.verification_time, issue.accepted + issue.discussion_time, issue.created + issue.max_admission_time) - now()") bsw/jbe@1309: end bsw@1045: bsw/jbe@1309: local admission_selector = getOpenIssuesSelector() bsw/jbe@1309: :add_where("issue.state = 'admission'"); bsw@197: bsw/jbe@1309: local discussion_selector = getOpenIssuesSelector() bsw/jbe@1309: :add_where("issue.state = 'discussion'"); bsw@1045: bsw/jbe@1309: local verification_selector = getOpenIssuesSelector() bsw/jbe@1309: :add_where("issue.state = 'verification'"); bsw@1045: bsw/jbe@1309: local voting_selector = getOpenIssuesSelector() bsw/jbe@1309: :add_where("issue.state = 'voting'"); bsw@1045: bsw@1045: bsw/jbe@1309: local closed_selector = area:get_reference_selector("issues") bsw/jbe@1309: :add_where("issue.closed NOTNULL") bsw/jbe@1309: :add_order_by("issue.closed DESC") bsw@271: bsw/jbe@1309: local members_selector = area:get_reference_selector("members"):add_where("member.active") bsw/jbe@1309: local delegations_selector = area:get_reference_selector("delegations") bsw/jbe@1309: :join("member", "truster", "truster.id = delegation.truster_id AND truster.active") bsw/jbe@1309: :join("member", "trustee", "trustee.id = delegation.trustee_id AND trustee.active") bsw/jbe@0: bsw@869: bsw/jbe@1309: execute.view { bsw/jbe@1309: module = "issue", bsw/jbe@1309: view = "_list", bsw/jbe@1309: params = { for_area = area } bsw/jbe@1309: } bsw/jbe@1309: end } bsw/jbe@1309: end }