liquid_feedback_frontend
view app/main/unit/show.lua @ 971:a8c6e80cdf5d
Fixed showing of wrong issue cancelled information
| author | bsw | 
|---|---|
| date | Sat Mar 09 19:13:55 2013 +0100 (2013-03-09) | 
| parents | cf0b64e101d9 | 
| children | 701a5cf6b067 | 
 line source
     1 local unit_id = config.single_unit_id or param.get_id()
     3 local unit = Unit:by_id(unit_id)
     5 slot.select("head", function()
     6   execute.view{ module = "unit", view = "_head", params = { unit = unit, show_content = true, member = app.session.member } }
     7 end)
     9 if config.single_unit_id and not app.session.member_id and config.motd_public then
    10   local help_text = config.motd_public
    11   ui.container{
    12     attr = { class = "wiki motd" },
    13     content = function()
    14       slot.put(format.wiki_text(help_text))
    15     end
    16   }
    17 end
    19 local areas_selector = Area:build_selector{ active = true, unit_id = unit_id }
    20 areas_selector:add_order_by("member_weight DESC")
    22 local members_selector = Member:build_selector{
    23   active = true,
    24   voting_right_for_unit_id = unit.id
    25 }
    27 local delegations_selector = Delegation:new_selector()
    28   :join("member", "truster", "truster.id = delegation.truster_id AND truster.active")
    29   :join("privilege", "truster_privilege", "truster_privilege.member_id = truster.id AND truster_privilege.unit_id = delegation.unit_id AND truster_privilege.voting_right")
    30   :join("member", "trustee", "trustee.id = delegation.trustee_id AND truster.active")
    31   :join("privilege", "trustee_privilege", "trustee_privilege.member_id = trustee.id AND trustee_privilege.unit_id = delegation.unit_id AND trustee_privilege.voting_right")
    32   :add_where{ "delegation.unit_id = ?", unit.id }
    34 local open_issues_selector = Issue:new_selector()
    35   :join("area", nil, "area.id = issue.area_id")
    36   :add_where{ "area.unit_id = ?", unit.id }
    37   :add_where("issue.closed ISNULL")
    38   :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()")
    40 local closed_issues_selector = Issue:new_selector()
    41   :join("area", nil, "area.id = issue.area_id")
    42   :add_where{ "area.unit_id = ?", unit.id }
    43   :add_where("issue.closed NOTNULL")
    44   :add_order_by("issue.closed DESC")
    46 local tabs = {
    47   module = "unit",
    48   view = "show",
    49   id = unit.id
    50 }
    52 tabs[#tabs+1] = {
    53   name = "areas",
    54   label = _"Areas",
    55   module = "area",
    56   view = "_list",
    57   params = { areas_selector = areas_selector, member = app.session.member }
    58 }
    60 tabs[#tabs+1] = {
    61   name = "timeline",
    62   label = _"Latest events",
    63   module = "event",
    64   view = "_list",
    65   params = { for_unit = unit }
    66 }
    68 tabs[#tabs+1] = {
    69   name = "open",
    70   label = _"Open issues",
    71   module = "issue",
    72   view = "_list",
    73   params = {
    74     for_state = "open",
    75     issues_selector = open_issues_selector, for_unit = true
    76   }
    77 }
    78 tabs[#tabs+1] = {
    79   name = "closed",
    80   label = _"Closed issues",
    81   module = "issue",
    82   view = "_list",
    83   params = {
    84     for_state = "closed",
    85     issues_selector = closed_issues_selector, for_unit = true
    86   }
    87 }
    89 if app.session:has_access("all_pseudonymous") then
    90   tabs[#tabs+1] = {
    91     name = "eligible_voters",
    92     label = _"Eligible voters",
    93     module = "member",
    94     view = "_list",
    95     params = { members_selector = members_selector }
    96   }
    98   tabs[#tabs+1] = {
    99     name = "delegations",
   100     label = _"Delegations",
   101     module = "delegation",
   102     view = "_list",
   103     params = { delegations_selector = delegations_selector }
   104   }
   105 end
   107 ui.tabs(tabs)
