From badc4ace0dcc1833b00dc5e313e5491d894405e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cao=20=C4=90=C3=ACnh=20Trung?= <caodinhtrung2k@gmail.com> Date: Thu, 22 Sep 2022 06:20:08 +0000 Subject: [PATCH] [FIX] maintenance: avoid empty close_date in done stage Steps to reproduce the error: - Install 'Maintenance' - Select 'Maintenance' -> 'Request Maintenance' - Create a maintenance request: + TH1: Save > Change stage to Repaired > 'Close date' = Date.Today() + TH2: Don't Save > Change stage to Repaired > Save > 'Close date' = blank closes odoo/odoo#100777 Problem: App will show 'Close Date' blank Expected: App will display 'Close Date' as Date.Today() Solution: When Click on Save button -> Automatically get current date as end date Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com> --- addons/maintenance/models/maintenance.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/maintenance/models/maintenance.py b/addons/maintenance/models/maintenance.py index da5782d3cac7..06bb6318631e 100644 --- a/addons/maintenance/models/maintenance.py +++ b/addons/maintenance/models/maintenance.py @@ -345,6 +345,10 @@ class MaintenanceRequest(models.Model): request._add_followers() if request.equipment_id and not request.maintenance_team_id: request.maintenance_team_id = request.equipment_id.maintenance_team_id + if not request.stage_id.done: + request.close_date = False + elif request.stage_id.done and not request.close_date: + request.close_date = fields.Date.today() request.activity_update() return request @@ -358,7 +362,9 @@ class MaintenanceRequest(models.Model): self._add_followers() if 'stage_id' in vals: self.filtered(lambda m: m.stage_id.done).write({'close_date': fields.Date.today()}) + self.filtered(lambda m: not m.stage_id.done).write({'close_date': False}) self.activity_feedback(['maintenance.mail_act_maintenance_request']) + self.activity_update() if vals.get('user_id') or vals.get('schedule_date'): self.activity_update() if vals.get('equipment_id'): -- GitLab