liquid_feedback_frontend

annotate model/initiative.lua @ 4:80c215dbf076

Version alpha5

Many optical changes and improved usability

Support for different wiki-formatting-engines

Help system
author bsw/jbe
date Thu Dec 10 12:00:00 2009 +0100 (2009-12-10)
parents 768faea1096d
children 8d91bccab0bf
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 }
bsw/jbe@0 30
bsw/jbe@0 31 Initiative:add_reference{
bsw/jbe@0 32 mode = '1m',
bsw/jbe@0 33 to = "Initiator",
bsw/jbe@0 34 this_key = 'id',
bsw/jbe@0 35 that_key = 'initiative_id',
bsw/jbe@0 36 ref = 'initiators',
bsw/jbe@0 37 back_ref = 'initiative',
bsw/jbe@0 38 default_order = '"id"'
bsw/jbe@0 39 }
bsw/jbe@0 40
bsw/jbe@0 41 Initiative:add_reference{
bsw/jbe@0 42 mode = '1m',
bsw/jbe@0 43 to = "Supporter",
bsw/jbe@0 44 this_key = 'id',
bsw/jbe@0 45 that_key = 'initiative_id',
bsw/jbe@0 46 ref = 'supporters',
bsw/jbe@0 47 back_ref = 'initiative',
bsw/jbe@0 48 default_order = '"id"'
bsw/jbe@0 49 }
bsw/jbe@0 50
bsw/jbe@0 51 Initiative:add_reference{
bsw/jbe@0 52 mode = '1m',
bsw/jbe@0 53 to = "Opinion",
bsw/jbe@0 54 this_key = 'id',
bsw/jbe@0 55 that_key = 'initiative_id',
bsw/jbe@0 56 ref = 'opinions',
bsw/jbe@0 57 back_ref = 'initiative',
bsw/jbe@0 58 default_order = '"id"'
bsw/jbe@0 59 }
bsw/jbe@0 60
bsw/jbe@0 61 Initiative:add_reference{
bsw/jbe@0 62 mode = '1m',
bsw/jbe@0 63 to = "Vote",
bsw/jbe@0 64 this_key = 'id',
bsw/jbe@0 65 that_key = 'initiative_id',
bsw/jbe@0 66 ref = 'votes',
bsw/jbe@0 67 back_ref = 'initiative',
bsw/jbe@0 68 default_order = '"member_id"'
bsw/jbe@0 69 }
bsw/jbe@0 70
bsw/jbe@0 71 Initiative:add_reference{
bsw/jbe@0 72 mode = 'mm',
bsw/jbe@0 73 to = "Member",
bsw/jbe@0 74 this_key = 'id',
bsw/jbe@0 75 that_key = 'id',
bsw/jbe@0 76 connected_by_table = '"initiator"',
bsw/jbe@0 77 connected_by_this_key = 'initiative_id',
bsw/jbe@0 78 connected_by_that_key = 'member_id',
bsw/jbe@0 79 ref = 'initiating_members'
bsw/jbe@0 80 }
bsw/jbe@0 81
bsw/jbe@0 82 Initiative:add_reference{
bsw/jbe@0 83 mode = 'mm',
bsw/jbe@0 84 to = "Member",
bsw/jbe@0 85 this_key = 'id',
bsw/jbe@0 86 that_key = 'id',
bsw/jbe@0 87 connected_by_table = '"supporter"',
bsw/jbe@0 88 connected_by_this_key = 'initiative_id',
bsw/jbe@0 89 connected_by_that_key = 'member_id',
bsw/jbe@0 90 ref = 'supporting_members'
bsw/jbe@0 91 }
bsw/jbe@0 92
bsw@3 93 Initiative:add_reference{
bsw@3 94 mode = 'mm',
bsw@3 95 to = "Member",
bsw@3 96 this_key = 'id',
bsw@3 97 that_key = 'id',
bsw@3 98 connected_by_table = 'direct_supporter_snapshot',
bsw@3 99 connected_by_this_key = 'initiative_id',
bsw@3 100 connected_by_that_key = 'member_id',
bsw@3 101 ref = 'supporting_members_snapshot'
bsw@3 102 }
bsw@3 103
bsw@2 104 function Initiative:get_search_selector(search_string)
bsw/jbe@0 105 return self:new_selector()
bsw@2 106 :add_field( {'"highlight"("initiative"."name", ?)', search_string }, "name_highlighted")
bsw@2 107 :add_where{ '"initiative"."text_search_data" @@ "text_search_query"(?)', search_string }
bsw/jbe@0 108 end
bsw/jbe@0 109
bsw@2 110 function Member:get_search_selector(search_string)
bsw@2 111 return self:new_selector()
bsw@2 112 :add_where("active")
bsw@2 113 end
bsw@2 114
bsw@2 115
bsw/jbe@0 116 function Initiative.object_get:current_draft()
bsw/jbe@0 117 return Draft:new_selector()
bsw/jbe@0 118 :add_where{ '"initiative_id" = ?', self.id }
bsw/jbe@0 119 :add_order_by('"id" DESC')
bsw/jbe@0 120 :single_object_mode()
bsw/jbe@0 121 :exec()
bsw/jbe@0 122 end
bsw/jbe@0 123
bsw/jbe@0 124 function Initiative.object_get:shortened_name()
bsw/jbe@0 125 local name = self.name
bsw/jbe@0 126 if #name > 100 then
bsw/jbe@0 127 name = name:sub(1,100) .. "..."
bsw/jbe@0 128 end
bsw/jbe@0 129 return name
bsw/jbe@0 130 end

Impressum / About Us