liquid_feedback_frontend
diff app/main/member/_show.lua @ 558:18e8de7a2b6a
Show notifications on start page as ulli list with links instead of tabs
| author | bsw | 
|---|---|
| date | Tue Jun 19 21:20:46 2012 +0200 (2012-06-19) | 
| parents | 305329da1c75 | 
| children | 487cca534fbe | 
   line diff
1.1 --- a/app/main/member/_show.lua Tue Jun 19 18:45:45 2012 +0200 1.2 +++ b/app/main/member/_show.lua Tue Jun 19 21:20:46 2012 +0200 1.3 @@ -1,136 +1,21 @@ 1.4 -local show_as_homepage = param.get("show_as_homepage", atom.boolean) 1.5 - 1.6 local member = param.get("member", "table") 1.7 1.8 local tabs = { 1.9 module = "member", 1.10 view = "show_tab", 1.11 static_params = { 1.12 - member_id = member.id, 1.13 - show_as_homepage = show_as_homepage 1.14 + member_id = member.id 1.15 } 1.16 } 1.17 1.18 -if show_as_homepage and app.session.member_id == member.id then 1.19 - 1.20 - if app.session.member.notify_email_unconfirmed then 1.21 - tabs[#tabs+1] = { 1.22 - class = "yellow", 1.23 - name = "email_unconfirmed", 1.24 - label = _"Email unconfirmed", 1.25 - module = "member", 1.26 - view = "_email_unconfirmed", 1.27 - params = {} 1.28 - } 1.29 - end 1.30 - 1.31 - if app.session.member.notify_level == nil then 1.32 - tabs[#tabs+1] = { 1.33 - class = "yellow", 1.34 - name = "notify_level_not_set", 1.35 - label = _"Notifications", 1.36 - module = "member", 1.37 - view = "_notify_level_not_set" 1.38 - } 1.39 - end 1.40 - 1.41 - local broken_delegations = Delegation:new_selector() 1.42 - :join("issue", nil, "issue.id = delegation.issue_id AND issue.closed ISNULL") 1.43 - :join("member", nil, "delegation.trustee_id = member.id") 1.44 - :add_where{"delegation.truster_id = ?", member.id} 1.45 - :add_where{"member.active = 'f' OR (member.last_activity IS NULL OR age(member.last_activity) > ?::interval)", config.delegation_warning_time } 1.46 - 1.47 - if broken_delegations:count() > 0 then 1.48 - tabs[#tabs+1] = { 1.49 - class = "red", 1.50 - name = "broken_delegations", 1.51 - label = _"Delegation problems" .. " (" .. tostring(broken_delegations:count()) .. ")", 1.52 - icon = { static = "icons/16/table_go.png" }, 1.53 - module = "delegation", 1.54 - view = "_list", 1.55 - params = { delegations_selector = broken_delegations, outgoing = true }, 1.56 - } 1.57 - end 1.58 - 1.59 - local selector = Issue:new_selector() 1.60 - :join("area", nil, "area.id = issue.area_id") 1.61 - :join("privilege", nil, { "privilege.unit_id = area.unit_id AND privilege.member_id = ? AND privilege.voting_right", app.session.member_id }) 1.62 - :left_join("direct_voter", nil, { "direct_voter.issue_id = issue.id AND direct_voter.member_id = ?", app.session.member.id }) 1.63 - :left_join("interest", nil, { "interest.issue_id = issue.id AND interest.member_id = ?", app.session.member.id }) 1.64 - :left_join("membership", nil, { "membership.area_id = area.id AND membership.member_id = ? ", app.session.member.id }) 1.65 - :add_where{ "direct_voter.member_id ISNULL" } 1.66 - :add_where{ "interest.member_id NOTNULL OR membership.member_id NOTNULL" } 1.67 - :add_where{ "issue.fully_frozen NOTNULL" } 1.68 - :add_where{ "issue.closed ISNULL" } 1.69 - :add_order_by{ "issue.fully_frozen + issue.voting_time ASC" } 1.70 - 1.71 - local count = selector:count() 1.72 - if count > 0 then 1.73 - tabs[#tabs+1] = { 1.74 - class = "yellow", 1.75 - name = "not_voted_issues", 1.76 - label = _"Now in voting" .. " (" .. tostring(count) .. ")", 1.77 - icon = { static = "icons/16/email_open.png" }, 1.78 - module = "issue", 1.79 - view = "_list", 1.80 - params = { 1.81 - issues_selector = selector, 1.82 - no_filter = true 1.83 - } 1.84 - } 1.85 - end 1.86 - 1.87 - local initiator_invites_selector = Initiative:new_selector() 1.88 - :join("issue", "_issue_state", "_issue_state.id = initiative.issue_id") 1.89 - :join("initiator", nil, { "initiator.initiative_id = initiative.id AND initiator.member_id = ? AND initiator.accepted ISNULL", app.session.member.id }) 1.90 - :add_where("_issue_state.closed ISNULL AND _issue_state.half_frozen ISNULL") 1.91 - 1.92 - if initiator_invites_selector:count() > 0 then 1.93 - tabs[#tabs+1] = { 1.94 - class = "yellow", 1.95 - name = "initiator_invites", 1.96 - label = _"Initiator invites" .. " (" .. tostring(initiator_invites_selector:count()) .. ")", 1.97 - icon = { static = "icons/16/user_add.png" }, 1.98 - module = "index", 1.99 - view = "_initiator_invites", 1.100 - params = { 1.101 - initiatives_selector = initiator_invites_selector 1.102 - } 1.103 - } 1.104 - end 1.105 - 1.106 - local updated_drafts_selector = Initiative:new_selector() 1.107 - :join("issue", "_issue_state", "_issue_state.id = initiative.issue_id AND _issue_state.closed ISNULL AND _issue_state.fully_frozen ISNULL") 1.108 - :join("current_draft", "_current_draft", "_current_draft.initiative_id = initiative.id") 1.109 - :join("supporter", "supporter", { "supporter.member_id = ? AND supporter.initiative_id = initiative.id AND supporter.draft_id < _current_draft.id", app.session.member_id }) 1.110 - :add_where("initiative.revoked ISNULL") 1.111 - 1.112 - if updated_drafts_selector:count() > 0 then 1.113 - tabs[#tabs+1] = { 1.114 - class = "yellow", 1.115 - name = "updated_drafts", 1.116 - label = _"Updated drafts" .. " (" .. tostring(updated_drafts_selector:count()) .. ")", 1.117 - icon = { static = "icons/16/script.png" }, 1.118 - module = "index", 1.119 - view = "_updated_drafts", 1.120 - params = { 1.121 - initiatives_selector = updated_drafts_selector 1.122 - } 1.123 - } 1.124 - end 1.125 -end 1.126 - 1.127 -if not show_as_homepage then 1.128 - tabs[#tabs+1] = { 1.129 - name = "profile", 1.130 - label = _"Profile", 1.131 - icon = { static = "icons/16/application_form.png" }, 1.132 - module = "member", 1.133 - view = "_profile", 1.134 - params = { member = member }, 1.135 - } 1.136 -end 1.137 - 1.138 +tabs[#tabs+1] = { 1.139 + name = "profile", 1.140 + label = _"Profile", 1.141 + icon = { static = "icons/16/application_form.png" }, 1.142 + module = "member", 1.143 + view = "_profile", 1.144 + params = { member = member }, 1.145 +} 1.146 1.147 local areas_selector = member:get_reference_selector("areas") 1.148 tabs[#tabs+1] = { 1.149 @@ -139,26 +24,16 @@ 1.150 icon = { static = "icons/16/package.png" }, 1.151 module = "member", 1.152 view = "_area_list", 1.153 - params = { areas_selector = areas_selector, member = member, for_member = not show_as_homepage }, 1.154 + params = { areas_selector = areas_selector, member = member, for_member = true }, 1.155 } 1.156 1.157 -if show_as_homepage then 1.158 - tabs[#tabs+1] = { 1.159 - name = "timeline", 1.160 - label = _"Latest events", 1.161 - module = "member", 1.162 - view = "_event_list", 1.163 - params = { } 1.164 - } 1.165 -else 1.166 - tabs[#tabs+1] = { 1.167 - name = "timeline", 1.168 - label = _"Events", 1.169 - module = "event", 1.170 - view = "_list", 1.171 - params = { for_member = member } 1.172 - } 1.173 -end 1.174 +tabs[#tabs+1] = { 1.175 + name = "timeline", 1.176 + label = _"Events", 1.177 + module = "event", 1.178 + view = "_list", 1.179 + params = { for_member = member } 1.180 +} 1.181 1.182 tabs[#tabs+1] = { 1.183 name = "open", 1.184 @@ -166,11 +41,11 @@ 1.185 module = "issue", 1.186 view = "_list", 1.187 link_params = { 1.188 - filter_interest = not show_as_homepage and "issue" or nil, 1.189 + filter_interest = "issue", 1.190 }, 1.191 params = { 1.192 for_state = "open", 1.193 - for_member = not show_as_homepage and member or nil, 1.194 + for_member = member, 1.195 issues_selector = Issue:new_selector() 1.196 :add_where("issue.closed ISNULL") 1.197 :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()") 1.198 @@ -183,11 +58,11 @@ 1.199 module = "issue", 1.200 view = "_list", 1.201 link_params = { 1.202 - filter_interest = not show_as_homepage and "issue" or nil, 1.203 + filter_interest = "issue", 1.204 }, 1.205 params = { 1.206 for_state = "closed", 1.207 - for_member = not show_as_homepage and member or nil, 1.208 + for_member = member, 1.209 issues_selector = Issue:new_selector() 1.210 :add_where("issue.closed NOTNULL") 1.211 :add_order_by("issue.closed DESC") 1.212 @@ -195,52 +70,39 @@ 1.213 } 1.214 } 1.215 1.216 -if show_as_homepage then 1.217 - tabs[#tabs+1] = { 1.218 - name = "members", 1.219 - label = _"Members", 1.220 - module = 'member', 1.221 - view = '_list', 1.222 - params = { members_selector = Member:new_selector() } 1.223 - } 1.224 -end 1.225 1.226 - 1.227 +local outgoing_delegations_selector = member:get_reference_selector("outgoing_delegations") 1.228 + :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id") 1.229 + :add_where("_member_showtab_issue.closed ISNULL") 1.230 +tabs[#tabs+1] = { 1.231 + name = "outgoing_delegations", 1.232 + label = _"Outgoing delegations" .. " (" .. tostring(outgoing_delegations_selector:count()) .. ")", 1.233 + icon = { static = "icons/16/table_go.png" }, 1.234 + module = "delegation", 1.235 + view = "_list", 1.236 + params = { delegations_selector = outgoing_delegations_selector, outgoing = true }, 1.237 +} 1.238 1.239 -if not show_as_homepage then 1.240 - local outgoing_delegations_selector = member:get_reference_selector("outgoing_delegations") 1.241 - :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id") 1.242 - :add_where("_member_showtab_issue.closed ISNULL") 1.243 - tabs[#tabs+1] = { 1.244 - name = "outgoing_delegations", 1.245 - label = _"Outgoing delegations" .. " (" .. tostring(outgoing_delegations_selector:count()) .. ")", 1.246 - icon = { static = "icons/16/table_go.png" }, 1.247 - module = "delegation", 1.248 - view = "_list", 1.249 - params = { delegations_selector = outgoing_delegations_selector, outgoing = true }, 1.250 - } 1.251 +local incoming_delegations_selector = member:get_reference_selector("incoming_delegations") 1.252 + :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id") 1.253 + :add_where("_member_showtab_issue.closed ISNULL") 1.254 +tabs[#tabs+1] = { 1.255 + name = "incoming_delegations", 1.256 + label = _"Incoming delegations" .. " (" .. tostring(incoming_delegations_selector:count()) .. ")", 1.257 + icon = { static = "icons/16/table_go.png" }, 1.258 + module = "delegation", 1.259 + view = "_list", 1.260 + params = { delegations_selector = incoming_delegations_selector, incoming = true }, 1.261 +} 1.262 1.263 - local incoming_delegations_selector = member:get_reference_selector("incoming_delegations") 1.264 - :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id") 1.265 - :add_where("_member_showtab_issue.closed ISNULL") 1.266 - tabs[#tabs+1] = { 1.267 - name = "incoming_delegations", 1.268 - label = _"Incoming delegations" .. " (" .. tostring(incoming_delegations_selector:count()) .. ")", 1.269 - icon = { static = "icons/16/table_go.png" }, 1.270 - module = "delegation", 1.271 - view = "_list", 1.272 - params = { delegations_selector = incoming_delegations_selector, incoming = true }, 1.273 - } 1.274 - 1.275 - local contacts_selector = member:get_reference_selector("saved_members"):add_where("public") 1.276 - tabs[#tabs+1] = { 1.277 - name = "contacts", 1.278 - label = _"Contacts" .. " (" .. tostring(contacts_selector:count()) .. ")", 1.279 - icon = { static = "icons/16/book_edit.png" }, 1.280 - module = "member", 1.281 - view = "_list", 1.282 - params = { members_selector = contacts_selector }, 1.283 - } 1.284 -end 1.285 +local contacts_selector = member:get_reference_selector("saved_members"):add_where("public") 1.286 +tabs[#tabs+1] = { 1.287 + name = "contacts", 1.288 + label = _"Contacts" .. " (" .. tostring(contacts_selector:count()) .. ")", 1.289 + icon = { static = "icons/16/book_edit.png" }, 1.290 + module = "member", 1.291 + view = "_list", 1.292 + params = { members_selector = contacts_selector }, 1.293 +} 1.294 1.295 ui.tabs(tabs)