fix: Order Item attribute values dynamically

This commit is contained in:
Faris Ansari 2019-04-25 13:03:50 +05:30
parent 07e005f963
commit dd201b0797

View File

@ -167,8 +167,13 @@ def get_attributes_and_values(item_code):
if attribute in attribute_list: if attribute in attribute_list:
valid_options.setdefault(attribute, set()).add(attribute_value) valid_options.setdefault(attribute, set()).add(attribute_value)
item_attribute_values = frappe.db.get_all('Item Attribute Value',
['parent', 'attribute_value', 'idx'], order_by='parent asc, idx asc')
ordered_attribute_value_map = frappe._dict()
for iv in item_attribute_values:
ordered_attribute_value_map.setdefault(iv.parent, []).append(iv.attribute_value)
# build attribute values in idx order # build attribute values in idx order
ordered_attribute_value_map = item_cache.get_ordered_attribute_values()
for attr in attributes: for attr in attributes:
valid_attribute_values = valid_options.get(attr.attribute, []) valid_attribute_values = valid_options.get(attr.attribute, [])
ordered_values = ordered_attribute_value_map.get(attr.attribute, []) ordered_values = ordered_attribute_value_map.get(attr.attribute, [])