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