liquid_feedback_frontend
diff app/main/area/show.lua @ 1045:701a5cf6b067
Imported LiquidFeedback Frontend 3.0 branch
author | bsw |
---|---|
date | Thu Jul 10 01:19:48 2014 +0200 (2014-07-10) |
parents | cf0b64e101d9 |
children | 904f6807f7fa |
line diff
1.1 --- a/app/main/area/show.lua Thu Jul 10 01:02:43 2014 +0200 1.2 +++ b/app/main/area/show.lua Thu Jul 10 01:19:48 2014 +0200 1.3 @@ -1,27 +1,53 @@ 1.4 local area = Area:by_id(param.get_id()) 1.5 1.6 +if not area then 1.7 + execute.view { module = "index", view = "404" } 1.8 + request.set_status("404 Not Found") 1.9 + return 1.10 +end 1.11 + 1.12 +area:load_delegation_info_once_for_member_id(app.session.member_id) 1.13 1.14 app.html_title.title = area.name 1.15 app.html_title.subtitle = _("Area") 1.16 1.17 -util.help("area.show") 1.18 - 1.19 -slot.select("head", function() 1.20 - execute.view{ module = "area", view = "_head", params = { area = area, show_content = true, member = app.session.member } } 1.21 -end) 1.22 +execute.view { 1.23 + module = "area", view = "_head", params = { 1.24 + area = area, member = app.session.member 1.25 + } 1.26 +} 1.27 1.28 -ui.container{ 1.29 - attr = { class = "vertical"}, 1.30 - content = function() 1.31 - ui.field.text{ value = area.description } 1.32 - end 1.33 +execute.view { 1.34 + module = "area", view = "_sidebar_whatcanido", params = { 1.35 + area = area 1.36 + } 1.37 +} 1.38 + 1.39 +execute.view { 1.40 + module = "area", view = "_sidebar_members", params = { 1.41 + area = area 1.42 + } 1.43 } 1.44 1.45 -local open_issues_selector = area:get_reference_selector("issues") 1.46 - :add_where("issue.closed ISNULL") 1.47 - :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()") 1.48 +function getOpenIssuesSelector() 1.49 + return area:get_reference_selector("issues") 1.50 + :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()") 1.51 +end 1.52 + 1.53 +local admission_selector = getOpenIssuesSelector() 1.54 + :add_where("issue.state = 'admission'"); 1.55 1.56 -local closed_issues_selector = area:get_reference_selector("issues") 1.57 +local discussion_selector = getOpenIssuesSelector() 1.58 + :add_where("issue.state = 'discussion'"); 1.59 + 1.60 +local verification_selector = getOpenIssuesSelector() 1.61 + :add_where("issue.state = 'verification'"); 1.62 + 1.63 +local voting_selector = getOpenIssuesSelector() 1.64 + :add_where("issue.state = 'voting'"); 1.65 + 1.66 + 1.67 +local closed_selector = area:get_reference_selector("issues") 1.68 :add_where("issue.closed NOTNULL") 1.69 :add_order_by("issue.closed DESC") 1.70 1.71 @@ -30,61 +56,9 @@ 1.72 :join("member", "truster", "truster.id = delegation.truster_id AND truster.active") 1.73 :join("member", "trustee", "trustee.id = delegation.trustee_id AND trustee.active") 1.74 1.75 -local tabs = { 1.76 - module = "area", 1.77 - view = "show_tab", 1.78 - static_params = { area_id = area.id }, 1.79 -} 1.80 1.81 -tabs[#tabs+1] = { 1.82 - name = "timeline", 1.83 - label = _"Latest events", 1.84 - module = "event", 1.85 - view = "_list", 1.86 +execute.view { 1.87 + module = "issue", 1.88 + view = "_list2", 1.89 params = { for_area = area } 1.90 } 1.91 - 1.92 -tabs[#tabs+1] = { 1.93 - name = "open", 1.94 - label = _"Open issues", 1.95 - module = "issue", 1.96 - view = "_list", 1.97 - params = { 1.98 - for_state = "open", 1.99 - issues_selector = open_issues_selector, for_area = true 1.100 - } 1.101 -} 1.102 -tabs[#tabs+1] = { 1.103 - name = "closed", 1.104 - label = _"Closed issues", 1.105 - module = "issue", 1.106 - view = "_list", 1.107 - params = { 1.108 - for_state = "closed", 1.109 - issues_selector = closed_issues_selector, for_area = true 1.110 - } 1.111 -} 1.112 - 1.113 -if app.session:has_access("all_pseudonymous") then 1.114 - tabs[#tabs+1] = 1.115 - { 1.116 - name = "members", 1.117 - label = _"Participants" .. " (" .. tostring(members_selector:count()) .. ")", 1.118 - icon = { static = "icons/16/group.png" }, 1.119 - module = "member", 1.120 - view = "_list", 1.121 - params = { members_selector = members_selector } 1.122 - } 1.123 - 1.124 - tabs[#tabs+1] = 1.125 - { 1.126 - name = "delegations", 1.127 - label = _"Delegations" .. " (" .. tostring(delegations_selector:count()) .. ")", 1.128 - icon = { static = "icons/16/table_go.png" }, 1.129 - module = "delegation", 1.130 - view = "_list", 1.131 - params = { delegations_selector = delegations_selector } 1.132 - } 1.133 -end 1.134 - 1.135 -ui.tabs(tabs)