From d25ce7f94d22fc7f617809ae439e8613c4f05f5e Mon Sep 17 00:00:00 2001
From: thibaud <thibaud@le-filament.com>
Date: Mon, 18 Mar 2024 16:52:41 +0100
Subject: [PATCH] [IMP] Added button link to the dedicated financial tool in
 the deal flow contract section

---
 models/financial_contract.py | 18 ++++++++++++++----
 views/financial_contract.xml | 19 +++++++++++++++++++
 2 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/models/financial_contract.py b/models/financial_contract.py
index 94b6fd8..d121d1f 100644
--- a/models/financial_contract.py
+++ b/models/financial_contract.py
@@ -4,7 +4,7 @@ from datetime import datetime
 
 from ocb.odoo import api
 
-from odoo import fields, models
+from odoo import _, fields, models
 
 MAP_DICT = {"loan": "loan.manager.loan", "invest": "", "warranty": ""}
 
@@ -56,15 +56,17 @@ class FinancialContract(models.Model):
 
     @api.model
     def create(self, values):
+        # FIXME: ORM overload + design does not imply inheritance,
+        #  therefore hardcoded creation of each model ? (Warranty, title and loan)
         contract = super().create(values)
         # Create financial tool associated
         financial_tool_record = self.env[contract.deal_tool_model_id.model].create(
             {
                 "description": contract.name,
-                "first_term_date": datetime.now,
-                "payment_date": datetime.now,
+                "first_term_date": datetime.now(),
+                "payment_date": datetime.now(),
                 "amount": contract.deal_tool_id.amount,
-                "partner_id": contract.deal_id.partner_id,
+                "partner_id": contract.deal_id.partner_id.id,
             }
         )
         self.deal_tool_model_id_referenced_id = financial_tool_record.id
@@ -73,6 +75,14 @@ class FinancialContract(models.Model):
     # ------------------------------------------------------
     # Actions
     # ------------------------------------------------------
+    def btn_open_tool_form(self):
+        return {
+            "name": _("Financial tool"),
+            "type": "ir.actions.act_window",
+            "res_model": self.deal_tool_model_id.model,
+            "res_id": self.deal_tool_model_id_referenced_id,
+            "view_mode": "form",
+        }
 
     # ------------------------------------------------------
     # Business methods
diff --git a/views/financial_contract.xml b/views/financial_contract.xml
index 14195bc..609cc24 100644
--- a/views/financial_contract.xml
+++ b/views/financial_contract.xml
@@ -17,4 +17,23 @@
             </xpath>
         </field>
     </record>
+
+    <record id="financial_deal_contract_view_tree" model="ir.ui.view">
+        <field name="name">financial.contract.tree</field>
+        <field name="model">financial.contract</field>
+        <field
+            name="inherit_id"
+            ref="financial_contract.financial_contract_view"
+        />
+        <field name="arch" type="xml">
+            <xpath expr="//field[@name='state']" position="after">
+                <button
+                    name="btn_open_tool_form"
+                    type="object"
+                    icon="fa-calculator"
+                />
+            </xpath>
+
+        </field>
+    </record>
 </odoo>
-- 
GitLab