annotate model/initiator.lua @ 612:df0b83d79524
merge
 | author | 
 jbe | 
 | date | 
 Sun Jun 24 23:27:40 2012 +0200 (2012-06-24) | 
 | parents | 
 18e8de7a2b6a  | 
 | children | 
  | 
 
 | rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 Initiator = mondelefant.new_class()
 | 
| 
bsw/jbe@0
 | 
     2 Initiator.table = 'initiator'
 | 
| 
bsw/jbe@0
 | 
     3 Initiator.primary_key = { "initiative_id", "member_id" }
 | 
| 
bsw/jbe@0
 | 
     4 
 | 
| 
bsw/jbe@0
 | 
     5 Initiator: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 Initiator: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 Initiator: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@558
 | 
    28 
 | 
| 
bsw@558
 | 
    29 function Initiator:selector_for_invites(member_id)
 | 
| 
bsw@558
 | 
    30   return Initiative:new_selector()
 | 
| 
bsw@558
 | 
    31     :join("issue", "_issue_state", "_issue_state.id = initiative.issue_id")
 | 
| 
bsw@558
 | 
    32     :join("initiator", nil, { "initiator.initiative_id = initiative.id AND initiator.member_id = ? AND initiator.accepted ISNULL", member_id })
 | 
| 
bsw@558
 | 
    33     :add_where("_issue_state.closed ISNULL AND _issue_state.half_frozen ISNULL")
 | 
| 
bsw@558
 | 
    34 end  
 |