liquid_feedback_frontend
view app/main/area/show.lua @ 1309:32cc544d5a5b
Cumulative patch for upcoming frontend version 4
author | bsw/jbe |
---|---|
date | Sun Jul 15 14:07:29 2018 +0200 (2018-07-15) |
parents | 8288027edb54 |
children |
line source
1 local area = Area:by_id(param.get_id())
3 if not area then
4 execute.view { module = "index", view = "404" }
5 request.set_status("404 Not Found")
6 return
7 end
9 app.current_area = area
12 area:load_delegation_info_once_for_member_id(app.session.member_id)
14 app.html_title.title = area.name
15 app.html_title.subtitle = _("Area")
17 ui.container{ attr = { class = "mdl-grid" }, content = function()
18 ui.container{ attr = { class = "mdl-cell mdl-cell--12-col" }, content = function()
19 ui.heading{ content = area.unit.name .. " / " .. area.name }
21 execute.view {
22 module = "area", view = "_head", params = {
23 area = area, member = app.session.member
24 }
25 }
27 execute.view {
28 module = "area", view = "_sidebar_whatcanido", params = {
29 area = area
30 }
31 }
33 execute.view {
34 module = "area", view = "_sidebar_members", params = {
35 area = area
36 }
37 }
39 local function getOpenIssuesSelector()
40 return area:get_reference_selector("issues")
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()")
42 end
44 local admission_selector = getOpenIssuesSelector()
45 :add_where("issue.state = 'admission'");
47 local discussion_selector = getOpenIssuesSelector()
48 :add_where("issue.state = 'discussion'");
50 local verification_selector = getOpenIssuesSelector()
51 :add_where("issue.state = 'verification'");
53 local voting_selector = getOpenIssuesSelector()
54 :add_where("issue.state = 'voting'");
57 local closed_selector = area:get_reference_selector("issues")
58 :add_where("issue.closed NOTNULL")
59 :add_order_by("issue.closed DESC")
61 local members_selector = area:get_reference_selector("members"):add_where("member.active")
62 local delegations_selector = area:get_reference_selector("delegations")
63 :join("member", "truster", "truster.id = delegation.truster_id AND truster.active")
64 :join("member", "trustee", "trustee.id = delegation.trustee_id AND trustee.active")
67 execute.view {
68 module = "issue",
69 view = "_list",
70 params = { for_area = area }
71 }
72 end }
73 end }