refactor: cache assignees

(cherry picked from commit cf8a1ce8a3e465c0762a8158c14d0ac8e7207663)
This commit is contained in:
Shariq Ansari 2025-07-23 13:12:12 +05:30 committed by Mergify
parent 96ff1c2fdb
commit 3e51d875f7

View File

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