bemade_fsm: Updating SO delivery address correctly changes site contacts, work order recipients and equipment. Fixes #53.

This commit is contained in:
Marc Durepos 2023-07-10 14:54:03 -04:00
parent 8fc8c6ae26
commit 281cf6a379
2 changed files with 15 additions and 5 deletions

View file

@ -6,7 +6,10 @@ class SaleOrder(models.Model):
equipment_id = fields.Many2one(comodel_name="bemade_fsm.equipment",
string="Equipment to Service",
tracking=True)
tracking=True,
compute="_compute_equipment",
inverse="_inverse_equipment",
store=True)
site_contacts = fields.Many2many(comodel_name='res.partner',
relation="sale_order_site_contacts_rel",
@ -22,7 +25,13 @@ class SaleOrder(models.Model):
string='Work Order Recipients',
store=True)
@api.depends('partner_id')
@api.onchange('partner_shipping_id')
def _onchange_partner_shipping_id(self):
super()._onchange_partner_shipping_id()
self._compute_equipment()
self._compute_default_contacts()
@api.depends('partner_shipping_id')
def _compute_default_contacts(self):
for rec in self:
rec.site_contacts = rec.partner_shipping_id.site_contacts
@ -31,10 +40,10 @@ class SaleOrder(models.Model):
def _inverse_default_contacts(self):
pass
@api.depends('partner_id')
@api.depends('partner_shipping_id')
def _compute_equipment(self):
for rec in self:
rec.equipment_ids = self.partner_shipping_id.equipment_ids if len(
rec.equipment_id = self.partner_shipping_id.equipment_ids if len(
self.partner_shipping_id.equipment_ids) <= 1 else False
def _inverse_equipment(self):

View file

@ -110,7 +110,8 @@ class TestSalesOrder(TestTaskTemplateCommon):
# Marking a child task done should not create a sale order
child_task.action_fsm_validate()
self.assertFalse(child_task.sale_order_id)
# TODO: Add a test for updating equipment, site contacts and work order contacts on the
# sale order when modifying the partner_shipping_id field on the SO.
@tagged("-at_install", "post_install", 'focus')
class TestSaleOrderTour(HttpCase, TestSalesOrder):