From cee2bac0f44f5c71dcd064f40a6be18a69ff4963 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 21 Oct 2017 10:50:22 +0200 Subject: [PATCH] Reset carrier to None only when there is no available carriers issue6863 review35701002 --- sale.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sale.py b/sale.py index 2323a21c44..3e43ae502d 100644 --- a/sale.py +++ b/sale.py @@ -135,13 +135,14 @@ class Sale: # XXX We must have the same depends than on_change_with_available_carriers, # for now it is maintain manually until we can specify cross-kind depends # on on_changes - @fields.depends('warehouse', 'shipment_address') + @fields.depends('carrier', 'warehouse', 'shipment_address') def on_change_party(self): super(Sale, self).on_change_party() self.available_carriers = self.on_change_with_available_carriers() - if self.available_carriers: + if self.available_carriers and (not self.carrier + or self.carrier not in self.available_carriers): self.carrier = self.available_carriers[0] - else: + elif not self.available_carriers: self.carrier = None @fields.depends('carrier', 'warehouse', 'shipment_address') @@ -151,7 +152,7 @@ class Sale: if self.available_carriers and (not self.carrier or self.carrier not in self.available_carriers): self.carrier = self.available_carriers[0] - else: + elif not self.available_carriers: self.carrier = None @fields.depends('carrier', 'warehouse', 'shipment_address') @@ -167,7 +168,7 @@ class Sale: if self.available_carriers and (not self.carrier or self.carrier not in self.available_carriers): self.carrier = self.available_carriers[0] - else: + elif not self.available_carriers: self.carrier = None @classmethod