liquid_feedback_frontend

annotate model/contact.lua @ 597:516962033e96

Fixed sorting of contacts
author bsw
date Sun Jun 24 20:50:02 2012 +0200 (2012-06-24)
parents a9c6c11dd86c
children 701a5cf6b067
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@597 36 if args.order then
bsw@597 37 if args.order == "name" then
bsw@597 38 selector:add_order_by("member.name")
bsw@198 39 else
bsw@198 40 error("invalid order")
bsw@198 41 end
bsw@198 42 end
bsw@198 43 return selector
bsw@198 44 end

Impressum / About Us