mirror of
https://github.com/frappe/erpnext.git
synced 2026-06-03 04:09:11 +00:00
fix: Hide Attribute filters if 'Hide Variants' is enabled in E Commerce Settings
- Hide Attribute filters if 'Hide Variants' is enabled in E Commerce Settings - Consider 'Hide Variants' in ProductQuery Engine - Added docstrings - Remove `get_e_commerce_settings`, redundant
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
|
||||
# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import frappe
|
||||
|
||||
|
||||
@@ -16,6 +14,8 @@ class ProductFiltersBuilder:
|
||||
self.item_group = item_group
|
||||
|
||||
def get_field_filters(self):
|
||||
if not self.doc.enable_field_filters: return
|
||||
|
||||
filter_fields = [row.fieldname for row in self.doc.filter_fields]
|
||||
|
||||
meta = frappe.get_meta('Item')
|
||||
@@ -56,6 +56,8 @@ class ProductFiltersBuilder:
|
||||
return filter_data
|
||||
|
||||
def get_attribute_filters(self):
|
||||
if not self.doc.enable_attribute_filters: return
|
||||
|
||||
attributes = [row.attribute for row in self.doc.filter_attributes]
|
||||
|
||||
if not attributes:
|
||||
|
||||
@@ -42,6 +42,9 @@ class ProductQuery:
|
||||
if fields: self.build_fields_filters(fields)
|
||||
if search_term: self.build_search_filters(search_term)
|
||||
|
||||
if self.settings.hide_variants:
|
||||
self.conditions += " and wi.variant_of is null"
|
||||
|
||||
result = []
|
||||
website_item_groups = []
|
||||
|
||||
@@ -53,7 +56,6 @@ class ProductQuery:
|
||||
filters=[["Website Item Group", "item_group", "=", item_group]]
|
||||
)
|
||||
|
||||
self.query_fields = (", ").join(self.fields)
|
||||
if attributes:
|
||||
result = self.query_items_with_attributes(attributes, start)
|
||||
else:
|
||||
@@ -70,6 +72,8 @@ class ProductQuery:
|
||||
|
||||
def query_items(self, conditions, or_conditions, substitutions, start=0):
|
||||
"""Build a query to fetch Website Items based on field filters."""
|
||||
self.query_fields = (", ").join(self.fields)
|
||||
|
||||
return frappe.db.sql("""
|
||||
select distinct {query_fields}
|
||||
from
|
||||
|
||||
Reference in New Issue
Block a user