liquid_feedback_frontend
view app/main/member/_area_list.lua @ 426:87dd4f128206
Add support to ignore member for events
author | bsw |
---|---|
date | Sat Mar 10 18:26:50 2012 +0100 (2012-03-10) |
parents | a31fce559540 |
children | 2cdbfb06a62b |
line source
1 local member = param.get("member", "table")
2 local units = member.units_with_voting_right
4 for i, unit in ipairs(units) do
5 local trustee_member = Member:new_selector()
6 :join("delegation", nil, { "delegation.scope = 'unit' AND delegation.unit_id = ? AND delegation.trustee_id = member.id AND delegation.truster_id = ?", unit.id, member.id })
7 :optional_object_mode()
8 :exec()
10 local areas_selector = Area:new_selector()
11 :join("membership", nil, { "membership.area_id = area.id AND membership.member_id = ?", member.id })
12 :add_where{ "area.unit_id = ?", unit.id }
13 :add_where{ "area.active" }
14 :add_order_by("area.member_weight DESC")
16 local area_count = areas_selector:count()
18 ui.container{ attr = { class = "member_area_list" }, content = function()
19 ui.container{ attr = { class = "unit_head" }, content = function()
20 ui.link{
21 text = unit.name,
22 module = "unit", view = "show", id = unit.id
23 }
25 if trustee_member then
26 local text = _("Unit delegated to '#{name}'", { name = trustee_member.name })
27 ui.image{
28 attr = { class = "delegation_arrow", alt = text, title = text },
29 static = "delegation_arrow_24_horizontal.png"
30 }
31 execute.view{
32 module = "member_image",
33 view = "_show",
34 params = {
35 member = trustee_member,
36 image_type = "avatar",
37 show_dummy = true,
38 class = "micro_avatar",
39 popup_text = text
40 }
41 }
42 end
43 end }
45 if area_count > 0 then
46 execute.view{
47 module = "area", view = "_list",
48 params = { areas_selector = areas_selector, hide_membership = true }
49 }
50 else
51 ui.container{ attr = { class = "voting_priv_info" }, content = _"You have voting privileges for this unit, but you are not member of any of its areas." }
52 end
53 local max_area_count = Area:new_selector()
54 :add_where{ "area.unit_id = ?", unit.id }
55 :add_where{ "area.active" }
56 :count()
57 local more_area_count = max_area_count - area_count
58 local delegated_count = Area:new_selector()
59 :add_where{ "area.unit_id = ?", unit.id }
60 :add_where{ "area.active" }
61 :left_join("membership", nil, { "membership.area_id = area.id AND membership.member_id = ?", member.id } )
62 :add_where{ "membership.member_id ISNULL" }
63 :join("delegation", nil, { "delegation.area_id = area.id AND delegation.truster_id = ?", member.id } )
64 :count()
65 if more_area_count > 0 then
66 slot.put("<br />")
67 ui.container{ content = function()
68 ui.link{ content = _("#{count} more areas in this unit, #{delegated_count} of them delegated", { count = more_area_count, delegated_count = delegated_count }), module = "unit", view = "show", id = unit.id }
69 end }
70 end
71 end }
73 end