liquid_feedback_frontend

annotate model/initiative.lua @ 0:3bfb2fcf7ab9

Version alpha1
author bsw/jbe
date Wed Nov 18 12:00:00 2009 +0100 (2009-11-18)
parents
children 5c601807d397
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/jbe@0 94 function Initiative:search(search_string)
bsw/jbe@0 95 return self:new_selector()
bsw/jbe@0 96 :add_where{ '"initiative"."name" ILIKE ?', "%" .. search_string:gsub("%%", "") .. "%" }
bsw/jbe@0 97 :exec()
bsw/jbe@0 98 end
bsw/jbe@0 99
bsw/jbe@0 100 function Initiative.object_get:current_draft()
bsw/jbe@0 101 return Draft:new_selector()
bsw/jbe@0 102 :add_where{ '"initiative_id" = ?', self.id }
bsw/jbe@0 103 :add_order_by('"id" DESC')
bsw/jbe@0 104 :single_object_mode()
bsw/jbe@0 105 :exec()
bsw/jbe@0 106 end
bsw/jbe@0 107
bsw/jbe@0 108 function Initiative.object_get:shortened_name()
bsw/jbe@0 109 local name = self.name
bsw/jbe@0 110 if #name > 100 then
bsw/jbe@0 111 name = name:sub(1,100) .. "..."
bsw/jbe@0 112 end
bsw/jbe@0 113 return name
bsw/jbe@0 114 end

Impressum / About Us