fix: get default view api

This commit is contained in:
Shariq Ansari 2025-02-19 11:40:49 +05:30
parent 1ca4d0bd4b
commit dc61df1717
2 changed files with 18 additions and 5 deletions

View File

@ -8,9 +8,14 @@ def get_views(doctype):
query = ( query = (
frappe.qb.from_(View) frappe.qb.from_(View)
.select("*") .select("*")
.where(Criterion.any([View.user == '', View.user == frappe.session.user])) .where(Criterion.any([View.user == "", View.user == frappe.session.user]))
) )
if doctype: if doctype:
query = query.where(View.dt == doctype) query = query.where(View.dt == doctype)
views = query.run(as_dict=True) views = query.run(as_dict=True)
return views return views
@frappe.whitelist()
def get_default_view():
return frappe.db.get_single_value("FCRM Settings", "default_view") or None

View File

@ -6,7 +6,14 @@ export const viewsStore = defineStore('crm-views', (doctype) => {
let viewsByName = reactive({}) let viewsByName = reactive({})
let pinnedViews = ref([]) let pinnedViews = ref([])
let publicViews = ref([]) let publicViews = ref([])
let defaultView = ref({}) let standardViews = ref({})
// Default view
const defaultView = createResource({
url: 'crm.api.views.get_default_view',
cache: 'crm-default-view',
auto: true,
})
// Views // Views
const views = createResource({ const views = createResource({
@ -28,7 +35,7 @@ export const viewsStore = defineStore('crm-views', (doctype) => {
publicViews.value?.push(view) publicViews.value?.push(view)
} }
if (view.is_default && view.dt) { if (view.is_default && view.dt) {
defaultView.value[view.dt + ' ' + view.type] = view standardViews.value[view.dt + ' ' + view.type] = view
} }
} }
return views return views
@ -38,7 +45,7 @@ export const viewsStore = defineStore('crm-views', (doctype) => {
function getView(view, type, doctype = null) { function getView(view, type, doctype = null) {
type = type || 'list' type = type || 'list'
if (!view && doctype) { if (!view && doctype) {
return defaultView.value[doctype + ' ' + type] || null return standardViews.value[doctype + ' ' + type] || null
} }
return viewsByName[view] return viewsByName[view]
} }
@ -60,6 +67,7 @@ export const viewsStore = defineStore('crm-views', (doctype) => {
return { return {
views, views,
defaultView, defaultView,
standardViews,
getPinnedViews, getPinnedViews,
getPublicViews, getPublicViews,
reload, reload,