liquid_feedback_frontend

diff app/main/issue/_sidebar_members.lua @ 1045:701a5cf6b067

Imported LiquidFeedback Frontend 3.0 branch
author bsw
date Thu Jul 10 01:19:48 2014 +0200 (2014-07-10)
parents
children aba047e2bac4
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/app/main/issue/_sidebar_members.lua	Thu Jul 10 01:19:48 2014 +0200
     1.3 @@ -0,0 +1,65 @@
     1.4 +local issue = param.get("issue", "table")
     1.5 +local initiative = param.get("initiative", "table")
     1.6 +
     1.7 +if app.session:has_access("all_pseudonymous") then
     1.8 +  ui.sidebar ( "tab-members", function ()
     1.9 +
    1.10 +    local text = _"Interested members"
    1.11 +    if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
    1.12 +      text = _"Voters"
    1.13 +    end
    1.14 +    
    1.15 +    ui.sidebarHead( function()
    1.16 +      ui.heading{
    1.17 +        level = 2, content = text
    1.18 +      }
    1.19 +    end )
    1.20 +    
    1.21 +    local interested_members_selector
    1.22 +    
    1.23 +    if issue.state == "finished_with_winner" or issue.state == "finished_without_winner" then
    1.24 +      if initiative then
    1.25 +        interested_members_selector = Member:new_selector()
    1.26 +          :join("issue", nil, { "issue.id = ?", issue.id })
    1.27 +          :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
    1.28 +          :join("vote", nil, { "vote.member_id = member.id AND vote.initiative_id = ?", initiative.id })
    1.29 +          :add_field("direct_voter.weight", "voter_weight")
    1.30 +          :add_field("vote.grade")
    1.31 +          :add_field("direct_voter.comment", "voter_comment")
    1.32 +      else
    1.33 +        interested_members_selector = Member:new_selector()
    1.34 +          :join("issue", nil, { "issue.id = ?", issue.id })
    1.35 +          :join("direct_voter", nil, { "direct_voter.issue_id = ? AND direct_voter.member_id = member.id", issue.id })
    1.36 +          :add_field("direct_voter.weight", "voter_weight")
    1.37 +          :add_field("direct_voter.comment", "voter_comment")
    1.38 +      end
    1.39 +    else
    1.40 +      interested_members_selector= issue:get_reference_selector("interested_members_snapshot")
    1.41 +        :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id")
    1.42 +        :add_field("direct_interest_snapshot.weight")
    1.43 +        :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event")
    1.44 +        :limit(25)
    1.45 +
    1.46 +      if initiative then
    1.47 +        interested_members_selector:left_join("direct_supporter_snapshot", nil, { "direct_supporter_snapshot.initiative_id = ? AND direct_interest_snapshot.issue_id = direct_supporter_snapshot.issue_id AND direct_supporter_snapshot.member_id = direct_interest_snapshot.member_id AND direct_supporter_snapshot.event = issue.latest_snapshot_event", initiative.id })
    1.48 +        interested_members_selector:add_field("direct_supporter_snapshot.member_id NOTNULL", "supporter")
    1.49 +        interested_members_selector:add_field("satisfied", "supporter_satisfied")
    1.50 +      end
    1.51 +    end
    1.52 +    
    1.53 +    execute.view{
    1.54 +      module = "member",
    1.55 +      view = "_list",
    1.56 +      params = {
    1.57 +        issue = issue,
    1.58 +        initiative = initiative,
    1.59 +        members_selector = interested_members_selector,
    1.60 +        no_filter = true, no_paginate = true,
    1.61 +        member_class = "sidebarRow sidebarRowNarrow",
    1.62 +        for_votes = issue.state == "finished_with_winner" or issue.state == "finished_without_winner"
    1.63 +      }
    1.64 +    }
    1.65 +
    1.66 +  end )
    1.67 +  
    1.68 +end

Impressum / About Us