From d8b435665defd08a53e1f1b605db2ff34bc08fd6 Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Wed, 24 Jan 2024 17:37:21 +0100 Subject: [PATCH] [UPD] project view and delete cascade for project_partner and project_category --- models/afac_project_category.py | 8 +++++++- models/afac_project_partner.py | 5 ++++- views/afac_project.xml | 29 ++++++++++++++++++++++++++++- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/models/afac_project_category.py b/models/afac_project_category.py index fb71abc..4a607d6 100644 --- a/models/afac_project_category.py +++ b/models/afac_project_category.py @@ -9,7 +9,13 @@ class AfacProjectCategory(models.Model): _description = "Sous Projets AFAC" name = fields.Char("Nom", required=True) - project_id = fields.Many2one(comodel_name="afac.project", string="Projet") + project_id = fields.Many2one( + comodel_name="afac.project", + string="Projet", + ondelete="cascade", + required=True + ) + active = fields.Boolean(related="project_id.active") company_id = fields.Many2one( comodel_name="res.company", string="Société", diff --git a/models/afac_project_partner.py b/models/afac_project_partner.py index c186893..98a937c 100644 --- a/models/afac_project_partner.py +++ b/models/afac_project_partner.py @@ -19,12 +19,15 @@ class AfacProjectPartner(models.Model): return [] partner_id = fields.Many2one( - comodel_name="res.partner", string="Contact", required=True + comodel_name="res.partner", string="Contact", ondelete="cascade", required=True ) project_id = fields.Many2one( comodel_name="afac.project", string="Projet", + ondelete="cascade", + requird=True ) + active = fields.Boolean(related="project_id.active") project_cat_ids = fields.Many2many( comodel_name="afac.project.category", relation="afac_partner_project_category_rel", diff --git a/views/afac_project.xml b/views/afac_project.xml index d70c0c7..acc9bc7 100644 --- a/views/afac_project.xml +++ b/views/afac_project.xml @@ -4,6 +4,19 @@ <odoo> <data> + <!-- Search view --> + <record model="ir.ui.view" id="afac_project_search"> + <field name="name">afac.project.search</field> + <field name="model">afac.project</field> + <field name="arch" type="xml"> + <search string="Projets"> + <field name="name" string="Nom du projet"/> + <filter name="active" string="Archivés" domain="[('active', '=', False)]"/> + <filter name="active" string="Tous" domain="[('active', 'in', (True, False))]"/> + </search> + </field> + </record> + <!-- Tree view --> <record model="ir.ui.view" id="afac_project_tree"> <field name="name">afac.project.tree</field> @@ -34,11 +47,25 @@ icon="fa-users" > </button> + <button + name="toggle_active" + string="Restaurer" + type="object" + attrs="{'invisible': [('active', '=', True)]}" + icon="fa-archive" + /> + <button + name="toggle_active" + string="Archiver" + type="object" + attrs="{'invisible': [('active', '!=', True)]}" + icon="fa-archive" + /> </div> <widget name="web_ribbon" title="Archivé" - bg_color="bg-warning" + bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}" /> <div class="oe_title"> -- GitLab