liquid_feedback_frontend

annotate app/main/area/show.lua @ 959:1d9e48ecd254

Ordering of suggestions by harmonic weight
author bsw
date Sat Feb 02 22:16:10 2013 +0100 (2013-02-02)
parents cf0b64e101d9
children 701a5cf6b067
rev   line source
bsw@197 1 local area = Area:by_id(param.get_id())
bsw@197 2
bsw/jbe@0 3
jorges@103 4 app.html_title.title = area.name
jorges@103 5 app.html_title.subtitle = _("Area")
jorges@103 6
bsw@197 7 util.help("area.show")
bsw@197 8
bsw@526 9 slot.select("head", function()
bsw@795 10 execute.view{ module = "area", view = "_head", params = { area = area, show_content = true, member = app.session.member } }
bsw@526 11 end)
bsw/jbe@0 12
bsw/jbe@0 13 ui.container{
bsw/jbe@0 14 attr = { class = "vertical"},
bsw/jbe@0 15 content = function()
bsw/jbe@0 16 ui.field.text{ value = area.description }
bsw/jbe@0 17 end
bsw/jbe@0 18 }
bsw/jbe@0 19
bsw@869 20 local open_issues_selector = area:get_reference_selector("issues")
bsw@869 21 :add_where("issue.closed ISNULL")
bsw@869 22 :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@197 23
bsw@869 24 local closed_issues_selector = area:get_reference_selector("issues")
bsw@869 25 :add_where("issue.closed NOTNULL")
bsw@869 26 :add_order_by("issue.closed DESC")
bsw@271 27
bsw@869 28 local members_selector = area:get_reference_selector("members"):add_where("member.active")
bsw@869 29 local delegations_selector = area:get_reference_selector("delegations")
bsw@869 30 :join("member", "truster", "truster.id = delegation.truster_id AND truster.active")
bsw@869 31 :join("member", "trustee", "trustee.id = delegation.trustee_id AND trustee.active")
bsw/jbe@0 32
bsw@869 33 local tabs = {
bsw@869 34 module = "area",
bsw@869 35 view = "show_tab",
bsw@869 36 static_params = { area_id = area.id },
bsw@869 37 }
bsw@869 38
bsw@869 39 tabs[#tabs+1] = {
bsw@869 40 name = "timeline",
bsw@869 41 label = _"Latest events",
bsw@869 42 module = "event",
bsw@869 43 view = "_list",
bsw@869 44 params = { for_area = area }
bsw@869 45 }
bsw@869 46
bsw@869 47 tabs[#tabs+1] = {
bsw@869 48 name = "open",
bsw@869 49 label = _"Open issues",
bsw@869 50 module = "issue",
bsw@869 51 view = "_list",
bsw@869 52 params = {
bsw@869 53 for_state = "open",
bsw@869 54 issues_selector = open_issues_selector, for_area = true
bsw@277 55 }
bsw@869 56 }
bsw@869 57 tabs[#tabs+1] = {
bsw@869 58 name = "closed",
bsw@869 59 label = _"Closed issues",
bsw@869 60 module = "issue",
bsw@869 61 view = "_list",
bsw@869 62 params = {
bsw@869 63 for_state = "closed",
bsw@869 64 issues_selector = closed_issues_selector, for_area = true
bsw@869 65 }
bsw@869 66 }
bsw@869 67
bsw@870 68 if app.session:has_access("all_pseudonymous") then
bsw@869 69 tabs[#tabs+1] =
bsw@869 70 {
bsw@869 71 name = "members",
bsw@869 72 label = _"Participants" .. " (" .. tostring(members_selector:count()) .. ")",
bsw@869 73 icon = { static = "icons/16/group.png" },
bsw@869 74 module = "member",
bsw@869 75 view = "_list",
bsw@869 76 params = { members_selector = members_selector }
bsw@277 77 }
bsw@869 78
bsw@869 79 tabs[#tabs+1] =
bsw@869 80 {
bsw@869 81 name = "delegations",
bsw@869 82 label = _"Delegations" .. " (" .. tostring(delegations_selector:count()) .. ")",
bsw@869 83 icon = { static = "icons/16/table_go.png" },
bsw@869 84 module = "delegation",
bsw@869 85 view = "_list",
bsw@869 86 params = { delegations_selector = delegations_selector }
bsw@869 87 }
bsw@277 88 end
bsw@869 89
bsw@869 90 ui.tabs(tabs)

Impressum / About Us