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() |