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)

Impressum / About Us