From 2e1d4070f397ed6035eb3b751c45d170942d067f Mon Sep 17 00:00:00 2001 From: thibaud <thibaud@le-filament.com> Date: Mon, 25 Mar 2024 10:46:40 +0100 Subject: [PATCH] [IMP] Improved contract generation A check is performed before generating contract, if a contract has already been generated + the button disapear if so --- models/financial_deal_tool.py | 23 ++++++++++++----------- views/financial_deal_tool.xml | 21 ++++++++++++++------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/models/financial_deal_tool.py b/models/financial_deal_tool.py index d1118e6..a67089d 100644 --- a/models/financial_deal_tool.py +++ b/models/financial_deal_tool.py @@ -1,7 +1,7 @@ # Copyright 2023- Le Filament (https://le-filament.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) -from odoo import models +from odoo import fields, models class DealTool(models.Model): @@ -10,7 +10,7 @@ class DealTool(models.Model): # ------------------------------------------------------ # Fields declaration # ------------------------------------------------------ - + contract_id = fields.Many2one("financial.contract") # ------------------------------------------------------ # SQL Constraints # ------------------------------------------------------ @@ -43,12 +43,13 @@ class DealTool(models.Model): # ------------------------------------------------------ def generate_contract(self): self.ensure_one() - contract = self.env["financial.contract"].create( - { - "description": self.deal_id.description, - "name": "An incoming sequence", - "partner_id": self.deal_id.partner_id.id, - "deal_tool_id": self.id, - } - ) - return contract + if not self.contract_id: + self.contract_id = self.env["financial.contract"].create( + { + "description": self.deal_id.description, + "partner_id": self.deal_id.partner_id.id, + "deal_tool_id": self.id, + } + ) + + return self.contract_id diff --git a/views/financial_deal_tool.xml b/views/financial_deal_tool.xml index a40df18..11d5c3d 100644 --- a/views/financial_deal_tool.xml +++ b/views/financial_deal_tool.xml @@ -1,21 +1,28 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8" ?> <odoo> <data> - <record id="financial_deal_tool_view_tree_inherit_manager_tool" - model="ir.ui.view"> - <field name="name">financial deal tool inherit in manager tool</field> + <record + id="financial_deal_tool_view_tree_inherit_manager_tool" + model="ir.ui.view" + > + <field + name="name" + >financial deal tool inherit in manager tool</field> <field name="model">financial.deal.tool</field> - <field name="inherit_id" - ref="financial_deal_flow.financial_deal_tool_view_tree"/> + <field + name="inherit_id" + ref="financial_deal_flow.financial_deal_tool_view_tree" + /> <field name="arch" type="xml"> <xpath expr="//field[@name='amount']" position="after"> - <field name="deal_id" invisible="1"/> + <field name="contract_id" invisible="1" /> <button name="btn_init_contract" type="object" icon="fa-share" title="transform into tool" + attrs="{'invisible':[('contract_id','!=',False)]}" /> </xpath> </field> -- GitLab