diff --git a/__manifest__.py b/__manifest__.py index 7c8f7ef224dc85b5bdb3f99ba7bc25907ea74631..7e17d4052ca0b65d8e5f92a8723960b58f4e3682 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.xml", + "views/financial_condition_contract.xml", "views/res_partner.xml", # views menu "views/menus.xml", diff --git a/models/__init__.py b/models/__init__.py index 2bddc2e78aa96a512e3298b717abc4eeb026ae20..6f8db4ae0657ff750ada01297c503e750a940946 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -1,2 +1,4 @@ from . import financial_contract from . import res_partner +from . import financial_condition +from . import financial_condition_contract diff --git a/models/financial_condition.py b/models/financial_condition.py new file mode 100644 index 0000000000000000000000000000000000000000..02b68cfc66136d64bc6623f1ff3149ff20b67843 --- /dev/null +++ b/models/financial_condition.py @@ -0,0 +1,42 @@ +# 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 FinancialCondition(models.Model): + _name = "financial.condition" + _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 + # ------------------------------------------------------ diff --git a/models/financial_condition_contract.py b/models/financial_condition_contract.py new file mode 100644 index 0000000000000000000000000000000000000000..b0b0f2b38b7e0db67bb58369d53570291c66135a --- /dev/null +++ b/models/financial_condition_contract.py @@ -0,0 +1,47 @@ +# 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 FinancialConditionContract(models.Model): + _name = "financial.condition.contract" + _description = "Link between a condition precedent and a contract" + _rec_name = "condition_id" + # ------------------------------------------------------ + # Fields declaration + # ------------------------------------------------------ + name = fields.Char() + condition_id = fields.Many2one("financial.condition") + contract_id = fields.Many2one("financial.contract") + raised = fields.Boolean() + milestone = fields.Date() + comment = fields.Text() + + # ------------------------------------------------------ + # SQL Constraints + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Default methods + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Computed fields / Search Fields + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Onchange / Constraints + # ------------------------------------------------------ + + # ------------------------------------------------------ + # CRUD methods (ORM overrides) + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Actions + # ------------------------------------------------------ + + # ------------------------------------------------------ + # Business methods + # ------------------------------------------------------ diff --git a/models/financial_contract.py b/models/financial_contract.py index 431aa7df77a46c03ecf0331fe4bbda579ece7168..e0e30e779f0c93c82a3a75cb6fc8a956b38d7a28 100644 --- a/models/financial_contract.py +++ b/models/financial_contract.py @@ -44,6 +44,12 @@ class FinancialContract(models.Model): currency_id = fields.Many2one( comodel_name="res.currency", related="company_id.currency_id" ) + condition_contract_ids = fields.One2many( + "financial.condition.contract", + string="Conditions", + inverse_name="contract_id", + domain="[('contract_id','=','active_id')]", + ) # ------------------------------------------------------ # Computed fields / Search Fields diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 7f16336b4225251077227ddf1d5ee7c105c0e570..74d757b6c41a50d9249ea1789fbe117215bbf1b7 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,access_financial_condition,model_financial_condition,base.group_user,1,1,1,1 +access_financial_condition_contract,access_financial_condition_contract,model_financial_condition_contract,base.group_user,1,1,1,1 diff --git a/views/financial_condition.xml b/views/financial_condition.xml new file mode 100644 index 0000000000000000000000000000000000000000..4366c07f282f8774351ca1fd946f409f100919cd --- /dev/null +++ b/views/financial_condition.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + + <record id="financial_condition_form_view" model="ir.ui.view"> + <field name="name">financial_condition.form + </field> + <field name="model">financial.condition</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_tree_view" model="ir.ui.view"> + <field name="name">financial_condition.tree + </field> + <field name="model">financial.condition</field> + <field name="arch" type="xml"> + <tree string="Conditions"> + <field name="name" /> + </tree> + </field> + </record> + + + <record + id="financial_condition_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</field> + <field name="view_mode">tree,form</field> + </record> + </data> +</odoo> diff --git a/views/financial_condition_contract.xml b/views/financial_condition_contract.xml new file mode 100644 index 0000000000000000000000000000000000000000..acab917bc04f1179cfa9b2382d3808bf8b808c85 --- /dev/null +++ b/views/financial_condition_contract.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <data> + + <record id="financial_condition_contract_view_form" model="ir.ui.view"> + <field name="name">financial_condition_contract_view_form + </field> + <field name="model">financial.condition.contract</field> + <field name="arch" type="xml"> + <form string="financial_condition_contract_form"> + <sheet> + <group> + <field name="condition_id" /> + <field name="raised" /> + <field name="milestone" /> + <field name="comment" /> + </group> + </sheet> + </form> + </field> + </record> + + <record id="financial_conditioncontract_view_tree" model="ir.ui.view"> + <field name="name">financial_condition_contract_view_tree + </field> + <field name="model">financial.condition.contract</field> + <field name="arch" type="xml"> + <tree string="financial_condition_contract_tree"> + <field name="name" /> + <field name="raised" /> + <field name="milestone" /> + <field name="comment" /> + </tree> + </field> + </record> + + <record + id="financial_condition_contract_action" + model="ir.actions.act_window" + > + <field name="name">financial_condition_contract</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">financial.condition.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 52a19e26bc13a2c9ea522793070ba014f0e8b1c4..93753761ba4d345a8ec7b4ca197811e4330567c8 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_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 20baa72a65209d95a12700a44ce796d4f693226f..ccc8e91a9b2c54d30c88a69647b527933b967c1d 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" + name="Conditions" + parent="menu_financial_contract_configuration" + action="financial_condition_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>