Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import logging
- from trytond.model import ModelView, ModelSQL, fields
- class Aikidoka(ModelSQL, ModelView):
- 'Aikidoka'
- _name = 'party.party'
- _description = __doc__
- xphone = fields.Char('Phone')
- xemail = fields.Char('Email')
- dateofbirth = fields.Date('Date of Birth')
- female = fields.Boolean('Female')
- nationality = fields.Many2One('country.country', 'Nationality')
- dateofstart = fields.Date('Date of Start')
- dateof10kyu = fields.Date('Date of 10th Kyu')
- dateof09kyu = fields.Date('Date of 9th Kyu')
- dateof08kyu = fields.Date('Date of 8th Kyu')
- dateof07kyu = fields.Date('Date of 7th Kyu')
- dateof06kyu = fields.Date('Date of 6th Kyu')
- dateof05kyu = fields.Date('Date of 5th Kyu')
- dateof04kyu = fields.Date('Date of 4th Kyu')
- dateof03kyu = fields.Date('Date of 3rd Kyu')
- dateof02kyu = fields.Date('Date of 2nd Kyu')
- dateof01kyu = fields.Date('Date of 1st Kyu')
- dateof01dan = fields.Date('Date of 1st Dan')
- dateof02dan = fields.Date('Date of 2nd Dan')
- dateof03dan = fields.Date('Date of 3rd Dan')
- dateof04dan = fields.Date('Date of 4th Dan')
- dateof05dan = fields.Date('Date of 5th Dan')
- dateof06dan = fields.Date('Date of 6th Dan')
- dateof07dan = fields.Date('Date of 7th Dan')
- dateof08dan = fields.Date('Date of 8th Dan')
- xcategories = fields.Function(fields.Char('XCategories'#, order_field='aikidokas.get_xcategories_string %(order)s, aikidokas.name %(order)s'
- ), 'get_xcategories_string', searcher='search_xcategories_string')
- def get_xcategories_string(self, ids, name):
- if not ids:
- return []
- res = {}
- for party in self.browse(ids):
- res[party.id] = ', '.join(sorted(cat.rec_name for cat in party.categories))
- if 'Fukushidoin, ' in res[party.id]:
- res[party.id] = res[party.id].replace('Fukushidoin, ', '') + ', Fukushidoin'
- if 'Shidoin, ' in res[party.id]:
- res[party.id] = res[party.id].replace('Shidoin, ', '') + ', Shidoin'
- if 'Dojocho, ' in res[party.id]:
- res[party.id] = res[party.id].replace('Dojocho, ', '') + ', Dojocho'
- if ', Dojo' == res[party.id][-6:]:
- res[party.id] = 'Dojo, ' + res[party.id][:len(res[party.id])-6]
- return res
- def search_xcategories_string(self, name, clause):
- ids = self.search([('name', '!=', '')], order=[])
- res = []
- value = clause[2]
- cats = self.get_xcategories_string(ids, name)
- logging.getLogger('party').error('asdf')
- for cat in cats.keys():
- if value.lower() in cats[cat].lower():
- res.append('xcategories', '=', cats[cat])
- res.append(('xcategories', clause[1], value))
- return res
- Aikidoka()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement