models.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields
  3. import inspect
  4. DEFAULT_FIELDS_EXCLUDED = [
  5. 'self',
  6. 'function',
  7. 'create_uid',
  8. '__last_update',
  9. 'sequence',
  10. 'write_uid',
  11. 'write_date',
  12. 'tz',
  13. 'lang'
  14. ]
  15. '''
  16. '''
  17. def serialize(self, exclude = []):
  18. fields = self.fields_get()
  19. data = {}
  20. for field in fields:
  21. if field in (exclude + DEFAULT_FIELDS_EXCLUDED):
  22. continue
  23. definition = fields[field]
  24. if 'exportable' in definition or definition['readonly']:
  25. continue
  26. value = getattr(self, field)
  27. if definition['type'] in ('char', 'text', 'html', 'date', 'datetime'):
  28. data[field] = value if type(value) is not bool else None
  29. if definition['type'] in ('many2one'):
  30. data[field] = value.id if value.id else None
  31. if definition['type'] in ('one2many', 'many2many'):
  32. data[field] = [obj.id for obj in value] if value else []
  33. if definition['type'] in ('integer', 'float', 'boolean', 'selection', 'binary'):
  34. data[field] = value
  35. return data
  36. models.Model.serialize = serialize
  37. '''
  38. Users class with token field for manage authentication
  39. '''
  40. class res_users(models.Model):
  41. _inherit = 'res.users'
  42. jwt_token = fields.Char(string = 'JWT Authentication Token');