summaryrefslogtreecommitdiff
path: root/addons/product
diff options
context:
space:
mode:
authorPierre Masereel <pim@odoo.com>2019-04-23 13:40:54 +0000
committerPierre Masereel <pim@odoo.com>2020-02-04 12:57:52 +0000
commit2c079fcd107caec3a25e2a78d4d0e5af1d8237da (patch)
tree6cc71298daf06f665879719e475656cda3f8514f /addons/product
parentbd1edc62f31f5426549bb88615486934ceff389c (diff)
[IMP] product,delivery: improve unit of measure display
Diffstat (limited to 'addons/product')
-rw-r--r--addons/product/models/product_template.py45
-rw-r--r--addons/product/models/res_config_settings.py4
-rw-r--r--addons/product/views/res_config_settings_views.xml10
3 files changed, 41 insertions, 18 deletions
diff --git a/addons/product/models/product_template.py b/addons/product/models/product_template.py
index 8e399829112..aed3e0dc752 100644
--- a/addons/product/models/product_template.py
+++ b/addons/product/models/product_template.py
@@ -275,30 +275,53 @@ class ProductTemplate(models.Model):
by adding an ir.config_parameter record with "product.product_weight_in_lbs" as key
and "1" as value.
"""
- get_param = self.env['ir.config_parameter'].sudo().get_param
- product_weight_in_lbs_param = get_param('product.weight_in_lbs')
+ product_weight_in_lbs_param = self.env['ir.config_parameter'].sudo().get_param('product.weight_in_lbs')
if product_weight_in_lbs_param == '1':
return self.env.ref('uom.product_uom_lb')
else:
return self.env.ref('uom.product_uom_kgm')
@api.model
- def _get_weight_uom_name_from_ir_config_parameter(self):
- return self._get_weight_uom_id_from_ir_config_parameter().display_name
-
- def _compute_weight_uom_name(self):
- for template in self:
- template.weight_uom_name = self._get_weight_uom_name_from_ir_config_parameter()
+ def _get_length_uom_id_from_ir_config_parameter(self):
+ """ Get the unit of measure to interpret the `length`, 'width', 'height' field.
+ By default, we considerer that length are expressed in meters. Users can configure
+ to express them in feet by adding an ir.config_parameter record with "product.volume_in_cubic_feet"
+ as key and "1" as value.
+ """
+ product_length_in_feet_param = self.env['ir.config_parameter'].sudo().get_param('product.volume_in_cubic_feet')
+ if product_length_in_feet_param == '1':
+ return self.env.ref('uom.product_uom_foot')
+ else:
+ return self.env.ref('uom.product_uom_meter')
@api.model
- def _get_volume_uom_name_from_ir_config_parameter(self):
+ def _get_volume_uom_id_from_ir_config_parameter(self):
""" Get the unit of measure to interpret the `volume` field. By default, we consider
that volumes are expressed in cubic meters. Users can configure to express them in cubic feet
by adding an ir.config_parameter record with "product.volume_in_cubic_feet" as key
and "1" as value.
"""
- get_param = self.env['ir.config_parameter'].sudo().get_param
- return "ft³" if get_param('product.volume_in_cubic_feet') == '1' else "m³"
+ product_length_in_feet_param = self.env['ir.config_parameter'].sudo().get_param('product.volume_in_cubic_feet')
+ if product_length_in_feet_param == '1':
+ return self.env.ref('uom.product_uom_cubic_foot')
+ else:
+ return self.env.ref('uom.product_uom_cubic_meter')
+
+ @api.model
+ def _get_weight_uom_name_from_ir_config_parameter(self):
+ return self._get_weight_uom_id_from_ir_config_parameter().display_name
+
+ @api.model
+ def _get_length_uom_name_from_ir_config_parameter(self):
+ return self._get_length_uom_id_from_ir_config_parameter().display_name
+
+ @api.model
+ def _get_volume_uom_name_from_ir_config_parameter(self):
+ return self._get_volume_uom_id_from_ir_config_parameter().display_name
+
+ def _compute_weight_uom_name(self):
+ for template in self:
+ template.weight_uom_name = self._get_weight_uom_name_from_ir_config_parameter()
def _compute_volume_uom_name(self):
for template in self:
diff --git a/addons/product/models/res_config_settings.py b/addons/product/models/res_config_settings.py
index 5c740e8ea8c..96bbc88c5f9 100644
--- a/addons/product/models/res_config_settings.py
+++ b/addons/product/models/res_config_settings.py
@@ -26,8 +26,8 @@ class ResConfigSettings(models.TransientModel):
], default='basic', string="Pricelists Method", config_parameter='product.product_pricelist_setting',
help="Multiple prices: Pricelists with fixed price rules by product,\nAdvanced rules: enables advanced price rules for pricelists.")
product_weight_in_lbs = fields.Selection([
- ('0', 'Kilogram'),
- ('1', 'Pound'),
+ ('0', 'Kilograms'),
+ ('1', 'Pounds'),
], 'Weight unit of measure', config_parameter='product.weight_in_lbs', default='0')
product_volume_volume_in_cubic_feet = fields.Selection([
('0', 'Cubic Meters'),
diff --git a/addons/product/views/res_config_settings_views.xml b/addons/product/views/res_config_settings_views.xml
index 4e430f7fcff..3325b056a4b 100644
--- a/addons/product/views/res_config_settings_views.xml
+++ b/addons/product/views/res_config_settings_views.xml
@@ -6,15 +6,15 @@
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@id='multi_company']" position="before">
- <h2>Products</h2>
+ <h2>Units of Measure</h2>
<div class="row mt16 o_settings_container" id="product_general_settings">
<div class="col-12 col-lg-6 o_setting_box" id="weight_uom_setting">
<div class="o_setting_left_pane">
</div>
<div class="o_setting_right_pane">
- <label for="product_weight_in_lbs" string="Weight Measurement"/>
+ <label for="product_weight_in_lbs" string="Weight UoM"/>
<div class="text-muted">
- Choose the unit to measure weight
+ Define your weight unit of measure
</div>
<div class="content-group">
<div class="mt16">
@@ -25,9 +25,9 @@
</div>
<div class="col-12 col-lg-6 o_setting_box" id="manage_volume_uom_setting">
<div class="o_setting_right_pane">
- <label for="product_volume_volume_in_cubic_feet"/>
+ <label for="product_volume_volume_in_cubic_feet" string="Volume UoM "/>
<div class="text-muted">
- In which unit of measure do you manage your volumes
+ Define your volume unit of measure
</div>
<div class="content-group">
<div class="mt16">