Merge pull request #17503 from netchampfaris/fix-product-configurator

fix: Dont include disabled items in cache
This commit is contained in:
Saurabh 2019-05-07 09:12:28 +05:30 committed by GitHub
commit 3083d8d453
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

@ -66,15 +66,14 @@ class ItemVariantsCacheManager:
as_list=1
)
disabled_items = [i.name for i in frappe.db.get_all('Item', {'disabled': 1})]
disabled_items = set([i.name for i in frappe.db.get_all('Item', {'disabled': 1})])
attribute_value_item_map = frappe._dict({})
item_attribute_value_map = frappe._dict({})
item_variants_data = [r for r in item_variants_data if r[0] not in disabled_items]
for row in item_variants_data:
item_code, attribute, attribute_value = row
if item_code in disabled_items:
continue
# (attr, value) => [item1, item2]
attribute_value_item_map.setdefault((attribute, attribute_value), []).append(item_code)
# item => {attr1: value1, attr2: value2}

View File

@ -257,7 +257,8 @@ def get_items_with_selected_attributes(item_code, selected_attributes):
items = []
for attribute, value in selected_attributes.items():
items.append(set(attribute_value_item_map[(attribute, value)]))
filtered_items = attribute_value_item_map.get((attribute, value), [])
items.append(set(filtered_items))
return set.intersection(*items)