liquid_feedback_frontend

annotate app/main/lf2/_issues.lua @ 211:4993b71b383f

First checkin of lf2 (frontend second generation) prototype
author bsw
date Wed Mar 02 20:06:26 2011 +0100 (2011-03-02)
parents
children 3e4ad069847a
rev   line source
bsw@211 1 local issues = param.get("issues", "table")
bsw@211 2
bsw@211 3 for i, issue in ipairs(issues) do
bsw@211 4 local initiatives = issue.initiatives
bsw@211 5
bsw@211 6 local interested_members = issue.interested_members
bsw@211 7
bsw@211 8 -- prepare interest of current user
bsw@211 9 local interest = issue.interest
bsw@211 10
bsw@211 11 -- prepare trustees
bsw@211 12 local trustees = Member:new_selector()
bsw@211 13 :add_field("delegation_chain.*")
bsw@211 14 :join("delegation_chain(" .. tostring(app.session.member.id) .. ", NULL, " .. tostring(issue.id or "NULL") .. ")", "delegation_chain", "member.id = delegation_chain.member_id")
bsw@211 15 :add_order_by("index")
bsw@211 16 :exec()
bsw@211 17
bsw@211 18 local global_delegation
bsw@211 19 local area_delegation
bsw@211 20 local issue_delegation
bsw@211 21
bsw@211 22 for i, delegation in ipairs(issue.outgoing_delegations) do
bsw@211 23 if delegation.scope == "global" then global_delegation = delegation
bsw@211 24 elseif delegation.scope == "area" then area_delegation = delegation
bsw@211 25 elseif delegation.scope == "issue" then issue_delegation = delegation
bsw@211 26 end
bsw@211 27 end
bsw@211 28
bsw@211 29 local delegation = issue_delegation or area_delegation or global_delegation
bsw@211 30
bsw@211 31 local delegating_interest = issue.delegating_interest
bsw@211 32
bsw@211 33 ui.box{ class = "issue", content = function()
bsw@211 34
bsw@211 35 ui.box_row{ class = "head", content = function()
bsw@211 36
bsw@211 37 ui.box_col{ class = "issue_id left", content = function()
bsw@211 38 ui.link{
bsw@211 39 module = "lf2", view = "issue", id = issue.id,
bsw@211 40 content = _("Issue ##{id}", { id = issue.id })
bsw@211 41 }
bsw@211 42 end }
bsw@211 43
bsw@211 44 ui.box_col{ class = "unit_name right", content = function()
bsw@211 45 ui.link{
bsw@211 46 module = "lf2", view = "unit", id = 1,
bsw@211 47 content = "Dummy unit name"
bsw@211 48 }
bsw@211 49 end }
bsw@211 50 ui.box_col{ class = "area_name right clearright", content = function()
bsw@211 51 ui.link{
bsw@211 52 module = "lf2", view = "area_name", id = issue.area_id,
bsw@211 53 content = issue.area.name
bsw@211 54 }
bsw@211 55 end }
bsw@211 56 ui.box_col{ class = "policy_name left clearleft first", content = function()
bsw@211 57 ui.link{
bsw@211 58 module = "lf2", view = "policy", id = issue.policy_id,
bsw@211 59 content = issue.policy.name
bsw@211 60 }
bsw@211 61 end }
bsw@211 62
bsw@211 63 end }
bsw@211 64
bsw@211 65 ui.box_row{ class = "head2", content = function()
bsw@211 66
bsw@211 67 ui.box_col{ class = "state_name left", content = function()
bsw@211 68 ui.tag{ content = issue.state_name }
bsw@211 69 slot.put(" · ")
bsw@211 70 ui.tag{ content = issue.closed and _("since #{date}", { date = format.date(issue.closed.date) }) or _("#{time_left} left", { time_left = issue.state_time_left }) }
bsw@211 71 end }
bsw@211 72 end }
bsw@211 73
bsw@211 74 if interest or delegation then
bsw@211 75 ui.box_row{ class = "head2", content = function()
bsw@211 76 ui.box_col{ class = "interest left", content = function()
bsw@211 77 if interest then
bsw@211 78 ui.image{ static = "lf2/icon_star.png" }
bsw@211 79 if issue.closed then
bsw@211 80 slot.put(" ", _"You were interested in this issue")
bsw@211 81 else
bsw@211 82 slot.put(" ", _"You are interested in this issue")
bsw@211 83 end
bsw@211 84 elseif delegating_interest then
bsw@211 85 ui.image{ static = "lf2/icon_delegated_star.png" }
bsw@211 86 if issue.closed then
bsw@211 87 slot.put(" ", _"You were interested in this issue by delegation")
bsw@211 88 else
bsw@211 89 slot.put(" ", _"You are interested in this issue by delegation")
bsw@211 90 end
bsw@211 91 elseif trustees then
bsw@211 92 slot.put(_"You have delegated this issue")
bsw@211 93 else
bsw@211 94 slot.put(_"You are not interested in this issue")
bsw@211 95 end
bsw@211 96 end }
bsw@211 97 -- TODO if delegation ist falsch
bsw@211 98 if delegation then
bsw@211 99 slot.put(tostring(delegation.id))
bsw@211 100 ui.box_col{ class = "delegation right", content = function()
bsw@211 101 execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small" } }
bsw@211 102 end }
bsw@211 103 end
bsw@211 104 end }
bsw@211 105 end
bsw@211 106
bsw@211 107 for i, initiative in ipairs(issue.initiatives) do
bsw@211 108 ui.box_row{ class = "initiative", content = function() ui.box_col { content = function()
bsw@211 109 execute.view{ module = "lf2", view = "_initiative", params = { initiative = initiative } }
bsw@211 110 end } end }
bsw@211 111 end
bsw@211 112
bsw@211 113 end }
bsw@211 114 end

Impressum / About Us