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()