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)

Impressum / About Us