[FIX] sale_stock: translate product name
Use case: have a partner in fr_FR while operating with a user in en_US Create a SO for that partner add a product which name is translated in french Before this commit, the description of the sale order line takes the *untranslated* name of the product After this commit, it takes the *translated* name of the product The issue was due to a limitation of sudoing within an onchange for related fields (typically the case of product.product.name) In this case, values that are missing in the cache are retrieved from another one In our case: First, _onchange_product_id_check_availability triggers the evaluation of product.name as sudo (later in the stack), without lang in context Second, the function that actually uses the product.name (product_id_change) retrieves the value found before from the 'wrong' cache OPW 1863305, 1884106 closes #27031
This commit is contained in:
@@ -163,7 +163,10 @@ class SaleOrderLine(models.Model):
|
||||
return {}
|
||||
if self.product_id.type == 'product':
|
||||
precision = self.env['decimal.precision'].precision_get('Product Unit of Measure')
|
||||
product = self.product_id.with_context(warehouse=self.order_id.warehouse_id.id)
|
||||
product = self.product_id.with_context(
|
||||
warehouse=self.order_id.warehouse_id.id,
|
||||
lang=self.order_id.partner_id.lang or self.env.user.lang or 'en_US'
|
||||
)
|
||||
product_qty = self.product_uom._compute_quantity(self.product_uom_qty, self.product_id.uom_id)
|
||||
if float_compare(product.virtual_available, product_qty, precision_digits=precision) == -1:
|
||||
is_available = self._check_routing()
|
||||
|
||||
Reference in New Issue
Block a user