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