Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2012
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.83 KB | None | 0 0
  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])
  62.         res.append(('xcategories', clause[1], value))
  63.         return res
  64.  
  65. Aikidoka()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement