From c4d2acf71eec54b3eb5616bbfe29e290f5a43c8b Mon Sep 17 00:00:00 2001
From: Hugo Trentesaux <hugo@le-filament.com>
Date: Thu, 17 Apr 2025 10:38:19 +0200
Subject: [PATCH] DO NOT MERGE

used for debugging
---
 __manifest__.py                       |  2 ++
 models/__init__.py                    |  1 +
 models/financial_contract_external.py | 24 ++++++++++++++++++++
 views/financial_contract_external.xml | 32 +++++++++++++++++++++++++++
 4 files changed, 59 insertions(+)
 create mode 100644 models/financial_contract_external.py
 create mode 100644 views/financial_contract_external.xml

diff --git a/__manifest__.py b/__manifest__.py
index 6f52d77..c6726c8 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -17,6 +17,8 @@
         # datas
         # views
         "views/company_share_line.xml",
+        # next line used for debugging
+        # "views/financial_contract_external.xml",
         "views/financial_contract_guarantee.xml",
         "views/financial_contract_guarantee_commission.xml",
         "views/financial_contract_guarantee_line.xml",
diff --git a/models/__init__.py b/models/__init__.py
index 6f20943..4fe7159 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -10,3 +10,4 @@ from . import mutual_guarantee_fund_line
 from . import res_company
 from . import res_config_settings
 from . import res_partner
+from . import financial_contract_external
diff --git a/models/financial_contract_external.py b/models/financial_contract_external.py
new file mode 100644
index 0000000..9545cb5
--- /dev/null
+++ b/models/financial_contract_external.py
@@ -0,0 +1,24 @@
+# © 2024 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import fields, models, api
+
+
+class FinancialContractExternal(models.Model):
+    _inherit = "financial.contract.external"
+
+    # there should be a single guarantee but we do not ensure this
+    # useful for debugging
+    guarantee_ids = fields.One2many(
+        string="Garanties",
+        comodel_name="financial.contract.guarantee",
+        inverse_name="external_loan_id"
+    )
+
+    # only used for debugging
+    guarantee_count = fields.Integer("Nombre de garanties liées", compute="_compute_guarantee_count")
+
+    @api.depends("guarantee_ids")
+    def _compute_guarantee_count(self):
+        for i in self:
+            i.guarantee_count = len(i.guarantee_ids)
diff --git a/views/financial_contract_external.xml b/views/financial_contract_external.xml
new file mode 100644
index 0000000..4138e16
--- /dev/null
+++ b/views/financial_contract_external.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" ?>
+<!-- Copyright 2024 Le Filament
+     License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
+<odoo>
+
+    <!-- Form -->
+    <record model="ir.ui.view" id="financial_contract_external_form_view_inherit">
+        <field name="name">financial.contract.external.form.inherit</field>
+        <field name="model">financial.contract.external</field>
+        <field name="inherit_id" ref="financial_contract_external.financial_contract_external_form_view"/>
+        <field name="arch" type="xml">
+            <xpath expr="//field[@name='comment']/.." position="after">
+                <group>
+                    <field name="guarantee_ids"/>
+                </group>
+            </xpath>
+        </field>
+    </record>
+
+    <!-- Tree -->
+    <record model="ir.ui.view" id="financial_contract_external_tree_view_inherit">
+        <field name="name">financial.contract.external.list.inherit</field>
+        <field name="model">financial.contract.external</field>
+        <field name="inherit_id" ref="financial_contract_external.financial_contract_external_tree_view"/>
+        <field name="arch" type="xml">
+            <xpath expr="//field[@name='number']" position="after">
+                <field name="guarantee_count" optional="hide"/>
+            </xpath>
+        </field>
+    </record>
+
+</odoo>
-- 
GitLab