bemade-addons/bemade_fsm/models/res_partner.py

62 lines
1.8 KiB
Python
Raw Normal View History

2024-06-11 21:26:26 -04:00
from odoo import api, fields, models
2023-11-16 09:01:22 -05:00
class Partner(models.Model):
2024-06-11 21:26:26 -04:00
_inherit = "res.partner"
2023-11-16 09:01:22 -05:00
is_site_contact = fields.Boolean(
2024-06-11 21:26:26 -04:00
string="Is a site contact",
2023-11-16 09:01:22 -05:00
compute="_compute_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."
)
2023-11-16 09:01:22 -05:00
site_ids = fields.Many2many(
2024-06-11 21:26:26 -04:00
string="Work Sites",
comodel_name="res.partner",
relation="res_partner_site_contact_rel",
column1="site_contact_id",
column2="site_id",
tracking=True,
domain=[("is_service_site", "=", True)],
2023-11-16 09:01:22 -05:00
)
site_contacts = fields.Many2many(
2024-06-11 21:26:26 -04:00
comodel_name="res.partner",
relation="res_partner_site_contact_rel",
column1="site_id",
column2="site_contact_id",
domain=[("is_service_site", "=", False)],
2024-06-11 21:26:26 -04:00
tracking=True,
2023-11-16 09:01:22 -05:00
)
work_order_contacts = fields.Many2many(
2024-06-11 21:26:26 -04:00
string="Work Order Recipients",
comodel_name="res.partner",
relation="res_partner_work_order_contacts_rel",
column1="res_partner_id",
column2="work_order_contact_id",
domain=[("is_service_site", "=", False)],
2024-06-11 21:26:26 -04:00
tracking=True,
2023-11-16 09:01:22 -05:00
)
2024-06-11 21:26:26 -04:00
@api.depends("site_ids")
def _compute_is_site_contact(self):
for rec in self:
2024-06-19 09:47:49 -04:00
rec.is_site_contact = rec.site_ids
@api.model
def _search_is_site_contact(self, operator, value):
2024-06-19 09:36:57 -04:00
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
)