fix: check view type before loading data

This commit is contained in:
Shariq Ansari 2024-06-21 16:29:15 +05:30
parent e86a5cf98d
commit e39ed5d695
8 changed files with 40 additions and 42 deletions

View File

@ -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 = [

View File

@ -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) => {

View File

@ -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) => {

View File

@ -28,7 +28,7 @@
allowedViews: ['list', 'group_by', 'kanban'],
}"
/>
<KanbanView v-if="route.params.viewType == 'kanban'" v-model="deals" />
<KanbanView v-if="route.params.viewType == 'kanban'" v-model="deals" />
<DealsListView
ref="dealsListView"
v-else-if="deals.data && rows.length"
@ -106,7 +106,11 @@ const viewControls = ref(null)
// Rows
const rows = computed(() => {
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(

View File

@ -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) => {

View File

@ -29,7 +29,7 @@
allowedViews: ['list', 'group_by', 'kanban'],
}"
/>
<KanbanView v-if="route.params.viewType == 'kanban'" v-model="leads" />
<KanbanView v-if="route.params.viewType == 'kanban'" v-model="leads" />
<LeadsListView
ref="leadsListView"
v-else-if="leads.data && rows.length"
@ -108,7 +108,11 @@ const viewControls = ref(null)
// Rows
const rows = computed(() => {
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(

View File

@ -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) => {

View File

@ -24,7 +24,7 @@
allowedViews: ['list', 'kanban'],
}"
/>
<KanbanView v-if="$route.params.viewType == 'kanban'" v-model="tasks" />
<KanbanView v-if="$route.params.viewType == 'kanban'" v-model="tasks" />
<TasksListView
ref="tasksListView"
v-else-if="tasks.data && rows.length"
@ -87,7 +87,11 @@ const updatedPageCount = ref(20)
const viewControls = ref(null)
const rows = computed(() => {
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) => {