liquid_feedback_frontend

annotate app/main/unit/show.lua @ 414:699b9fa7bc36

Integrated new event system, splitted issues in open/closed, changed navigation
author bsw
date Sat Mar 10 16:57:49 2012 +0100 (2012-03-10)
parents 12a578e75f3e
children 63d6549cc00b
rev   line source
bsw@301 1 local unit_id = config.single_unit_id or param.get_id()
bsw@301 2
bsw@301 3 local unit = Unit:by_id(unit_id)
bsw@301 4
bsw@301 5 if not config.single_unit_id then
bsw@301 6 slot.put_into("title", unit.name)
bsw@301 7 else
bsw@301 8 slot.put_into("title", encode.html(config.app_title))
bsw@301 9 end
bsw@301 10
bsw@301 11 if config.single_unit_id and not app.session.member_id and config.motd_public then
bsw@301 12 local help_text = config.motd_public
bsw@301 13 ui.container{
bsw@301 14 attr = { class = "wiki motd" },
bsw@301 15 content = function()
bsw@301 16 slot.put(format.wiki_text(help_text))
bsw@301 17 end
bsw@301 18 }
bsw@301 19 end
bsw@301 20
bsw@301 21 util.help("unit.show", _"Unit")
bsw@301 22
bsw@301 23 if app.session.member_id then
bsw@301 24 execute.view{
bsw@301 25 module = "delegation",
bsw@301 26 view = "_show_box",
bsw@301 27 params = { unit_id = unit_id }
bsw@301 28 }
bsw@301 29 end
bsw@301 30
bsw@301 31
bsw@301 32 local areas_selector = Area:build_selector{ active = true, unit_id = unit_id }
bsw@301 33 areas_selector:add_order_by("member_weight DESC")
bsw@301 34
bsw@301 35 local members_selector = Member:build_selector{
bsw@301 36 active = true,
bsw@301 37 voting_right_for_unit_id = unit.id
bsw@301 38 }
bsw@301 39
bsw@301 40 local delegations_selector = Delegation:new_selector()
bsw@301 41 :join("member", "truster", "truster.id = delegation.truster_id AND truster.active")
bsw@302 42 :join("privilege", "truster_privilege", "truster_privilege.member_id = truster.id AND truster_privilege.unit_id = delegation.unit_id AND truster_privilege.voting_right")
bsw@301 43 :join("member", "trustee", "trustee.id = delegation.trustee_id AND truster.active")
bsw@302 44 :join("privilege", "trustee_privilege", "trustee_privilege.member_id = trustee.id AND trustee_privilege.unit_id = delegation.unit_id AND trustee_privilege.voting_right")
bsw@301 45 :add_where{ "delegation.unit_id = ?", unit.id }
bsw@301 46
bsw@414 47 local open_issues_selector = Issue:new_selector()
bsw@301 48 :join("area", nil, "area.id = issue.area_id")
bsw@301 49 :add_where{ "area.unit_id = ?", unit.id }
bsw@414 50 :add_where("issue.closed ISNULL")
bsw@414 51 :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()")
bsw@414 52
bsw@414 53 local closed_issues_selector = Issue:new_selector()
bsw@414 54 :join("area", nil, "area.id = issue.area_id")
bsw@414 55 :add_where{ "area.unit_id = ?", unit.id }
bsw@414 56 :add_where("issue.closed NOTNULL")
bsw@414 57 :add_order_by("issue.closed DESC")
bsw@301 58
bsw@301 59 local tabs = {
bsw@301 60 module = "unit",
bsw@301 61 view = "show",
bsw@301 62 id = unit.id
bsw@301 63 }
bsw@301 64
bsw@301 65 tabs[#tabs+1] = {
bsw@301 66 name = "areas",
bsw@301 67 label = _"Areas",
bsw@301 68 module = "area",
bsw@301 69 view = "_list",
bsw@301 70 params = { areas_selector = areas_selector }
bsw@301 71 }
bsw@301 72
bsw@301 73 tabs[#tabs+1] = {
bsw@414 74 name = "timeline",
bsw@414 75 label = _"Events",
bsw@414 76 module = "event",
bsw@414 77 view = "_list",
bsw@414 78 params = { for_unit = unit }
bsw@414 79 }
bsw@414 80
bsw@414 81 tabs[#tabs+1] = {
bsw@414 82 name = "open",
bsw@414 83 label = _"Open issues",
bsw@301 84 module = "issue",
bsw@301 85 view = "_list",
bsw@414 86 params = {
bsw@414 87 for_state = "open",
bsw@414 88 issues_selector = open_issues_selector, for_unit = true
bsw@414 89 }
bsw@414 90 }
bsw@414 91 tabs[#tabs+1] = {
bsw@414 92 name = "closed",
bsw@414 93 label = _"Closed issues",
bsw@414 94 module = "issue",
bsw@414 95 view = "_list",
bsw@414 96 params = {
bsw@414 97 for_state = "closed",
bsw@414 98 issues_selector = closed_issues_selector, for_unit = true
bsw@414 99 }
bsw@301 100 }
bsw@301 101
bsw@301 102 if app.session.member_id then
bsw@301 103 tabs[#tabs+1] = {
bsw@301 104 name = "members",
bsw@301 105 label = _"Members",
bsw@301 106 module = "member",
bsw@301 107 view = "_list",
bsw@301 108 params = { members_selector = members_selector }
bsw@301 109 }
bsw@301 110
bsw@301 111 tabs[#tabs+1] = {
bsw@301 112 name = "delegations",
bsw@301 113 label = _"Delegations",
bsw@301 114 module = "delegation",
bsw@301 115 view = "_list",
bsw@301 116 params = { delegations_selector = delegations_selector }
bsw@301 117 }
bsw@301 118 end
bsw@301 119
bsw@301 120 ui.tabs(tabs)

Impressum / About Us