31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
|
|
from odoo import models, fields, api
|
||
|
|
|
||
|
|
|
||
|
|
class ProjectTask(models.Model):
|
||
|
|
_inherit = 'project.task'
|
||
|
|
|
||
|
|
gantt_start_date = fields.Date(string="Start Date", default=fields.Date.today)
|
||
|
|
gantt_end_date = fields.Date(string="End Date")
|
||
|
|
task_progress = fields.Float(string="Progress (%)", default=0.0)
|
||
|
|
constraint_type = fields.Selection([
|
||
|
|
('asap', 'As Soon As Possible'),
|
||
|
|
('snet', 'Start No Earlier Than'),
|
||
|
|
('snlt', 'Start No Later Than'),
|
||
|
|
('fnet', 'Finish No Earlier Than'),
|
||
|
|
('fnlt', 'Finish No Later Than'),
|
||
|
|
], string="Constraint Type", default='asap')
|
||
|
|
constraint_date = fields.Datetime(string="Constraint Date")
|
||
|
|
is_milestone = fields.Boolean(string="Milestone")
|
||
|
|
unschedule = fields.Boolean(string="Unschedule")
|
||
|
|
schedule_mode = fields.Selection([
|
||
|
|
('auto', 'Auto'),
|
||
|
|
('manual', 'Manual')
|
||
|
|
], string="Schedule Mode", default='manual')
|
||
|
|
|
||
|
|
# Computed color based on task stage
|
||
|
|
stage_color = fields.Char(string="Stage Color", compute='_compute_stage_color', store=True)
|
||
|
|
|
||
|
|
@api.depends('stage_id.gantt_stage_color')
|
||
|
|
def _compute_stage_color(self):
|
||
|
|
for task in self:
|
||
|
|
task.stage_color = task.stage_id.gantt_stage_color or '#17a2b8'
|