SHOW:
|
|
- or go back to the newest paste.
1 | # -*- coding: utf-8 -*- | |
2 | import logging | |
3 | from trytond.model import ModelView, ModelSQL, fields | |
4 | class Aikidoka(ModelSQL, ModelView): | |
5 | 'Aikidoka' | |
6 | _name = 'party.party' | |
7 | _description = __doc__ | |
8 | ||
9 | xphone = fields.Char('Phone') | |
10 | xemail = fields.Char('Email') | |
11 | dateofbirth = fields.Date('Date of Birth') | |
12 | female = fields.Boolean('Female') | |
13 | nationality = fields.Many2One('country.country', 'Nationality') | |
14 | dateofstart = fields.Date('Date of Start') | |
15 | dateof10kyu = fields.Date('Date of 10th Kyu') | |
16 | dateof09kyu = fields.Date('Date of 9th Kyu') | |
17 | dateof08kyu = fields.Date('Date of 8th Kyu') | |
18 | dateof07kyu = fields.Date('Date of 7th Kyu') | |
19 | dateof06kyu = fields.Date('Date of 6th Kyu') | |
20 | dateof05kyu = fields.Date('Date of 5th Kyu') | |
21 | dateof04kyu = fields.Date('Date of 4th Kyu') | |
22 | dateof03kyu = fields.Date('Date of 3rd Kyu') | |
23 | dateof02kyu = fields.Date('Date of 2nd Kyu') | |
24 | dateof01kyu = fields.Date('Date of 1st Kyu') | |
25 | dateof01dan = fields.Date('Date of 1st Dan') | |
26 | dateof02dan = fields.Date('Date of 2nd Dan') | |
27 | dateof03dan = fields.Date('Date of 3rd Dan') | |
28 | dateof04dan = fields.Date('Date of 4th Dan') | |
29 | dateof05dan = fields.Date('Date of 5th Dan') | |
30 | dateof06dan = fields.Date('Date of 6th Dan') | |
31 | dateof07dan = fields.Date('Date of 7th Dan') | |
32 | dateof08dan = fields.Date('Date of 8th Dan') | |
33 | ||
34 | xcategories = fields.Function(fields.Char('XCategories'#, order_field='aikidokas.get_xcategories_string %(order)s, aikidokas.name %(order)s' | |
35 | ), 'get_xcategories_string', searcher='search_xcategories_string') | |
36 | ||
37 | def get_xcategories_string(self, ids, name): | |
38 | if not ids: | |
39 | return [] | |
40 | res = {} | |
41 | for party in self.browse(ids): | |
42 | res[party.id] = ', '.join(sorted(cat.rec_name for cat in party.categories)) | |
43 | if 'Fukushidoin, ' in res[party.id]: | |
44 | res[party.id] = res[party.id].replace('Fukushidoin, ', '') + ', Fukushidoin' | |
45 | if 'Shidoin, ' in res[party.id]: | |
46 | res[party.id] = res[party.id].replace('Shidoin, ', '') + ', Shidoin' | |
47 | if 'Dojocho, ' in res[party.id]: | |
48 | res[party.id] = res[party.id].replace('Dojocho, ', '') + ', Dojocho' | |
49 | if ', Dojo' == res[party.id][-6:]: | |
50 | res[party.id] = 'Dojo, ' + res[party.id][:len(res[party.id])-6] | |
51 | return res | |
52 | ||
53 | def search_xcategories_string(self, name, clause): | |
54 | ids = self.search([('name', '!=', '')], order=[]) | |
55 | res = [] | |
56 | value = clause[2] | |
57 | cats = self.get_xcategories_string(ids, name) | |
58 | logging.getLogger('party').error('asdf') | |
59 | for cat in cats.keys(): | |
60 | if value.lower() in cats[cat].lower(): | |
61 | - | res.append('xcategories', '=', cats[cat]) |
61 | + | res.append('categories', '=', cats[cat]) |
62 | - | res.append(('xcategories', clause[1], value)) |
62 | + | res.append(('categories', clause[1], value)) |
63 | return res | |
64 | ||
65 | Aikidoka() |