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): def validate_duplication(self):
values, abbrs = [], [] values, abbrs = [], []
for d in self.item_attribute_values: for d in self.item_attribute_values:
d.abbr = d.abbr.upper() if d.attribute_value.lower() in map(str.lower, values):
if d.attribute_value in values: frappe.throw(
frappe.throw(_("{0} must appear only once").format(d.attribute_value)) _("Attribute value: {0} must appear only once").format(d.attribute_value.title()))
values.append(d.attribute_value) values.append(d.attribute_value)
if d.abbr in abbrs: if d.abbr.lower() in map(str.lower, abbrs):
frappe.throw(_("{0} must appear only once").format(d.abbr)) frappe.throw(
_("Abbreviation: {0} must appear only once").format(d.abbr.title()))
abbrs.append(d.abbr) abbrs.append(d.abbr)