| rev | line source | 
| bsw@197 | 1 local area = Area:by_id(param.get_id()) | 
| bsw@197 | 2 | 
| bsw@1045 | 3 if not area then | 
| bsw@1045 | 4   execute.view { module = "index", view = "404" } | 
| bsw@1045 | 5   request.set_status("404 Not Found") | 
| bsw@1045 | 6   return | 
| bsw@1045 | 7 end | 
| bsw@1045 | 8 | 
| bsw/jbe@1309 | 9 app.current_area = area | 
| bsw/jbe@1309 | 10 | 
| bsw/jbe@1309 | 11 | 
| bsw@1045 | 12 area:load_delegation_info_once_for_member_id(app.session.member_id) | 
| bsw/jbe@0 | 13 | 
| jorges@103 | 14 app.html_title.title = area.name | 
| jorges@103 | 15 app.html_title.subtitle = _("Area") | 
| jorges@103 | 16 | 
| bsw/jbe@1309 | 17 ui.container{ attr = { class = "mdl-grid" }, content = function() | 
| bsw/jbe@1309 | 18   ui.container{ attr = { class = "mdl-cell mdl-cell--12-col" }, content = function() | 
| bsw/jbe@1309 | 19     ui.heading{ content = area.unit.name .. " / " .. area.name } | 
| bsw/jbe@0 | 20 | 
| bsw/jbe@1309 | 21     execute.view { | 
| bsw/jbe@1309 | 22       module = "area", view = "_head", params = { | 
| bsw/jbe@1309 | 23         area = area, member = app.session.member | 
| bsw/jbe@1309 | 24       } | 
| bsw/jbe@1309 | 25     } | 
| bsw/jbe@1309 | 26 | 
| bsw/jbe@1309 | 27     execute.view { | 
| bsw/jbe@1309 | 28       module = "area", view = "_sidebar_whatcanido", params = { | 
| bsw/jbe@1309 | 29         area = area | 
| bsw/jbe@1309 | 30       } | 
| bsw/jbe@1309 | 31     } | 
| bsw@1045 | 32 | 
| bsw/jbe@1309 | 33     execute.view { | 
| bsw/jbe@1309 | 34       module = "area", view = "_sidebar_members", params = { | 
| bsw/jbe@1309 | 35         area = area | 
| bsw/jbe@1309 | 36       } | 
| bsw/jbe@1309 | 37     } | 
| bsw/jbe@0 | 38 | 
| bsw/jbe@1309 | 39     local function getOpenIssuesSelector() | 
| bsw/jbe@1309 | 40       return area:get_reference_selector("issues") | 
| bsw/jbe@1309 | 41         :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 | 42     end | 
| bsw@1045 | 43 | 
| bsw/jbe@1309 | 44     local admission_selector = getOpenIssuesSelector() | 
| bsw/jbe@1309 | 45       :add_where("issue.state = 'admission'"); | 
| bsw@197 | 46 | 
| bsw/jbe@1309 | 47     local discussion_selector = getOpenIssuesSelector() | 
| bsw/jbe@1309 | 48       :add_where("issue.state = 'discussion'"); | 
| bsw@1045 | 49 | 
| bsw/jbe@1309 | 50     local verification_selector = getOpenIssuesSelector() | 
| bsw/jbe@1309 | 51       :add_where("issue.state = 'verification'"); | 
| bsw@1045 | 52 | 
| bsw/jbe@1309 | 53     local voting_selector = getOpenIssuesSelector() | 
| bsw/jbe@1309 | 54       :add_where("issue.state = 'voting'"); | 
| bsw@1045 | 55 | 
| bsw@1045 | 56 | 
| bsw/jbe@1309 | 57     local closed_selector = area:get_reference_selector("issues") | 
| bsw/jbe@1309 | 58       :add_where("issue.closed NOTNULL") | 
| bsw/jbe@1309 | 59       :add_order_by("issue.closed DESC") | 
| bsw@271 | 60 | 
| bsw/jbe@1309 | 61     local members_selector = area:get_reference_selector("members"):add_where("member.active") | 
| bsw/jbe@1309 | 62     local delegations_selector = area:get_reference_selector("delegations") | 
| bsw/jbe@1309 | 63       :join("member", "truster", "truster.id = delegation.truster_id AND truster.active") | 
| bsw/jbe@1309 | 64       :join("member", "trustee", "trustee.id = delegation.trustee_id AND trustee.active") | 
| bsw/jbe@0 | 65 | 
| bsw@869 | 66 | 
| bsw/jbe@1309 | 67     execute.view { | 
| bsw/jbe@1309 | 68       module = "issue", | 
| bsw/jbe@1309 | 69       view = "_list", | 
| bsw/jbe@1309 | 70       params = { for_area = area } | 
| bsw/jbe@1309 | 71     } | 
| bsw/jbe@1309 | 72   end } | 
| bsw/jbe@1309 | 73 end } |