diff options
| author | Pierre Masereel <pim@odoo.com> | 2019-04-23 13:40:54 +0000 |
|---|---|---|
| committer | Pierre Masereel <pim@odoo.com> | 2020-02-04 12:57:52 +0000 |
| commit | 2c079fcd107caec3a25e2a78d4d0e5af1d8237da (patch) | |
| tree | 6cc71298daf06f665879719e475656cda3f8514f /addons/product | |
| parent | bd1edc62f31f5426549bb88615486934ceff389c (diff) | |
[IMP] product,delivery: improve unit of measure display
Diffstat (limited to 'addons/product')
| -rw-r--r-- | addons/product/models/product_template.py | 45 | ||||
| -rw-r--r-- | addons/product/models/res_config_settings.py | 4 | ||||
| -rw-r--r-- | addons/product/views/res_config_settings_views.xml | 10 |
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"> |
