annotate model/supporter.lua @ 949:e616d8f16f14
Force JavaScript test before voting; Removed unneccessary "preview2" mechanism in voting script
 | author | jbe | 
 | date | Thu Nov 08 20:55:54 2012 +0100 (2012-11-08) | 
 | parents | afd9f769c7ae | 
 | children |  | 
 
 | rev | line source | 
| bsw/jbe@0 | 1 Supporter = mondelefant.new_class() | 
| bsw/jbe@0 | 2 Supporter.table = 'supporter' | 
| bsw/jbe@0 | 3 Supporter.primary_key = { "initiative_id", "member_id" } | 
| bsw/jbe@0 | 4 | 
| bsw/jbe@0 | 5 Supporter:add_reference{ | 
| bsw/jbe@0 | 6   mode          = 'm1', | 
| bsw/jbe@0 | 7   to            = "Initiative", | 
| bsw/jbe@0 | 8   this_key      = 'initiative_id', | 
| bsw/jbe@0 | 9   that_key      = 'id', | 
| bsw/jbe@0 | 10   ref           = 'initiative', | 
| bsw/jbe@0 | 11 } | 
| bsw/jbe@0 | 12 | 
| bsw/jbe@0 | 13 Supporter:add_reference{ | 
| bsw/jbe@0 | 14   mode          = 'm1', | 
| bsw/jbe@0 | 15   to            = "Member", | 
| bsw/jbe@0 | 16   this_key      = 'member_id', | 
| bsw/jbe@0 | 17   that_key      = 'id', | 
| bsw/jbe@0 | 18   ref           = 'member', | 
| bsw/jbe@0 | 19 } | 
| bsw/jbe@0 | 20 | 
| bsw/jbe@0 | 21 function Supporter:by_pk(initiative_id, member_id) | 
| bsw/jbe@0 | 22   return self:new_selector() | 
| bsw/jbe@0 | 23     :add_where{ "initiative_id = ?", initiative_id } | 
| bsw/jbe@0 | 24     :add_where{ "member_id = ?", member_id } | 
| bsw/jbe@0 | 25     :optional_object_mode() | 
| bsw/jbe@0 | 26     :exec() | 
| bsw/jbe@0 | 27 end | 
| bsw/jbe@5 | 28 | 
| bsw/jbe@5 | 29 function Supporter.object:has_critical_opinion() | 
| bsw/jbe@5 | 30   return Opinion:new_selector() | 
| bsw/jbe@5 | 31     :add_where{ "initiative_id = ?", self.initiative_id } | 
| bsw/jbe@5 | 32     :add_where{ "member_id = ?", self.member_id } | 
| bsw/jbe@5 | 33     :add_where("(degree = -2 AND fulfilled) OR (degree = 2 AND NOT fulfilled)") | 
| bsw/jbe@5 | 34     :limit(1) | 
| bsw/jbe@5 | 35     :exec()[1] and true or false | 
| bsw/jbe@5 | 36 end |