You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.3 KiB

  1. # -*- coding: utf-8 -*-
  2. from openerp import models, fields
  3. STATES = [
  4. ('draft', 'Unconfirmed'),
  5. ('open', 'Confirmed'),
  6. ('done', 'Attended'),
  7. ('absent', 'Absent'),
  8. ('excused', 'Excused'),
  9. ('replaced', 'Replaced'),
  10. ('cancel', 'Cancelled'),
  11. ]
  12. class Task(models.Model):
  13. _name = 'beesdoo.shift.shift'
  14. #EX01 ADD inheritance
  15. _inherit = ['mail.thread']
  16. name = fields.Char(track_visibility='always')
  17. task_template_id = fields.Many2one('beesdoo.shift.template')
  18. planning_id = fields.Many2one(related='task_template_id.planning_id', store=True)
  19. task_type_id = fields.Many2one('beesdoo.shift.type', string="Task Type")
  20. worker_id = fields.Many2one('res.partner', track_visibility='onchange', domain=[('eater', '=', 'worker_eater')])
  21. start_time = fields.Datetime(track_visibility='always')
  22. end_time = fields.Datetime(track_visibility='always')
  23. state = fields.Selection(STATES, default='draft', track_visibility='onchange')
  24. def message_auto_subscribe(self, updated_fields, values=None):
  25. self._add_follower(values)
  26. return super(Task, self).message_auto_subscribe(updated_fields, values=values)
  27. def _add_follower(self, vals):
  28. if vals.get('worker_id'):
  29. worker = self.env['res.partner'].browse(vals['worker_id'])
  30. self.message_subscribe(partner_ids=worker.ids)