liquid_feedback_frontend

diff app/main/initiative/_list.lua @ 51:0849be391140

Public read access; Read-only API for initiatives; Prepared integration of OpenID
author bsw
date Sun Apr 04 22:05:11 2010 +0200 (2010-04-04)
parents 81586ea68d57
children 4f39f0a0d5b5
line diff
     1.1 --- a/app/main/initiative/_list.lua	Wed Mar 31 17:50:32 2010 +0200
     1.2 +++ b/app/main/initiative/_list.lua	Sun Apr 04 22:05:11 2010 +0200
     1.3 @@ -3,14 +3,19 @@
     1.4  local issue = param.get("issue", "table")
     1.5  
     1.6  local initiatives_selector = param.get("initiatives_selector", "table")
     1.7 +
     1.8  initiatives_selector
     1.9    :join("issue", nil, "issue.id = initiative.issue_id")
    1.10 -  :left_join("initiator", "_initiator", { "_initiator.initiative_id = initiative.id AND _initiator.member_id = ?", app.session.member.id} )
    1.11 -  :left_join("supporter", "_supporter", { "_supporter.initiative_id = initiative.id AND _supporter.member_id = ?", app.session.member.id} )
    1.12  
    1.13 -  :add_field("(_initiator.member_id NOTNULL)", "is_initiator")
    1.14 -  :add_field({"(_supporter.member_id NOTNULL) AND NOT EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", app.session.member.id }, "is_supporter")
    1.15 -  :add_field({"EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", app.session.member.id }, "is_potential_supporter")
    1.16 +if app.session.member_id then
    1.17 +  initiatives_selector
    1.18 +    :left_join("initiator", "_initiator", { "_initiator.initiative_id = initiative.id AND _initiator.member_id = ?", app.session.member.id} )
    1.19 +    :left_join("supporter", "_supporter", { "_supporter.initiative_id = initiative.id AND _supporter.member_id = ?", app.session.member.id} )
    1.20 +  
    1.21 +    :add_field("(_initiator.member_id NOTNULL)", "is_initiator")
    1.22 +    :add_field({"(_supporter.member_id NOTNULL) AND NOT EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", app.session.member.id }, "is_supporter")
    1.23 +    :add_field({"EXISTS(SELECT 1 FROM opinion WHERE opinion.initiative_id = initiative.id AND opinion.member_id = ? AND ((opinion.degree = 2 AND NOT fulfilled) OR (opinion.degree = -2 AND fulfilled)))", app.session.member.id }, "is_potential_supporter")
    1.24 +end
    1.25  
    1.26  local initiatives_count = initiatives_selector:count()
    1.27  
    1.28 @@ -208,7 +213,7 @@
    1.29      }
    1.30    end
    1.31  
    1.32 -  if not (issue.fully_frozen or issue.closed) then
    1.33 +  if app.session.member_id and not (issue.fully_frozen or issue.closed) then
    1.34      slot.put(" ")
    1.35      ui.link{
    1.36        content = function()

Impressum / About Us