From 57688a5de0abae056e1a6003aa19d9e84e4cca17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com>
Date: Tue, 5 Jul 2022 10:24:55 +0200
Subject: [PATCH] [ADD] rename interventions

---
 __manifest__.py                         |  2 +-
 migrations/14.0.3.0.0/post-migration.py | 25 +++++++++++++++++++++++++
 models/sale_intervention.py             |  4 ++--
 models/sale_project.py                  |  3 +++
 views/sale_intervention_view.xml        | 12 +++++++++---
 views/sale_project_view.xml             |  7 +++++++
 6 files changed, 47 insertions(+), 6 deletions(-)
 create mode 100644 migrations/14.0.3.0.0/post-migration.py

diff --git a/__manifest__.py b/__manifest__.py
index f588efd..2bf177e 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -3,7 +3,7 @@
     "summary": "Gestion de projet de création",
     "author": "Le Filament",
     "website": "https://le-filament.com",
-    "version": "14.0.2.0.0",
+    "version": "14.0.3.0.0",
     "license": "AGPL-3",
     "depends": ["product", "stock", "sale_management", "ap_partner"],
     "data": [
diff --git a/migrations/14.0.3.0.0/post-migration.py b/migrations/14.0.3.0.0/post-migration.py
new file mode 100644
index 0000000..03fc82c
--- /dev/null
+++ b/migrations/14.0.3.0.0/post-migration.py
@@ -0,0 +1,25 @@
+# Copyright 2022 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+from odoo import SUPERUSER_ID, api
+
+
+def _init_sale_project_intervention_sequence(env):
+    for project in (
+        env["sale.project"]
+        .with_context(active_test=False)
+        .search([("intervention_ids", "!=", False)])
+    ):
+        project.intervention_sequence = project.intervention_counter
+
+
+def _rename_sale_intervention(env):
+    for inter in env["sale.intervention"].with_context(active_test=False).search([]):
+        substr = inter.project_id.name + "-"
+        updstr = inter.name.replace(substr, "Séquence ")
+        inter.name = updstr.replace("0", "")
+
+
+def migrate(cr, version):
+    env = api.Environment(cr, SUPERUSER_ID, {})
+    _init_sale_project_intervention_sequence(env)
+    _rename_sale_intervention(env)
diff --git a/models/sale_intervention.py b/models/sale_intervention.py
index 5b5902e..e9cf960 100644
--- a/models/sale_intervention.py
+++ b/models/sale_intervention.py
@@ -956,8 +956,8 @@ class SaleIntervention(models.Model):
     def create(self, vals_list):
         res = super().create(vals_list)
         for rec in res:
-            seq = str(rec.project_id.intervention_counter).zfill(3)
-            rec.name = rec.project_id.name + "-" + seq
+            rec.project_id.intervention_sequence += 1
+            rec.name = "Séquence " + str(rec.project_id.intervention_sequence)
         return res
 
     def write(self, values):
diff --git a/models/sale_project.py b/models/sale_project.py
index b6f3c83..30bb523 100644
--- a/models/sale_project.py
+++ b/models/sale_project.py
@@ -146,6 +146,9 @@ class SaleProject(models.Model):
         string="Nombre d'interventions",
         compute_sudo="True",
     )
+    intervention_sequence = fields.Integer(
+        string="Séquence d'interventions", default="0"
+    )
     intervention_total_length = fields.Float(
         compute="_compute_intervention_values",
         string="Longeur interventions",
diff --git a/views/sale_intervention_view.xml b/views/sale_intervention_view.xml
index 97123a4..bc1957e 100644
--- a/views/sale_intervention_view.xml
+++ b/views/sale_intervention_view.xml
@@ -10,11 +10,17 @@
             <field name="arch" type="xml">
                 <form string="Intervention">
                     <sheet>
+                        <div class="oe_title">
+                            <h1>
+                                <field name="name" readonly="1" />
+                                <br />
+                                Client : <field name="partner_id" readonly="1" />
+                            </h1>
+                        </div>
                         <group>
                             <field name="state" invisible="1" />
-                            <field name="project_id" invisible="True" />
+                            <field name="project_id" readonly="1" />
                             <field name="sale_order_id" invisible="True" />
-                            <field name="partner_id" />
                             <field
                                 name="intervention_type_id"
                                 options="{'no_open': True, 'no_create': True}"
@@ -288,10 +294,10 @@
             <field name="model">sale.intervention</field>
             <field name="arch" type="xml">
                 <tree string="Interventions" expand="True">
+                    <field name="project_id" optional="show" />
                     <field name="name" optional="show" readonly="True" />
                     <field name="state" invisible="1" />
                     <field name="sale_order_id" optional="hide" />
-                    <field name="project_id" optional="hide" />
                     <field name="partner_id" optional="show" />
                     <field name="intervention_type_id" optional="show" />
                     <field name="intervention_length" sum="Total" optional="show" />
diff --git a/views/sale_project_view.xml b/views/sale_project_view.xml
index 789ed45..6de1de8 100644
--- a/views/sale_project_view.xml
+++ b/views/sale_project_view.xml
@@ -25,6 +25,13 @@
                                 icon="fa-pagelines"
                             />
                         </div>
+                        <div class="oe_title">
+                            <h1>
+                                <field name="name" readonly="1" />
+                                <br />
+                                Client : <field name="partner_id" readonly="1" />
+                            </h1>
+                        </div>
                         <field name="sale_order_id" invisible="True" />
 
                         <group name="required_infos" string="Projet">
-- 
GitLab