liquid_feedback_frontend

annotate model/contact.lua @ 198:a9c6c11dd86c

Contact module refactored
author bsw
date Mon Nov 08 15:41:14 2010 +0100 (2010-11-08)
parents 3bfb2fcf7ab9
children 516962033e96
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@198 32 if args.member_id then
bsw@198 33 selector:add_where{ "member_id = ?", args.member_id }
bsw@198 34 end
bsw@198 35 if order then
bsw@198 36 if order == "name" then
bsw@198 37 selector:add_order_by("name")
bsw@198 38 else
bsw@198 39 error("invalid order")
bsw@198 40 end
bsw@198 41 end
bsw@198 42 return selector
bsw@198 43 end

Impressum / About Us