liquid_feedback_frontend

annotate app/main/lf2/delegation.lua @ 215:1dab81353eb1

More enhancements for second generation frontend
author bsw
date Sat Mar 05 15:34:17 2011 +0100 (2011-03-05)
parents 7e3acb2f6284
children 73dbc9e2bfd4
rev   line source
bsw@212 1 slot.set_layout("lf2")
bsw@212 2
bsw@212 3 local area = Area:by_id(param.get("area_id", atom.integer))
bsw@212 4 local issue = Issue:by_id(param.get("issue_id", atom.integer))
bsw@212 5 local initiative = Initiative:by_id(param.get("initiative_id", atom.integer))
bsw@212 6
bsw@212 7 local contact_members = Member:build_selector{
bsw@212 8 is_contact_of_member_id = app.session.member_id,
bsw@212 9 order = "name"
bsw@212 10 }:exec()
bsw@212 11
bsw@212 12 if area then
bsw@212 13 title = _"Set delegation for Area '#{name}'":gsub("#{name}", area.name)
bsw@212 14 end
bsw@212 15
bsw@212 16 if issue then
bsw@212 17 title = _"Set delegation for Issue ##{number} in Area '#{area_name}'":gsub("#{number}", issue.id):gsub("#{area_name}", issue.area.name)
bsw@212 18 end
bsw@212 19
bsw@212 20 if not area and not issue then
bsw@212 21 title = _"Set unit delegation"
bsw@212 22 end
bsw@212 23
bsw@212 24 ui.box{ content = function()
bsw@212 25
bsw@212 26 ui.box_row{ class = "head", content = function() ui.box_col{ class = "head", content = title } end }
bsw@212 27
bsw@212 28 ui.form{
bsw@212 29 attr = { class = "vertical" },
bsw@212 30 module = "delegation",
bsw@212 31 action = "update",
bsw@212 32 params = {
bsw@212 33 area_id = area and area.id or nil,
bsw@212 34 issue_id = issue and issue.id or nil,
bsw@212 35 },
bsw@212 36 routing = {
bsw@212 37 default = {
bsw@212 38 mode = "redirect",
bsw@212 39 module = "lf2",
bsw@213 40 view = area and "area" or initiative and "initiative" or issue and "issue" or "index",
bsw@213 41 id = area and area.id or initiative and initiative.id or issue and issue.id or nil,
bsw@212 42 }
bsw@212 43 },
bsw@212 44 content = function()
bsw@212 45 local records
bsw@212 46
bsw@212 47 if issue then
bsw@212 48 local delegate_name = ""
bsw@212 49 local scope = "no delegation set"
bsw@212 50 local area_delegation = Delegation:by_pk(app.session.member_id, issue.area_id)
bsw@212 51 if area_delegation then
bsw@212 52 delegate_name = area_delegation.trustee and area_delegation.trustee.name or _"abandoned"
bsw@212 53 scope = _"area"
bsw@212 54 else
bsw@212 55 local unit_delegation = Delegation:by_pk(app.session.member_id)
bsw@212 56 if unit_delegation then
bsw@212 57 delegate_name = unit_delegation.trustee.name
bsw@212 58 scope = _"unit"
bsw@212 59 end
bsw@212 60 end
bsw@212 61 records = {
bsw@212 62 {
bsw@212 63 id = -1,
bsw@212 64 name = _("Apply unit or area delegation for this issue (Currently: #{delegate_name} [#{scope}])", { delegate_name = delegate_name, scope = scope })
bsw@212 65 },
bsw@212 66 {
bsw@212 67 id = 0,
bsw@212 68 name = _"Abandon unit and area delegations for this issue"
bsw@212 69 },
bsw@212 70
bsw@212 71 }
bsw@212 72 elseif area then
bsw@212 73 local delegate_name = ""
bsw@212 74 local scope = "no delegation set"
bsw@212 75 local unit_delegation = Delegation:by_pk(app.session.member_id)
bsw@212 76 if unit_delegation then
bsw@212 77 delegate_name = unit_delegation.trustee.name
bsw@212 78 scope = _"unit"
bsw@212 79 end
bsw@212 80 records = {
bsw@212 81 {
bsw@212 82 id = -1,
bsw@212 83 name = _("Apply unit delegation for this area (Currently: #{delegate_name} [#{scope}])", { delegate_name = delegate_name, scope = scope })
bsw@212 84 },
bsw@212 85 {
bsw@212 86 id = 0,
bsw@212 87 name = _"Abandon unit delegation for this area"
bsw@212 88 }
bsw@212 89 }
bsw@212 90
bsw@212 91 else
bsw@212 92 records = {
bsw@212 93 {
bsw@212 94 id = -1,
bsw@212 95 name = _"No delegation"
bsw@212 96 }
bsw@212 97 }
bsw@212 98
bsw@212 99 end
bsw@214 100 disabled_records = {}
bsw@214 101 disabled_records["_"] = true
bsw@214 102
bsw@212 103 -- add saved members
bsw@212 104 records[#records+1] = {id="_", name= "--- " .. _"Saved contacts" .. " ---"}
bsw@212 105 for i, record in ipairs(contact_members) do
bsw@212 106 records[#records+1] = record
bsw@212 107 end
bsw@214 108
bsw@212 109 -- add initiative authors
bsw@212 110 if initiative then
bsw@212 111 records[#records+1] = {id="_", name= "--- " .. _"Initiators" .. " ---"}
bsw@212 112 for i,record in ipairs(initiative.initiators) do
bsw@212 113 records[#records+1] = record.member
bsw@214 114 if record.member.id == app.session.member_id then
bsw@214 115 disabled_records[record.member.id] = true
bsw@214 116 end
bsw@212 117 end
bsw@212 118 end
bsw@212 119
bsw@212 120
bsw@212 121
bsw@212 122 ui.box_row{ content = function() ui.box_col{ content = function()
bsw@212 123 ui.field.select{
bsw@212 124 label = _"Trustee",
bsw@212 125 name = "trustee_id",
bsw@212 126 foreign_records = records,
bsw@212 127 foreign_id = "id",
bsw@212 128 foreign_name = "name",
bsw@212 129 disabled_records = disabled_records
bsw@212 130 }
bsw@212 131 end } end }
bsw@212 132
bsw@215 133 ui.box_row{ content = function()
bsw@215 134 ui.box_col{ content = _"Please note: Member, interest and supporter counts are calculated periodically, therefore it can take some time until your changes become effective everywhere." }
bsw@215 135 end }
bsw@212 136 ui.box_row{ content = function() ui.box_col{ content = function()
bsw@212 137 ui.submit{ text = _"Save" }
bsw@212 138 end } end }
bsw@212 139 end
bsw@212 140 }
bsw@212 141
bsw@212 142 end }

Impressum / About Us