project_task.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. from odoo import models, fields, api
  3. from datetime import datetime, timedelta
  4. class ProjectTask(models.Model):
  5. _inherit = "project.task"
  6. x_start_date = fields.Date(string="Fecha inicio")
  7. x_end_date = fields.Date(string="Fecha final")
  8. x_days_duration = fields.Integer(string="Duración (Días)", compute="compute_days_duration", store=True)
  9. @api.depends("x_start_date","x_end_date")
  10. def compute_days_duration(self):
  11. for rec in self:
  12. if rec.x_start_date and rec.x_end_date:
  13. rec.x_days_duration = (rec.x_end_date - rec.x_start_date).days
  14. else:
  15. rec.x_days_duration = 0
  16. @api.depends('date_deadline', 'planned_date_begin', 'user_ids')
  17. def _compute_allocated_hours(self):
  18. for rec in self:
  19. rec.allocated_hours = 0
  20. @api.depends('project_id')
  21. def _compute_display_in_project(self):
  22. for rec in self:
  23. rec.display_in_project = True
  24. @api.depends('project_id', 'parent_id')
  25. def _compute_show_display_in_project(self):
  26. for rec in self:
  27. rec.show_display_in_project = False
  28. @api.onchange("x_start_date")
  29. def onchange_start_date(self):
  30. for rec in self:
  31. if rec.x_start_date:
  32. rec.planned_date_begin = datetime.combine(rec.x_start_date, datetime.min.time()) + timedelta(hours=9)
  33. @api.onchange("x_end_date")
  34. def onchange_end_date(self):
  35. for rec in self:
  36. if rec.x_end_date:
  37. rec.date_deadline = datetime.combine(rec.x_end_date, datetime.min.time()) + timedelta(hours=9)