From 9fb44d0240133d011dea9dab7f0d963ea0c190e0 Mon Sep 17 00:00:00 2001 From: thibaud <thibaud@le-filament.com> Date: Tue, 19 Mar 2024 17:01:06 +0100 Subject: [PATCH] [IMP] Added condition precedent and linked it to contracts --- __manifest__.py | 4 +- models/__init__.py | 1 + models/financial_condition_precedent.py | 87 +++++++++++++++++++ models/financial_contract.py | 3 + security/ir.model.access.csv | 2 + views/financial_condition_precedent.xml | 48 ++++++++++ ...financial_condition_precedent_contract.xml | 53 +++++++++++ views/financial_contract.xml | 33 ++++--- views/menus.xml | 40 ++++++--- 9 files changed, 244 insertions(+), 27 deletions(-) create mode 100644 models/financial_condition_precedent.py create mode 100644 views/financial_condition_precedent.xml create mode 100644 views/financial_condition_precedent_contract.xml diff --git a/__manifest__.py b/__manifest__.py index a7e2b0e..97fde0a 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -1,7 +1,7 @@ { "name": "Financial - Contract", "summary": "Gestion des contrats des outils financiers", - "author": "Le Filament", + "author": "Le Filament, Odoo Community Association (OCA)", "website": "https://le-filament.com", "version": "16.0.1.0.0", "license": "AGPL-3", @@ -13,6 +13,8 @@ # datas # views "views/financial_contract.xml", + "views/financial_condition_precedent.xml", + "views/financial_condition_precedent_contract.xml", "views/res_partner.xml", # views menu "views/menus.xml", diff --git a/models/__init__.py b/models/__init__.py index 2bddc2e..0c09abf 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -1,2 +1,3 @@ from . import financial_contract from . import res_partner +from . import financial_condition_precedent diff --git a/models/financial_condition_precedent.py b/models/financial_condition_precedent.py new file mode 100644 index 0000000..672c898 --- /dev/null +++ b/models/financial_condition_precedent.py @@ -0,0 +1,87 @@ +# Copyright 2023- Le Filament (https://le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo import fields, models + + +class FinancialConditionPrecedent(models.Model): + _name = "financial.condition.precedent" + _description = "Configuration of a condition precedent" + + # ------------------------------------------------------ + # Fields declaration + # ------------------------------------------------------ + name = fields.Char() + category = fields.Selection([("a", "Cat. A"), ("b", "Cat B")]) + # ------------------------------------------------------ + # SQL Constraints + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Default methods + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Computed fields / Search Fields + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Onchange / Constraints + # ------------------------------------------------------ + + # ------------------------------------------------------ + # CRUD methods (ORM overrides) + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Actions + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Business methods + # ------------------------------------------------------ + + +class FinancialConditionPrecedentContract(models.Model): + _name = "financial.condition.precedent.contract" + _description = "Link between a condition precedent and a contract" + + # ------------------------------------------------------ + # Fields declaration + # ------------------------------------------------------ + name = fields.Char(compute="_compute_name") + condition_precedent_id = fields.Many2one("financial.condition.precedent") + raised = fields.Boolean() + + # ------------------------------------------------------ + # SQL Constraints + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Default methods + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Computed fields / Search Fields + # ------------------------------------------------------ + def _compute_name(self): + for condition_precedent_contract in self: + condition_precedent_contract.name = ( + condition_precedent_contract.condition_precedent_id.name + ) + + # ------------------------------------------------------ + # Onchange / Constraints + # ------------------------------------------------------ + + # ------------------------------------------------------ + # CRUD methods (ORM overrides) + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Actions + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Business methods + # ------------------------------------------------------ diff --git a/models/financial_contract.py b/models/financial_contract.py index 5de399d..bb32e65 100644 --- a/models/financial_contract.py +++ b/models/financial_contract.py @@ -44,6 +44,9 @@ class FinancialContract(models.Model): currency_id = fields.Many2one( comodel_name="res.currency", related="company_id.currency_id" ) + condition_precedent_contract_ids = fields.Many2many( + "financial.condition.precedent.contract", string="Conditions" + ) # ------------------------------------------------------ # Computed fields / Search Fields diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 7f16336..bb0d685 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -1,2 +1,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_financial_contract,access_financial_contract,model_financial_contract,base.group_user,1,1,1,1 +access_financial_condition_precedent,access_financial_condition_precedent,model_financial_condition_precedent,base.group_user,1,1,1,1 +access_financial_condition_precedent_contract,access_financial_condition_precedent_contract,model_financial_condition_precedent_contract,base.group_user,1,1,1,1 diff --git a/views/financial_condition_precedent.xml b/views/financial_condition_precedent.xml new file mode 100644 index 0000000..86b5c2a --- /dev/null +++ b/views/financial_condition_precedent.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + + <record id="financial_condition_precedent_form_view" model="ir.ui.view"> + <field name="name">financial_condition_precedent.form + </field> + <field name="model">financial.condition.precedent</field> + <field name="arch" type="xml"> + <form string="Conditions"> + <sheet> + <div class="oe_title"> + <label for="name" /> + <h1> + <field name="name" placeholder="Name" /> + </h1> + </div> + <group> + <field name="category" /> + </group> + </sheet> + </form> + </field> + </record> + + <record id="financial_condition_precedent_tree_view" model="ir.ui.view"> + <field name="name">financial_condition_precedent.tree + </field> + <field name="model">financial.condition.precedent</field> + <field name="arch" type="xml"> + <tree string="Conditions"> + <field name="name" /> + </tree> + </field> + </record> + + + <record + id="financial_condition_precedent_act_window" + model="ir.actions.act_window" + > + <field name="name">Conditions</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">financial.condition.precedent</field> + <field name="view_mode">tree,form</field> + </record> + </data> +</odoo> diff --git a/views/financial_condition_precedent_contract.xml b/views/financial_condition_precedent_contract.xml new file mode 100644 index 0000000..32d1655 --- /dev/null +++ b/views/financial_condition_precedent_contract.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + + <record + id="financial_condition_precedent_contract_view_form" + model="ir.ui.view" + > + <field + name="name" + >financial_condition_precedent_contract_view_form</field> + <field name="model">financial.condition.precedent.contract</field> + <field name="arch" type="xml"> + <form string="financial_condition_precedent_contract_form"> + <sheet> + <group> + <field name="condition_precedent_id" /> + <field name="raised" /> + </group> + </sheet> + </form> + </field> + </record> + + <record + id="financial_condition_precedent_contract_view_tree" + model="ir.ui.view" + > + <field + name="name" + >financial_condition_precedent_contract_view_tree</field> + <field name="model">financial.condition.precedent.contract</field> + <field name="arch" type="xml"> + <tree string="financial_condition_precedent_contract_tree"> + <field name="name" /> + <field name="raised" /> + </tree> + </field> + </record> + + <record + id="financial_condition_precedent_contract_action" + model="ir.actions.act_window" + > + <field name="name">financial_condition_precedent_contract</field> + <field name="type">ir.actions.act_window</field> + <field + name="res_model" + >financial.condition.precedent.contract</field> + <field name="view_mode">tree,form</field> + </record> + </data> +</odoo> diff --git a/views/financial_contract.xml b/views/financial_contract.xml index 52a19e2..b61dee9 100644 --- a/views/financial_contract.xml +++ b/views/financial_contract.xml @@ -30,6 +30,11 @@ /> </group> </group> + <notebook> + <page string="Conditions precedent"> + <field name="condition_precedent_contract_ids" /> + </page> + </notebook> </sheet> <div class="oe_chatter"> <field name="message_follower_ids" /> @@ -50,7 +55,7 @@ <field name="name" /> <field name="partner_id" /> <field name="state" /> -<!-- <field name="total_amount" />--> + <!-- <field name="total_amount" />--> </tree> </field> </record> @@ -73,22 +78,24 @@ <t t-name="kanban-box"> <div class="oe_kanban_global_click"> <!-- TODO: Ajouter css pour bandeau archivage --> -<!-- <div class="ribbon ribbon-top-right" attrs="{'invisible': [('active', '=', True)]}">--> -<!-- <span class="bg-danger">Archivé</span>--> -<!-- </div>--> + <!-- <div class="ribbon ribbon-top-right" attrs="{'invisible': [('active', '=', True)]}">--> + <!-- <span class="bg-danger">Archivé</span>--> + <!-- </div>--> <div class="oe_kanban_content"> <div class="o_kanban_record_title"> - <strong><field name="name" /> - <field - name="partner_id" - /></strong> + <strong> + <field name="name" /> + - + <field name="partner_id" /> + </strong> </div> <div class="o_kanban_record_subtitle"> -<!-- <t t-if="record.total_amount.raw_value">--> -<!-- <field--> -<!-- name="total_amount"--> -<!-- widget="monetary"--> -<!-- options="{'currency_field': 'currency_id'}"/>--> -<!-- </t>--> + <!-- <t t-if="record.total_amount.raw_value">--> + <!-- <field--> + <!-- name="total_amount"--> + <!-- widget="monetary"--> + <!-- options="{'currency_field': 'currency_id'}"/>--> + <!-- </t>--> </div> <div class="oe_clear" /> </div> diff --git a/views/menus.xml b/views/menus.xml index 20baa72..e16c3f6 100644 --- a/views/menus.xml +++ b/views/menus.xml @@ -17,17 +17,31 @@ sequence="10" /> <!-- Configuration --> -<!-- <menuitem--> -<!-- id="menu_financial_deal_config"--> -<!-- name="Configuration"--> -<!-- parent="financial_deal_menu_root"--> -<!-- sequence="100"--> -<!-- />--> -<!-- <menuitem--> -<!-- id="menu_financial_deal"--> -<!-- name="Partenaires financiers"--> -<!-- parent="menu_financial_deal_config"--> -<!-- action="financial_deal_partner_act_window"--> -<!-- sequence="10"--> -<!-- />--> + <menuitem + id="menu_financial_contract_configuration" + name="Configuration" + parent="financial_contract_menu_root" + sequence="10" + /> + + <menuitem + id="menu_financial_condition_precedent" + name="Conditions" + parent="menu_financial_contract_configuration" + action="financial_condition_precedent_act_window" + sequence="10" + /> + <!-- <menuitem--> + <!-- id="menu_financial_deal_config"--> + <!-- name="Configuration"--> + <!-- parent="financial_deal_menu_root"--> + <!-- sequence="100"--> + <!-- />--> + <!-- <menuitem--> + <!-- id="menu_financial_deal"--> + <!-- name="Partenaires financiers"--> + <!-- parent="menu_financial_deal_config"--> + <!-- action="financial_deal_partner_act_window"--> + <!-- sequence="10"--> + <!-- />--> </odoo> -- GitLab