From f810e82b45f1ad3279bc94836ad42ac2c2ae92e3 Mon Sep 17 00:00:00 2001 From: Pratik Date: Fri, 4 Apr 2025 17:07:54 +0530 Subject: [PATCH] fix: kanban filter --- crm/api/doc.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/crm/api/doc.py b/crm/api/doc.py index 9cc5c653..4bcbe3cc 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -418,16 +418,23 @@ def get_data( rows.append(field) 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") - if (column_field in filters and filters.get(column_field) != kc.get("name")) or kc.get("delete"): + if kc.get("delete"): column_data = [] else: - column_filters.update(filters.copy()) - page_length = 20 - - if kc.get("page_length"): - page_length = kc.get("page_length") + page_length = kc.get("page_length", 20) if order: column_data = get_records_based_on_order( @@ -437,26 +444,20 @@ def get_data( column_data = frappe.get_list( doctype, fields=rows, - filters=convert_filter_to_tuple(doctype, column_filters), + filters=column_filters, order_by=order_by, page_length=page_length, ) - new_filters = filters.copy() - new_filters.update({column_field: kc.get("name")}) - all_count = frappe.get_list( doctype, - filters=convert_filter_to_tuple(doctype, new_filters), + filters=column_filters, fields="count(*) as total_count", )[0].total_count kc["all_count"] = all_count kc["count"] = len(column_data) - for d in column_data: - getCounts(d, doctype) - if order: column_data = sorted( column_data,