fix: load tasks from get_activities

This commit is contained in:
Shariq Ansari 2024-02-18 17:14:40 +05:30
parent 792d9fb871
commit d740d21c82
2 changed files with 31 additions and 29 deletions

View File

@ -34,10 +34,11 @@ def get_deal_activities(name):
activities = [] activities = []
calls = [] calls = []
notes = [] notes = []
tasks = []
creation_text = "created this deal" creation_text = "created this deal"
if lead: if lead:
activities, calls, notes = get_lead_activities(lead) activities, calls, notes, tasks = get_lead_activities(lead)
creation_text = "converted the lead to this deal" creation_text = "converted the lead to this deal"
activities.append({ activities.append({
@ -129,11 +130,12 @@ def get_deal_activities(name):
calls = calls + get_linked_calls(name) calls = calls + get_linked_calls(name)
notes = notes + get_linked_notes(name) notes = notes + get_linked_notes(name)
tasks = tasks + get_linked_tasks(name)
activities.sort(key=lambda x: x["creation"], reverse=True) activities.sort(key=lambda x: x["creation"], reverse=True)
activities = handle_multiple_versions(activities) activities = handle_multiple_versions(activities)
return activities, calls, notes return activities, calls, notes, tasks
def get_lead_activities(name): def get_lead_activities(name):
get_docinfo('', "CRM Lead", name) get_docinfo('', "CRM Lead", name)
@ -239,11 +241,12 @@ def get_lead_activities(name):
calls = get_linked_calls(name) calls = get_linked_calls(name)
notes = get_linked_notes(name) notes = get_linked_notes(name)
tasks = get_linked_tasks(name)
activities.sort(key=lambda x: x["creation"], reverse=True) activities.sort(key=lambda x: x["creation"], reverse=True)
activities = handle_multiple_versions(activities) activities = handle_multiple_versions(activities)
return activities, calls, notes return activities, calls, notes, tasks
@redis_cache() @redis_cache()
def get_attachments(name): def get_attachments(name):
@ -315,3 +318,21 @@ def get_linked_notes(name):
fields=['name', 'title', 'content', 'owner', 'modified'], fields=['name', 'title', 'content', 'owner', 'modified'],
) )
return notes or [] return notes or []
def get_linked_tasks(name):
tasks = frappe.db.get_all(
"CRM Task",
filters={"reference_docname": name},
fields=[
"name",
"title",
"description",
"assigned_to",
"assigned_to",
"due_date",
"priority",
"status",
"modified",
],
)
return tasks or []

View File

@ -724,7 +724,7 @@
/> />
<TaskModal <TaskModal
v-model="showTaskModal" v-model="showTaskModal"
v-model:reloadTasks="tasks" v-model:reloadTasks="all_activities"
:task="task" :task="task"
:doctype="doctype" :doctype="doctype"
:doc="doc.data?.name" :doc="doc.data?.name"
@ -804,7 +804,7 @@ const all_activities = createResource({
params: { name: doc.value.data.name }, params: { name: doc.value.data.name },
cache: ['activity', doc.value.data.name], cache: ['activity', doc.value.data.name],
auto: true, auto: true,
transform: ([versions, calls, notes]) => { transform: ([versions, calls, notes, tasks]) => {
if (calls?.length) { if (calls?.length) {
calls.forEach((doc) => { calls.forEach((doc) => {
doc.show_recording = false doc.show_recording = false
@ -839,30 +839,10 @@ const all_activities = createResource({
} }
}) })
} }
return { versions, calls, notes } return { versions, calls, notes, tasks }
}, },
}) })
const tasks = createListResource({
type: 'list',
doctype: 'CRM Task',
cache: ['Tasks', doc.value.data.name],
fields: [
'name',
'title',
'description',
'assigned_to',
'assigned_to',
'due_date',
'priority',
'status',
'modified',
],
filters: { reference_docname: doc.value.data.name },
orderBy: 'modified desc',
pageLength: 999,
})
function get_activities() { function get_activities() {
if (!all_activities.data?.versions) return [] if (!all_activities.data?.versions) return []
if (!all_activities.data?.calls.length) if (!all_activities.data?.calls.length)
@ -887,7 +867,8 @@ const activities = computed(() => {
(a, b) => new Date(a.creation) - new Date(b.creation) (a, b) => new Date(a.creation) - new Date(b.creation)
) )
} else if (props.title == 'Tasks') { } else if (props.title == 'Tasks') {
return tasks.data?.sort( if (!all_activities.data?.tasks) return []
return all_activities.data.tasks.sort(
(a, b) => new Date(a.creation) - new Date(b.creation) (a, b) => new Date(a.creation) - new Date(b.creation)
) )
} else if (props.title == 'Notes') { } else if (props.title == 'Notes') {
@ -1033,7 +1014,7 @@ async function deleteTask(name) {
doctype: 'CRM Task', doctype: 'CRM Task',
name, name,
}) })
tasks.reload() all_activities.reload()
} }
function updateTaskStatus(status, task) { function updateTaskStatus(status, task) {
@ -1043,7 +1024,7 @@ function updateTaskStatus(status, task) {
fieldname: 'status', fieldname: 'status',
value: status, value: status,
}).then(() => { }).then(() => {
tasks.reload() all_activities.reload()
}) })
} }