diff --git a/crm/api/doc.py b/crm/api/doc.py index 971c7044..8505a7a8 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -315,12 +315,16 @@ def get_data( if not title_field: title_field = "name" + if hasattr(_list, "default_kanban_settings"): + title_field = _list.default_kanban_settings().get("title_field") if title_field not in rows: rows.append(title_field) if not kanban_fields: kanban_fields = ["name"] + if hasattr(_list, "default_kanban_settings"): + kanban_fields = json.loads(_list.default_kanban_settings().get("kanban_fields")) for field in kanban_fields: if field not in rows: @@ -442,6 +446,10 @@ def get_data( "columns": columns, "rows": rows, "fields": fields, + "column_field": column_field, + "title_field": title_field, + "kanban_columns": kanban_columns, + "kanban_fields": kanban_fields, "group_by_field": group_by_field, "page_length": page_length, "page_length_count": page_length_count, diff --git a/crm/fcrm/doctype/crm_deal/crm_deal.py b/crm/fcrm/doctype/crm_deal/crm_deal.py index f8e05561..4ca327ad 100644 --- a/crm/fcrm/doctype/crm_deal/crm_deal.py +++ b/crm/fcrm/doctype/crm_deal/crm_deal.py @@ -190,6 +190,13 @@ class CRMDeal(Document): ] return {'columns': columns, 'rows': rows} + @staticmethod + def default_kanban_settings(): + return { + "column_field": "status", + "title_field": "organization", + "kanban_fields": '["annual_revenue", "email", "mobile_no", "_assign", "modified"]' + } @frappe.whitelist() def add_contact(deal, contact): diff --git a/crm/fcrm/doctype/crm_lead/crm_lead.py b/crm/fcrm/doctype/crm_lead/crm_lead.py index f4ebe162..c9269e8a 100644 --- a/crm/fcrm/doctype/crm_lead/crm_lead.py +++ b/crm/fcrm/doctype/crm_lead/crm_lead.py @@ -324,6 +324,15 @@ class CRMLead(Document): ] return {'columns': columns, 'rows': rows} + @staticmethod + def default_kanban_settings(): + return { + "column_field": "status", + "title_field": "lead_name", + "kanban_fields": '["organization", "email", "mobile_no", "_assign", "modified"]' + } + + @frappe.whitelist() def convert_to_deal(lead, doc=None): if not (doc and doc.flags.get("ignore_permissions")) and not frappe.has_permission("CRM Lead", "write", lead): diff --git a/crm/fcrm/doctype/crm_task/crm_task.py b/crm/fcrm/doctype/crm_task/crm_task.py index 1559ff3e..cf1bc963 100644 --- a/crm/fcrm/doctype/crm_task/crm_task.py +++ b/crm/fcrm/doctype/crm_task/crm_task.py @@ -60,3 +60,11 @@ class CRMTask(Document): "modified", ] return {'columns': columns, 'rows': rows} + + @staticmethod + def default_kanban_settings(): + return { + "column_field": "status", + "title_field": "title", + "kanban_fields": '["description", "priority", "creation"]' + }