From 23bd8728027cda611ec4a1c9d4b3b5e062c74669 Mon Sep 17 00:00:00 2001 From: RPSJR Date: Mon, 28 Oct 2024 18:39:08 -0300 Subject: [PATCH 1/3] [16.0][IMP]add seq to inspection template --- .../models/fleet_vehicle_inspection.py | 7 ++- .../fleet_vehicle_inspection_template_line.py | 2 + .../test_fleet_vehicle_inspection_template.py | 62 +++++++++++++++++-- .../fleet_vehicle_inspection_template.xml | 1 + 4 files changed, 67 insertions(+), 5 deletions(-) diff --git a/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py b/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py index d49e6e97..5f075dbb 100644 --- a/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py +++ b/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py @@ -15,6 +15,7 @@ class FleetVehicleInspection(models.Model): def _compute_line_data_for_template_change(self, line): return { "inspection_item_id": line.inspection_template_item_id.id, + "sequence": line.sequence, "state": "draft", } @@ -25,7 +26,11 @@ def _onchange_inspection_template_id(self): self.note = self.inspection_template_id.note inspection_lines = [(5, 0, 0)] - for line in self.inspection_template_id.inspection_template_line_ids: + # Sort the lines by sequence before appending + for line in sorted( + self.inspection_template_id.inspection_template_line_ids, + key=lambda linei: linei.sequence, + ): data = self._compute_line_data_for_template_change(line) inspection_lines.append((0, 0, data)) diff --git a/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection_template_line.py b/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection_template_line.py index 9e79a76d..79d42311 100644 --- a/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection_template_line.py +++ b/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection_template_line.py @@ -24,3 +24,5 @@ class FleetVehicleInspectionTemplateLine(models.Model): required=True, copy=True, ) + + sequence = fields.Integer(default=10) diff --git a/fleet_vehicle_inspection_template/tests/test_fleet_vehicle_inspection_template.py b/fleet_vehicle_inspection_template/tests/test_fleet_vehicle_inspection_template.py index b2f3b16d..42205907 100644 --- a/fleet_vehicle_inspection_template/tests/test_fleet_vehicle_inspection_template.py +++ b/fleet_vehicle_inspection_template/tests/test_fleet_vehicle_inspection_template.py @@ -17,9 +17,9 @@ def setUpClass(cls): cls.item_02 = cls.inspection_item.create({"name": "Mirrors"}) - cls.inspection_template = cls.inspection_template.create( + cls.inspection_template_01 = cls.inspection_template.create( { - "name": "TemplateTest", + "name": "TemplateTest_01", "inspection_template_line_ids": [ ( 0, @@ -35,15 +35,69 @@ def setUpClass(cls): } ) + cls.inspection_template_02 = cls.inspection_template.create( + { + "name": "TemplateTest_02", + "inspection_template_line_ids": [ + ( + 0, + 0, + { + "inspection_template_item_id": cls.item_01.id, + "sequence": 11, # Different sequence in the template line + }, + ), + ( + 0, + 0, + { + "inspection_template_item_id": cls.item_02.id, + "sequence": 10, # Different sequence in the template line + }, + ), + ], + } + ) + cls.inspection = cls.inspection.create( { "vehicle_id": cls.vehicle, - "inspection_template_id": cls.inspection_template.id, + "inspection_template_id": cls.inspection_template_01.id, } ) def test_fleet_vehicle_inspection(self): + # --- Test with an inspection template --- + self.inspection._onchange_inspection_template_id() + + self.assertEqual(self.inspection.name, self.inspection_template_01.name) + self.assertTrue(self.inspection.inspection_line_ids) + # --- Change the template ID --- + self.inspection.inspection_template_id = self.inspection_template_02 + + # Trigger the onchange method again self.inspection._onchange_inspection_template_id() - self.assertEqual(self.inspection.name, self.inspection_template.name) + + self.assertEqual(len(self.inspection.inspection_line_ids), 2) + + # Check if the sequence is correctly copied from the template line + line_1 = self.inspection.inspection_line_ids.filtered( + lambda linei: linei.inspection_item_id == self.item_01 + ) + self.assertEqual(line_1.sequence, 11) + + # --- Test without an inspection template --- + self.inspection.inspection_template_id = False # Remove the template + + # Trigger the onchange method again + self.inspection._onchange_inspection_template_id() + + # Assert that the name and note are not changed + self.assertEqual(self.inspection.name, self.inspection_template_02.name) + # (remains the same as the previous template) + self.assertNotEqual(self.inspection.name, self.inspection_template_01.name) + + # Assert that the inspection lines are NOT removed self.assertTrue(self.inspection.inspection_line_ids) + self.assertEqual(len(self.inspection.inspection_line_ids), 2) diff --git a/fleet_vehicle_inspection_template/views/fleet_vehicle_inspection_template.xml b/fleet_vehicle_inspection_template/views/fleet_vehicle_inspection_template.xml index 90667738..810ea7a3 100644 --- a/fleet_vehicle_inspection_template/views/fleet_vehicle_inspection_template.xml +++ b/fleet_vehicle_inspection_template/views/fleet_vehicle_inspection_template.xml @@ -27,6 +27,7 @@ > + Date: Mon, 4 Nov 2024 07:48:34 -0300 Subject: [PATCH 2/3] Update fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit use the model's sorted method Co-authored-by: Iván Todorovich --- .../models/fleet_vehicle_inspection.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py b/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py index 5f075dbb..277cb41a 100644 --- a/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py +++ b/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py @@ -26,11 +26,7 @@ def _onchange_inspection_template_id(self): self.note = self.inspection_template_id.note inspection_lines = [(5, 0, 0)] - # Sort the lines by sequence before appending - for line in sorted( - self.inspection_template_id.inspection_template_line_ids, - key=lambda linei: linei.sequence, - ): + for line in self.inspection_template_id.inspection_template_line_ids.sorted("sequence"): data = self._compute_line_data_for_template_change(line) inspection_lines.append((0, 0, data)) From 8e4159f4093e9018e959f4baff41fc736d194c0c Mon Sep 17 00:00:00 2001 From: RPSJR Date: Mon, 4 Nov 2024 07:53:56 -0300 Subject: [PATCH 3/3] pre-commit fix --- .../models/fleet_vehicle_inspection.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py b/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py index 277cb41a..7e78f579 100644 --- a/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py +++ b/fleet_vehicle_inspection_template/models/fleet_vehicle_inspection.py @@ -26,7 +26,9 @@ def _onchange_inspection_template_id(self): self.note = self.inspection_template_id.note inspection_lines = [(5, 0, 0)] - for line in self.inspection_template_id.inspection_template_line_ids.sorted("sequence"): + for line in self.inspection_template_id.inspection_template_line_ids.sorted( + "sequence" + ): data = self._compute_line_data_for_template_change(line) inspection_lines.append((0, 0, data))