Merge pull request #707 from pratikb64/kanban-filter-fix

fix: kanban filter
This commit is contained in:
Pratik Badhe 2025-04-04 17:14:46 +05:30 committed by GitHub
commit 7e38d5e405
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -418,16 +418,23 @@ def get_data(
rows.append(field) rows.append(field)
for kc in kanban_columns: for kc in kanban_columns:
column_filters = {column_field: kc.get("name")} # Start with base filters
column_filters = []
# Convert and add the main filters first
if filters:
base_filters = convert_filter_to_tuple(doctype, filters)
column_filters.extend(base_filters)
# Add the column-specific filter
if column_field and kc.get("name"):
column_filters.append([doctype, column_field, "=", kc.get("name")])
order = kc.get("order") order = kc.get("order")
if (column_field in filters and filters.get(column_field) != kc.get("name")) or kc.get("delete"): if kc.get("delete"):
column_data = [] column_data = []
else: else:
column_filters.update(filters.copy()) page_length = kc.get("page_length", 20)
page_length = 20
if kc.get("page_length"):
page_length = kc.get("page_length")
if order: if order:
column_data = get_records_based_on_order( column_data = get_records_based_on_order(
@ -437,26 +444,20 @@ def get_data(
column_data = frappe.get_list( column_data = frappe.get_list(
doctype, doctype,
fields=rows, fields=rows,
filters=convert_filter_to_tuple(doctype, column_filters), filters=column_filters,
order_by=order_by, order_by=order_by,
page_length=page_length, page_length=page_length,
) )
new_filters = filters.copy()
new_filters.update({column_field: kc.get("name")})
all_count = frappe.get_list( all_count = frappe.get_list(
doctype, doctype,
filters=convert_filter_to_tuple(doctype, new_filters), filters=column_filters,
fields="count(*) as total_count", fields="count(*) as total_count",
)[0].total_count )[0].total_count
kc["all_count"] = all_count kc["all_count"] = all_count
kc["count"] = len(column_data) kc["count"] = len(column_data)
for d in column_data:
getCounts(d, doctype)
if order: if order:
column_data = sorted( column_data = sorted(
column_data, column_data,