liquid_feedback_frontend
annotate model/initiative.lua @ 2:5c601807d397
Version alpha3
Dark green part of issue supporter bargraph represents all satisfied supporters, regardless of having seen the latest draft
Wiki formatting for drafts
Showing differences between two drafts of the same initiative
Display of outgoing delegation chains
Many other improvements
Dark green part of issue supporter bargraph represents all satisfied supporters, regardless of having seen the latest draft
Wiki formatting for drafts
Showing differences between two drafts of the same initiative
Display of outgoing delegation chains
Many other improvements
author | bsw |
---|---|
date | Mon Nov 23 12:00:00 2009 +0100 (2009-11-23) |
parents | 3bfb2fcf7ab9 |
children | 768faea1096d |
rev | line source |
---|---|
bsw/jbe@0 | 1 Initiative = mondelefant.new_class() |
bsw/jbe@0 | 2 Initiative.table = 'initiative' |
bsw/jbe@0 | 3 |
bsw/jbe@0 | 4 Initiative:add_reference{ |
bsw/jbe@0 | 5 mode = 'm1', |
bsw/jbe@0 | 6 to = "Issue", |
bsw/jbe@0 | 7 this_key = 'issue_id', |
bsw/jbe@0 | 8 that_key = 'id', |
bsw/jbe@0 | 9 ref = 'issue', |
bsw/jbe@0 | 10 } |
bsw/jbe@0 | 11 |
bsw/jbe@0 | 12 Initiative:add_reference{ |
bsw/jbe@0 | 13 mode = '1m', |
bsw/jbe@0 | 14 to = "Draft", |
bsw/jbe@0 | 15 this_key = 'id', |
bsw/jbe@0 | 16 that_key = 'initiative_id', |
bsw/jbe@0 | 17 ref = 'drafts', |
bsw/jbe@0 | 18 back_ref = 'initiative', |
bsw/jbe@0 | 19 default_order = '"id"' |
bsw/jbe@0 | 20 } |
bsw/jbe@0 | 21 |
bsw/jbe@0 | 22 Initiative:add_reference{ |
bsw/jbe@0 | 23 mode = '1m', |
bsw/jbe@0 | 24 to = "Suggestion", |
bsw/jbe@0 | 25 this_key = 'id', |
bsw/jbe@0 | 26 that_key = 'initiative_id', |
bsw/jbe@0 | 27 ref = 'suggestions', |
bsw/jbe@0 | 28 back_ref = 'initiative', |
bsw/jbe@0 | 29 default_order = '"id"' |
bsw/jbe@0 | 30 } |
bsw/jbe@0 | 31 |
bsw/jbe@0 | 32 Initiative:add_reference{ |
bsw/jbe@0 | 33 mode = '1m', |
bsw/jbe@0 | 34 to = "Initiator", |
bsw/jbe@0 | 35 this_key = 'id', |
bsw/jbe@0 | 36 that_key = 'initiative_id', |
bsw/jbe@0 | 37 ref = 'initiators', |
bsw/jbe@0 | 38 back_ref = 'initiative', |
bsw/jbe@0 | 39 default_order = '"id"' |
bsw/jbe@0 | 40 } |
bsw/jbe@0 | 41 |
bsw/jbe@0 | 42 Initiative:add_reference{ |
bsw/jbe@0 | 43 mode = '1m', |
bsw/jbe@0 | 44 to = "Supporter", |
bsw/jbe@0 | 45 this_key = 'id', |
bsw/jbe@0 | 46 that_key = 'initiative_id', |
bsw/jbe@0 | 47 ref = 'supporters', |
bsw/jbe@0 | 48 back_ref = 'initiative', |
bsw/jbe@0 | 49 default_order = '"id"' |
bsw/jbe@0 | 50 } |
bsw/jbe@0 | 51 |
bsw/jbe@0 | 52 Initiative:add_reference{ |
bsw/jbe@0 | 53 mode = '1m', |
bsw/jbe@0 | 54 to = "Opinion", |
bsw/jbe@0 | 55 this_key = 'id', |
bsw/jbe@0 | 56 that_key = 'initiative_id', |
bsw/jbe@0 | 57 ref = 'opinions', |
bsw/jbe@0 | 58 back_ref = 'initiative', |
bsw/jbe@0 | 59 default_order = '"id"' |
bsw/jbe@0 | 60 } |
bsw/jbe@0 | 61 |
bsw/jbe@0 | 62 Initiative:add_reference{ |
bsw/jbe@0 | 63 mode = '1m', |
bsw/jbe@0 | 64 to = "Vote", |
bsw/jbe@0 | 65 this_key = 'id', |
bsw/jbe@0 | 66 that_key = 'initiative_id', |
bsw/jbe@0 | 67 ref = 'votes', |
bsw/jbe@0 | 68 back_ref = 'initiative', |
bsw/jbe@0 | 69 default_order = '"member_id"' |
bsw/jbe@0 | 70 } |
bsw/jbe@0 | 71 |
bsw/jbe@0 | 72 Initiative:add_reference{ |
bsw/jbe@0 | 73 mode = 'mm', |
bsw/jbe@0 | 74 to = "Member", |
bsw/jbe@0 | 75 this_key = 'id', |
bsw/jbe@0 | 76 that_key = 'id', |
bsw/jbe@0 | 77 connected_by_table = '"initiator"', |
bsw/jbe@0 | 78 connected_by_this_key = 'initiative_id', |
bsw/jbe@0 | 79 connected_by_that_key = 'member_id', |
bsw/jbe@0 | 80 ref = 'initiating_members' |
bsw/jbe@0 | 81 } |
bsw/jbe@0 | 82 |
bsw/jbe@0 | 83 Initiative:add_reference{ |
bsw/jbe@0 | 84 mode = 'mm', |
bsw/jbe@0 | 85 to = "Member", |
bsw/jbe@0 | 86 this_key = 'id', |
bsw/jbe@0 | 87 that_key = 'id', |
bsw/jbe@0 | 88 connected_by_table = '"supporter"', |
bsw/jbe@0 | 89 connected_by_this_key = 'initiative_id', |
bsw/jbe@0 | 90 connected_by_that_key = 'member_id', |
bsw/jbe@0 | 91 ref = 'supporting_members' |
bsw/jbe@0 | 92 } |
bsw/jbe@0 | 93 |
bsw@2 | 94 function Initiative:get_search_selector(search_string) |
bsw/jbe@0 | 95 return self:new_selector() |
bsw@2 | 96 :add_field( {'"highlight"("initiative"."name", ?)', search_string }, "name_highlighted") |
bsw@2 | 97 :add_where{ '"initiative"."text_search_data" @@ "text_search_query"(?)', search_string } |
bsw/jbe@0 | 98 end |
bsw/jbe@0 | 99 |
bsw@2 | 100 function Member:get_search_selector(search_string) |
bsw@2 | 101 return self:new_selector() |
bsw@2 | 102 :add_where("active") |
bsw@2 | 103 end |
bsw@2 | 104 |
bsw@2 | 105 |
bsw/jbe@0 | 106 function Initiative.object_get:current_draft() |
bsw/jbe@0 | 107 return Draft:new_selector() |
bsw/jbe@0 | 108 :add_where{ '"initiative_id" = ?', self.id } |
bsw/jbe@0 | 109 :add_order_by('"id" DESC') |
bsw/jbe@0 | 110 :single_object_mode() |
bsw/jbe@0 | 111 :exec() |
bsw/jbe@0 | 112 end |
bsw/jbe@0 | 113 |
bsw/jbe@0 | 114 function Initiative.object_get:shortened_name() |
bsw/jbe@0 | 115 local name = self.name |
bsw/jbe@0 | 116 if #name > 100 then |
bsw/jbe@0 | 117 name = name:sub(1,100) .. "..." |
bsw/jbe@0 | 118 end |
bsw/jbe@0 | 119 return name |
bsw/jbe@0 | 120 end |