diff --git a/models/afac_project_category.py b/models/afac_project_category.py index fb71abc804aa3287d9bd931c3e2cc3a6e4f27a89..4a607d6f62f261cacc7a13ca608f411b45485e50 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 c186893ee44bca8ef7e25bc6859b7e840ded6b15..98a937c314f4d794c5e6f32b3eefaf6709f2091f 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 d70c0c7cdb90dec0b8f5a000fabf6c0c5d556249..acc9bc791f2f10da266e8c9ecfae4dd342cd3e32 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">