diff --git a/crm/api/doc.py b/crm/api/doc.py index 9b84bc7a..b8766283 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -413,39 +413,9 @@ def get_data( "row_count": len(data), "form_script": get_form_script(doctype), "list_script": get_form_script(doctype, "List"), + "view_type": view_type, } -@frappe.whitelist() -def get_kanban_data( - doctype: str, - filters: dict, - order_by: str, - column_field: str, - columns=None, - rows=None, - default_filters=None, -): - filters = frappe._dict(filters) - columns = frappe.parse_json(columns) - data = [] - - if default_filters: - default_filters = frappe.parse_json(default_filters) - filters.update(default_filters) - - for column in columns: - column_filters = filters.copy() - column_filters.update({column_field: column}) - column_data = frappe.get_list( - doctype, - fields=rows, - filters=column_filters, - order_by=order_by, - page_length=20, - ) - data.append({"column": column, "data": column_data, "count": len(column_data)}) - return data - @frappe.whitelist() def get_fields_meta(doctype, restricted_fieldtypes=None, as_array=False): not_allowed_fieldtypes = [ diff --git a/frontend/src/pages/CallLogs.vue b/frontend/src/pages/CallLogs.vue index ad345b33..73450039 100644 --- a/frontend/src/pages/CallLogs.vue +++ b/frontend/src/pages/CallLogs.vue @@ -76,7 +76,11 @@ const updatedPageCount = ref(20) const viewControls = ref(null) const rows = computed(() => { - if (!callLogs.value?.data?.data) return [] + if ( + !callLogs.value?.data?.data || + !['list', 'group_by'].includes(callLogs.value.data.view_type) + ) + return [] return callLogs.value?.data.data.map((callLog) => { let _rows = {} callLogs.value?.data.rows.forEach((row) => { diff --git a/frontend/src/pages/Contacts.vue b/frontend/src/pages/Contacts.vue index 44c0ebd4..604c3296 100644 --- a/frontend/src/pages/Contacts.vue +++ b/frontend/src/pages/Contacts.vue @@ -82,7 +82,7 @@ const showContactModal = ref(false) const currentContact = computed(() => { return contacts.value?.data?.data?.find( - (contact) => contact.name === route.params.contactId + (contact) => contact.name === route.params.contactId, ) }) @@ -109,7 +109,11 @@ const updatedPageCount = ref(20) const viewControls = ref(null) const rows = computed(() => { - if (!contacts.value?.data?.data) return [] + if ( + !contacts.value?.data?.data || + !['list', 'group_by'].includes(contacts.value.data.view_type) + ) + return [] return contacts.value?.data.data.map((contact) => { let _rows = {} contacts.value?.data.rows.forEach((row) => { diff --git a/frontend/src/pages/Deals.vue b/frontend/src/pages/Deals.vue index fe5f6c53..92d0fdad 100644 --- a/frontend/src/pages/Deals.vue +++ b/frontend/src/pages/Deals.vue @@ -28,7 +28,7 @@ allowedViews: ['list', 'group_by', 'kanban'], }" /> - + { - if (!deals.value?.data?.data) return [] + if ( + !deals.value?.data?.data || + !['list', 'group_by'].includes(deals.value.data.view_type) + ) + return [] if (route.params.viewType === 'group_by') { if (!deals.value?.data.group_by_field?.name) return [] return getGroupedByRows( diff --git a/frontend/src/pages/EmailTemplates.vue b/frontend/src/pages/EmailTemplates.vue index 71e41fee..7dfc6442 100644 --- a/frontend/src/pages/EmailTemplates.vue +++ b/frontend/src/pages/EmailTemplates.vue @@ -92,7 +92,11 @@ const updatedPageCount = ref(20) const viewControls = ref(null) const rows = computed(() => { - if (!emailTemplates.value?.data?.data) return [] + if ( + !emailTemplates.value?.data?.data || + !['list', 'group_by'].includes(emailTemplates.value.data.view_type) + ) + return [] return emailTemplates.value?.data.data.map((emailTemplate) => { let _rows = {} emailTemplates.value?.data.rows.forEach((row) => { diff --git a/frontend/src/pages/Leads.vue b/frontend/src/pages/Leads.vue index 3cde4593..6ff13c75 100644 --- a/frontend/src/pages/Leads.vue +++ b/frontend/src/pages/Leads.vue @@ -29,7 +29,7 @@ allowedViews: ['list', 'group_by', 'kanban'], }" /> - + { - if (!leads.value?.data?.data) return [] + if ( + !leads.value?.data?.data || + !['list', 'group_by'].includes(leads.value.data.view_type) + ) + return [] if (route.params.viewType === 'group_by') { if (!leads.value?.data.group_by_field?.name) return [] return getGroupedByRows( diff --git a/frontend/src/pages/Organizations.vue b/frontend/src/pages/Organizations.vue index 10781088..79101c44 100644 --- a/frontend/src/pages/Organizations.vue +++ b/frontend/src/pages/Organizations.vue @@ -110,7 +110,11 @@ const updatedPageCount = ref(20) const viewControls = ref(null) const rows = computed(() => { - if (!organizations.value?.data?.data) return [] + if ( + !organizations.value?.data?.data || + !['list', 'group_by'].includes(organizations.value.data.view_type) + ) + return [] return organizations.value?.data.data.map((organization) => { let _rows = {} organizations.value?.data.rows.forEach((row) => { diff --git a/frontend/src/pages/Tasks.vue b/frontend/src/pages/Tasks.vue index 4cc285d5..11d32034 100644 --- a/frontend/src/pages/Tasks.vue +++ b/frontend/src/pages/Tasks.vue @@ -24,7 +24,7 @@ allowedViews: ['list', 'kanban'], }" /> - + { - if (!tasks.value?.data?.data) return [] + if ( + !tasks.value?.data?.data || + !['list', 'group_by'].includes(tasks.value.data.view_type) + ) + return [] return tasks.value?.data.data.map((task) => { let _rows = {} tasks.value?.data.rows.forEach((row) => {