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@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@1045: execute.view { bsw@1045: module = "area", view = "_head", params = { bsw@1045: area = area, member = app.session.member bsw@1045: } bsw@1045: } bsw/jbe@0: bsw@1045: execute.view { bsw@1045: module = "area", view = "_sidebar_whatcanido", params = { bsw@1045: area = area bsw@1045: } bsw@1045: } bsw@1045: bsw@1045: execute.view { bsw@1045: module = "area", view = "_sidebar_members", params = { bsw@1045: area = area bsw@1045: } bsw/jbe@0: } bsw/jbe@0: bsw@1145: local function getOpenIssuesSelector() bsw@1045: return area:get_reference_selector("issues") bsw@1045: :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@1045: end bsw@1045: bsw@1045: local admission_selector = getOpenIssuesSelector() bsw@1045: :add_where("issue.state = 'admission'"); bsw@197: bsw@1045: local discussion_selector = getOpenIssuesSelector() bsw@1045: :add_where("issue.state = 'discussion'"); bsw@1045: bsw@1045: local verification_selector = getOpenIssuesSelector() bsw@1045: :add_where("issue.state = 'verification'"); bsw@1045: bsw@1045: local voting_selector = getOpenIssuesSelector() bsw@1045: :add_where("issue.state = 'voting'"); bsw@1045: bsw@1045: bsw@1045: local closed_selector = area:get_reference_selector("issues") bsw@869: :add_where("issue.closed NOTNULL") bsw@869: :add_order_by("issue.closed DESC") bsw@271: bsw@869: local members_selector = area:get_reference_selector("members"):add_where("member.active") bsw@869: local delegations_selector = area:get_reference_selector("delegations") bsw@869: :join("member", "truster", "truster.id = delegation.truster_id AND truster.active") bsw@869: :join("member", "trustee", "trustee.id = delegation.trustee_id AND trustee.active") bsw/jbe@0: bsw@869: bsw@1045: execute.view { bsw@1045: module = "issue", bsw@1045: view = "_list2", bsw@869: params = { for_area = area } bsw@869: }