fix: rewrite logic for duplicate check in Item Attribute

Previously, Item Attribute values were not checked for case-insensitive duplicates, and Item tttribute abbreviations were forced to be uppercase. This commit fixes both problems.
This commit is contained in:
unknown 2023-01-12 07:44:57 +05:30
parent 9ab8aa49d6
commit 974e12c837

View File

@ -74,11 +74,12 @@ class ItemAttribute(Document):
def validate_duplication(self):
values, abbrs = [], []
for d in self.item_attribute_values:
d.abbr = d.abbr.upper()
if d.attribute_value in values:
frappe.throw(_("{0} must appear only once").format(d.attribute_value))
if d.attribute_value.lower() in map(str.lower, values):
frappe.throw(
_("Attribute value: {0} must appear only once").format(d.attribute_value.title()))
values.append(d.attribute_value)
if d.abbr in abbrs:
frappe.throw(_("{0} must appear only once").format(d.abbr))
if d.abbr.lower() in map(str.lower, abbrs):
frappe.throw(
_("Abbreviation: {0} must appear only once").format(d.abbr.title()))
abbrs.append(d.abbr)