From 188f7afbd14f733c78a11eb17eb907114801a4d3 Mon Sep 17 00:00:00 2001 From: Marc Durepos Date: Wed, 2 Oct 2024 09:57:50 +0200 Subject: [PATCH] bemade_fsm: improve visibility of pages on partners based on is_service_site logic --- bemade_fsm/__manifest__.py | 2 +- bemade_fsm/models/res_partner.py | 17 +++++++++++++++-- bemade_fsm/views/res_partner.xml | 7 +++++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/bemade_fsm/__manifest__.py b/bemade_fsm/__manifest__.py index e981190..ddd94e1 100644 --- a/bemade_fsm/__manifest__.py +++ b/bemade_fsm/__manifest__.py @@ -20,7 +20,7 @@ ######################################################################################## { "name": "Improved Field Service Management", - "version": "17.0.0.4.1", + "version": "17.0.0.4.2", "summary": ( "Adds functionality necessary for managing field service operations at Durpro." ), diff --git a/bemade_fsm/models/res_partner.py b/bemade_fsm/models/res_partner.py index 4a09720..8d9c0ed 100644 --- a/bemade_fsm/models/res_partner.py +++ b/bemade_fsm/models/res_partner.py @@ -10,6 +10,11 @@ class Partner(models.Model): search="_search_is_site_contact", ) + is_service_site = fields.Boolean( + help="A partner is a service site if they have one or more equipments, " + "site contacts or work order contacts." + ) + site_ids = fields.Many2many( string="Work Sites", comodel_name="res.partner", @@ -17,6 +22,7 @@ class Partner(models.Model): column1="site_contact_id", column2="site_id", tracking=True, + domain=[("is_service_site", "=", True)], ) site_contacts = fields.Many2many( @@ -24,7 +30,7 @@ class Partner(models.Model): relation="res_partner_site_contact_rel", column1="site_id", column2="site_contact_id", - domain=[("is_company", "=", False)], + domain=[("is_service_site", "=", False)], tracking=True, ) @@ -34,7 +40,7 @@ class Partner(models.Model): relation="res_partner_work_order_contacts_rel", column1="res_partner_id", column2="work_order_contact_id", - domain=[("is_company", "=", False)], + domain=[("is_service_site", "=", False)], tracking=True, ) @@ -46,3 +52,10 @@ class Partner(models.Model): @api.model def _search_is_site_contact(self, operator, value): return [("site_ids", "!=", False)] + + @api.depends("equipment_ids", "site_contacts", "work_order_contacts") + def _compute_is_service_site(self): + for rec in self: + rec.is_service_site = ( + rec.equipment_ids or rec.site_contacts or rec.work_order_contacts + ) diff --git a/bemade_fsm/views/res_partner.xml b/bemade_fsm/views/res_partner.xml index 7c04e8b..df4f948 100644 --- a/bemade_fsm/views/res_partner.xml +++ b/bemade_fsm/views/res_partner.xml @@ -9,7 +9,9 @@ /> - + - + +