diff --git a/bemade_fsm/__manifest__.py b/bemade_fsm/__manifest__.py index 387b0b3..5be42f7 100644 --- a/bemade_fsm/__manifest__.py +++ b/bemade_fsm/__manifest__.py @@ -34,6 +34,7 @@ 'sale_project', 'sale_stock', 'sale_planning', + 'worksheet', 'industry_fsm_stock', 'industry_fsm_report', 'bemade_partner_root_ancestor', diff --git a/bemade_fsm/models/task.py b/bemade_fsm/models/task.py index 4addf0c..e8ba4fc 100644 --- a/bemade_fsm/models/task.py +++ b/bemade_fsm/models/task.py @@ -49,6 +49,8 @@ class Task(models.Model): visit_id = fields.Many2one(comodel_name='bemade_fsm.visit') + is_complete = fields.Boolean(compute="_compute_is_complete") + # user_id = fields.Many2one('res.users', compute='_compute_user_id') # # @api.depends('user_ids') @@ -56,6 +58,26 @@ class Task(models.Model): # for rec in self: # rec.user_id = rec.user_ids and rec.user_ids[0] or 0 + def _get_closed_stage_by_project(self): + """ Gets the stage representing completed tasks for each project in + self.project_id. Copied from industry_fsm/.../project.py:217-221 + for consistency. + + :returns: Dict of project.project -> project.task.type""" + return { + project: + project.type_ids.filtered(lambda stage: stage.is_closed)[:1] + or project.type_ids[-1:] + for project in self.project_id + } + + @api.depends('project_id', 'stage_id.is_closed') + def _compute_is_complete(self): + closing_stages = self._get_closed_stage_by_project() + for rec in self: + rec.is_complete = rec.stage_id == (rec.project_id + and closing_stages[rec.project_id]) + def _get_related_planning_slots(self): domain = expression.AND([ self._get_domain_compute_forecast_hours(), diff --git a/bemade_fsm/reports/worksheet_templates.xml b/bemade_fsm/reports/worksheet_templates.xml index 3936a1b..2c43b51 100644 --- a/bemade_fsm/reports/worksheet_templates.xml +++ b/bemade_fsm/reports/worksheet_templates.xml @@ -7,7 +7,7 @@ qweb-pdf bemade_fsm.worksheet_complete - '%s Worksheet %s' % (time.now().strftime('%Y-%m-%d'),object.name) + '%s Worksheet %s' % (time.strftime('%Y-%m-%d'), object.name) report @@ -25,15 +25,15 @@ + \ No newline at end of file