annotate model/contact.lua @ 1361:324e01ab8ecf
Show sequential number as read only
 | author | bsw | 
 | date | Mon Aug 06 14:00:45 2018 +0200 (2018-08-06) | 
 | parents | 701a5cf6b067 | 
 | children |  | 
 
 | rev | line source | 
| bsw/jbe@0 | 1 Contact = mondelefant.new_class() | 
| bsw/jbe@0 | 2 Contact.table = 'contact' | 
| bsw/jbe@0 | 3 Contact.primary_key = { "member_id", "other_member_id" } | 
| bsw/jbe@0 | 4 | 
| bsw/jbe@0 | 5 Contact:add_reference{ | 
| bsw/jbe@0 | 6   mode          = 'm1', | 
| bsw/jbe@0 | 7   to            = "Member", | 
| bsw/jbe@0 | 8   this_key      = 'member_id', | 
| bsw/jbe@0 | 9   that_key      = 'id', | 
| bsw/jbe@0 | 10   ref           = 'member', | 
| bsw/jbe@0 | 11 } | 
| bsw/jbe@0 | 12 | 
| bsw/jbe@0 | 13 Contact:add_reference{ | 
| bsw/jbe@0 | 14   mode          = 'm1', | 
| bsw/jbe@0 | 15   to            = "Member", | 
| bsw/jbe@0 | 16   this_key      = 'other_member_id', | 
| bsw/jbe@0 | 17   that_key      = 'id', | 
| bsw/jbe@0 | 18   ref           = 'other_member', | 
| bsw/jbe@0 | 19 } | 
| bsw/jbe@0 | 20 | 
| bsw/jbe@0 | 21 | 
| bsw/jbe@0 | 22 function Contact:by_pk(member_id, other_member_id) | 
| bsw/jbe@0 | 23   return self:new_selector() | 
| bsw/jbe@0 | 24     :add_where{ "member_id = ?", member_id } | 
| bsw/jbe@0 | 25     :add_where{ "other_member_id = ?", other_member_id } | 
| bsw/jbe@0 | 26     :optional_object_mode() | 
| bsw/jbe@0 | 27     :exec() | 
| bsw/jbe@0 | 28 end | 
| bsw@198 | 29 | 
| bsw@198 | 30 function Contact:build_selector(args) | 
| bsw@198 | 31   local selector = Contact:new_selector() | 
| bsw@597 | 32   selector:join("member", nil, "member.id = contact.other_member_id") | 
| bsw@198 | 33   if args.member_id then | 
| bsw@198 | 34     selector:add_where{ "member_id = ?", args.member_id } | 
| bsw@198 | 35   end | 
| bsw@1045 | 36   if args.public ~= nil then | 
| bsw@1045 | 37     selector:add_where{ "public = ?", args.public } | 
| bsw@1045 | 38   end | 
| bsw@597 | 39   if args.order then | 
| bsw@597 | 40     if args.order == "name" then | 
| bsw@597 | 41       selector:add_order_by("member.name") | 
| bsw@198 | 42     else | 
| bsw@198 | 43       error("invalid order") | 
| bsw@198 | 44     end | 
| bsw@198 | 45   end | 
| bsw@198 | 46   return selector | 
| bsw@198 | 47 end |