bemade_fsm: improve visibility of pages on partners based on is_service_site logic

This commit is contained in:
Marc Durepos 2024-10-02 09:57:50 +02:00
parent 306ffae80b
commit 188f7afbd1
3 changed files with 21 additions and 5 deletions

View file

@ -20,7 +20,7 @@
######################################################################################## ########################################################################################
{ {
"name": "Improved Field Service Management", "name": "Improved Field Service Management",
"version": "17.0.0.4.1", "version": "17.0.0.4.2",
"summary": ( "summary": (
"Adds functionality necessary for managing field service operations at Durpro." "Adds functionality necessary for managing field service operations at Durpro."
), ),

View file

@ -10,6 +10,11 @@ class Partner(models.Model):
search="_search_is_site_contact", 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( site_ids = fields.Many2many(
string="Work Sites", string="Work Sites",
comodel_name="res.partner", comodel_name="res.partner",
@ -17,6 +22,7 @@ class Partner(models.Model):
column1="site_contact_id", column1="site_contact_id",
column2="site_id", column2="site_id",
tracking=True, tracking=True,
domain=[("is_service_site", "=", True)],
) )
site_contacts = fields.Many2many( site_contacts = fields.Many2many(
@ -24,7 +30,7 @@ class Partner(models.Model):
relation="res_partner_site_contact_rel", relation="res_partner_site_contact_rel",
column1="site_id", column1="site_id",
column2="site_contact_id", column2="site_contact_id",
domain=[("is_company", "=", False)], domain=[("is_service_site", "=", False)],
tracking=True, tracking=True,
) )
@ -34,7 +40,7 @@ class Partner(models.Model):
relation="res_partner_work_order_contacts_rel", relation="res_partner_work_order_contacts_rel",
column1="res_partner_id", column1="res_partner_id",
column2="work_order_contact_id", column2="work_order_contact_id",
domain=[("is_company", "=", False)], domain=[("is_service_site", "=", False)],
tracking=True, tracking=True,
) )
@ -46,3 +52,10 @@ class Partner(models.Model):
@api.model @api.model
def _search_is_site_contact(self, operator, value): def _search_is_site_contact(self, operator, value):
return [("site_ids", "!=", False)] 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
)

View file

@ -9,7 +9,9 @@
/> />
<field name="arch" type="xml"> <field name="arch" type="xml">
<page name="equipment" position="after"> <page name="equipment" position="after">
<page name="Service Contacts" invisible="not is_company"> <page
name="Service Contacts"
invisible="site_ids">
<field <field
name="site_contacts" name="site_contacts"
context="{'tree_view_ref': 'bemade_fsm.fsm_contacts_view_tree'}" context="{'tree_view_ref': 'bemade_fsm.fsm_contacts_view_tree'}"
@ -19,7 +21,8 @@
context="{'tree_view_ref': 'bemade_fsm.fsm_contacts_view_tree'}" context="{'tree_view_ref': 'bemade_fsm.fsm_contacts_view_tree'}"
/> />
</page> </page>
<page name="Service Sites" invisible="is_company"> <field name="is_service_site" invisible="True"/>
<page name="Service Sites" invisible="is_service_site">
<group> <group>
<field name="site_ids"> <field name="site_ids">
<tree editable="bottom"> <tree editable="bottom">