refactor: cache assignees

This commit is contained in:
Shariq Ansari 2025-07-23 13:12:12 +05:30
parent e62eac91d1
commit cf8a1ce8a3

View File

@ -5,6 +5,7 @@ import { reactive } from 'vue'
const documentsCache = {} const documentsCache = {}
const controllersCache = {} const controllersCache = {}
const assigneesCache = {}
export function useDocument(doctype, docname) { export function useDocument(doctype, docname) {
const { setupScript } = getScript(doctype) const { setupScript } = getScript(doctype)
@ -46,16 +47,20 @@ export function useDocument(doctype, docname) {
} }
} }
const assignees = createResource({ assigneesCache[doctype] = assigneesCache[doctype] || {}
url: 'crm.api.doc.get_assigned_users',
cache: `assignees:${doctype}:${docname}`, if (!assigneesCache[doctype][docname || '']) {
auto: docname ? true : false, assigneesCache[doctype][docname || ''] = createResource({
params: { url: 'crm.api.doc.get_assigned_users',
doctype: doctype, cache: `assignees:${doctype}:${docname}`,
name: docname, auto: docname ? true : false,
}, params: {
transform: (data) => parseAssignees(data), doctype: doctype,
}) name: docname,
},
transform: (data) => parseAssignees(data),
})
}
async function setupFormScript() { async function setupFormScript() {
if ( if (
@ -224,7 +229,7 @@ export function useDocument(doctype, docname) {
return { return {
document: documentsCache[doctype][docname || ''], document: documentsCache[doctype][docname || ''],
assignees, assignees: assigneesCache[doctype][docname || ''],
getControllers, getControllers,
triggerOnLoad, triggerOnLoad,
triggerOnBeforeCreate, triggerOnBeforeCreate,