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
|