liquid_feedback_frontend

view app/main/suggestion/show.lua @ 1062:f03fbffc1800

New layout for suggestion details view
author bsw
date Wed Jul 16 21:52:17 2014 +0200 (2014-07-16)
parents cc64a4fc6ab6
children 4188405c2425
line source
1 local suggestion = Suggestion:by_id(param.get_id())
3 -- redirect to initiative if suggestion does not exist anymore
4 if not suggestion then
5 local initiative_id = param.get('initiative_id', atom.integer)
6 if initiative_id then
7 slot.reset_all{except={"notice", "error"}}
8 request.redirect{
9 module='initiative',
10 view='show',
11 id=initiative_id,
12 params = { tab = "suggestions" }
13 }
14 else
15 slot.put_into('error', _"Suggestion does not exist anymore")
16 end
17 return
18 end
20 local initiative = suggestion.initiative
22 initiative:load_everything_for_member_id(app.session.member_id)
23 initiative.issue:load_everything_for_member_id(app.session.member_id)
26 execute.view{ module = "issue", view = "_sidebar_state", params = {
27 initiative = initiative
28 } }
30 execute.view {
31 module = "issue", view = "_sidebar_issue",
32 params = {
33 issue = initiative.issue,
34 highlight_initiative_id = initiative.id
35 }
36 }
38 execute.view {
39 module = "issue", view = "_sidebar_whatcanido",
40 params = { initiative = initiative }
41 }
43 execute.view {
44 module = "issue", view = "_sidebar_members", params = {
45 issue = initiative.issue, initiative = initiative
46 }
47 }
51 execute.view {
52 module = "issue", view = "_head", params = {
53 issue = initiative.issue
54 }
55 }
58 ui.section( function()
59 ui.sectionHead( function()
60 ui.link{
61 module = "initiative", view = "show", id = initiative.id,
62 content = function ()
63 ui.heading {
64 level = 1,
65 content = initiative.display_name
66 }
67 end
68 }
69 ui.heading { level = 2, content = _("Suggestion for improvement #{id}", { id = suggestion.id }) }
70 end )
71 ui.sectionRow( function()
73 ui.heading{ level = 2, content = suggestion.name }
74 if app.session:has_access("authors_pseudonymous") and suggestion.author then
75 util.micro_avatar(suggestion.author)
76 end
77 end )
78 ui.sectionRow( function()
79 ui.container{
80 attr = { class = "suggestion_content wiki" },
81 content = function()
82 slot.put(suggestion:get_content("html"))
83 end
84 }
86 end )
87 end )
89 ui.section( function()
90 ui.sectionHead( function()
91 ui.heading { level = 2, content = _"Collective rating" }
92 end )
93 ui.sectionRow( function()
95 execute.view{
96 module = "suggestion",
97 view = "_list_element",
98 params = {
99 suggestions_selector = Suggestion:new_selector():add_where{ "id = ?", suggestion.id },
100 initiative = suggestion.initiative,
101 show_name = false,
102 show_filter = false
103 }
104 }
105 end)
106 end)
108 if app.session:has_access("all_pseudonymous") then
109 ui.section( function()
110 ui.sectionHead( function()
111 ui.heading { level = 2, content = _"Individual ratings" }
112 end )
113 ui.sectionRow( function()
115 execute.view{
116 module = "opinion",
117 view = "_list",
118 params = {
119 opinions_selector = Opinion:new_selector()
120 :add_where{ "suggestion_id = ?", suggestion.id }
121 :join("member", nil, "member.id = opinion.member_id")
122 :add_order_by("member.id DESC")
123 }
124 }
126 end)
127 end)
128 end

Impressum / About Us