diff --git a/modules/product/product.py b/modules/product/product.py index b952ae9662..d8ff8151d1 100644 --- a/modules/product/product.py +++ b/modules/product/product.py @@ -649,6 +649,13 @@ class Product( for product in products: code = ''.join(filter(None, [ product.prefix_code, product.suffix_code])) + if cls.code.strip: + if cls.code.strip == 'leading': + code = code.lstrip() + elif cls.code.strip == 'trailing': + code = code.rstrip() + else: + code = code.strip() if not code: code = None if code != product.code: diff --git a/modules/product/tests/scenario_product_variant.rst b/modules/product/tests/scenario_product_variant.rst index 91ea8cf72a..87df934299 100644 --- a/modules/product/tests/scenario_product_variant.rst +++ b/modules/product/tests/scenario_product_variant.rst @@ -60,3 +60,26 @@ Change template code:: >>> template.save() >>> sorted([p.code for p in template.products]) ['PRD001', 'PRD002'] + +Create template with trailing space in code:: + + >>> template = ProductTemplate() + >>> template.name = "Product" + >>> template.code = "TRAILING " + >>> template.default_uom = unit + >>> template.save() + >>> product, = template.products + >>> product.code + 'TRAILING' + +Create product with leading space in code:: + + >>> template = ProductTemplate() + >>> template.name = "Product" + >>> template.default_uom = unit + >>> product, = template.products + >>> product.suffix_code = " LEADING" + >>> template.save() + >>> product, = template.products + >>> product.code + 'LEADING'