fix: check view type before loading data
This commit is contained in:
parent
e86a5cf98d
commit
e39ed5d695
@ -413,39 +413,9 @@ def get_data(
|
|||||||
"row_count": len(data),
|
"row_count": len(data),
|
||||||
"form_script": get_form_script(doctype),
|
"form_script": get_form_script(doctype),
|
||||||
"list_script": get_form_script(doctype, "List"),
|
"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()
|
@frappe.whitelist()
|
||||||
def get_fields_meta(doctype, restricted_fieldtypes=None, as_array=False):
|
def get_fields_meta(doctype, restricted_fieldtypes=None, as_array=False):
|
||||||
not_allowed_fieldtypes = [
|
not_allowed_fieldtypes = [
|
||||||
|
|||||||
@ -76,7 +76,11 @@ const updatedPageCount = ref(20)
|
|||||||
const viewControls = ref(null)
|
const viewControls = ref(null)
|
||||||
|
|
||||||
const rows = computed(() => {
|
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) => {
|
return callLogs.value?.data.data.map((callLog) => {
|
||||||
let _rows = {}
|
let _rows = {}
|
||||||
callLogs.value?.data.rows.forEach((row) => {
|
callLogs.value?.data.rows.forEach((row) => {
|
||||||
|
|||||||
@ -82,7 +82,7 @@ const showContactModal = ref(false)
|
|||||||
|
|
||||||
const currentContact = computed(() => {
|
const currentContact = computed(() => {
|
||||||
return contacts.value?.data?.data?.find(
|
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 viewControls = ref(null)
|
||||||
|
|
||||||
const rows = computed(() => {
|
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) => {
|
return contacts.value?.data.data.map((contact) => {
|
||||||
let _rows = {}
|
let _rows = {}
|
||||||
contacts.value?.data.rows.forEach((row) => {
|
contacts.value?.data.rows.forEach((row) => {
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
allowedViews: ['list', 'group_by', 'kanban'],
|
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
|
<DealsListView
|
||||||
ref="dealsListView"
|
ref="dealsListView"
|
||||||
v-else-if="deals.data && rows.length"
|
v-else-if="deals.data && rows.length"
|
||||||
@ -106,7 +106,11 @@ const viewControls = ref(null)
|
|||||||
|
|
||||||
// Rows
|
// Rows
|
||||||
const rows = computed(() => {
|
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 (route.params.viewType === 'group_by') {
|
||||||
if (!deals.value?.data.group_by_field?.name) return []
|
if (!deals.value?.data.group_by_field?.name) return []
|
||||||
return getGroupedByRows(
|
return getGroupedByRows(
|
||||||
|
|||||||
@ -92,7 +92,11 @@ const updatedPageCount = ref(20)
|
|||||||
const viewControls = ref(null)
|
const viewControls = ref(null)
|
||||||
|
|
||||||
const rows = computed(() => {
|
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) => {
|
return emailTemplates.value?.data.data.map((emailTemplate) => {
|
||||||
let _rows = {}
|
let _rows = {}
|
||||||
emailTemplates.value?.data.rows.forEach((row) => {
|
emailTemplates.value?.data.rows.forEach((row) => {
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
allowedViews: ['list', 'group_by', 'kanban'],
|
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
|
<LeadsListView
|
||||||
ref="leadsListView"
|
ref="leadsListView"
|
||||||
v-else-if="leads.data && rows.length"
|
v-else-if="leads.data && rows.length"
|
||||||
@ -108,7 +108,11 @@ const viewControls = ref(null)
|
|||||||
|
|
||||||
// Rows
|
// Rows
|
||||||
const rows = computed(() => {
|
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 (route.params.viewType === 'group_by') {
|
||||||
if (!leads.value?.data.group_by_field?.name) return []
|
if (!leads.value?.data.group_by_field?.name) return []
|
||||||
return getGroupedByRows(
|
return getGroupedByRows(
|
||||||
|
|||||||
@ -110,7 +110,11 @@ const updatedPageCount = ref(20)
|
|||||||
const viewControls = ref(null)
|
const viewControls = ref(null)
|
||||||
|
|
||||||
const rows = computed(() => {
|
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) => {
|
return organizations.value?.data.data.map((organization) => {
|
||||||
let _rows = {}
|
let _rows = {}
|
||||||
organizations.value?.data.rows.forEach((row) => {
|
organizations.value?.data.rows.forEach((row) => {
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
allowedViews: ['list', 'kanban'],
|
allowedViews: ['list', 'kanban'],
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<KanbanView v-if="$route.params.viewType == 'kanban'" v-model="tasks" />
|
<KanbanView v-if="$route.params.viewType == 'kanban'" v-model="tasks" />
|
||||||
<TasksListView
|
<TasksListView
|
||||||
ref="tasksListView"
|
ref="tasksListView"
|
||||||
v-else-if="tasks.data && rows.length"
|
v-else-if="tasks.data && rows.length"
|
||||||
@ -87,7 +87,11 @@ const updatedPageCount = ref(20)
|
|||||||
const viewControls = ref(null)
|
const viewControls = ref(null)
|
||||||
|
|
||||||
const rows = computed(() => {
|
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) => {
|
return tasks.value?.data.data.map((task) => {
|
||||||
let _rows = {}
|
let _rows = {}
|
||||||
tasks.value?.data.rows.forEach((row) => {
|
tasks.value?.data.rows.forEach((row) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user