1
0
forked from test/crm

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 = []
calls = []
notes = []
tasks = []
creation_text = "created this deal"
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"
activities.append({
@ -129,11 +130,12 @@ def get_deal_activities(name):
calls = calls + get_linked_calls(name)
notes = notes + get_linked_notes(name)
tasks = tasks + get_linked_tasks(name)
activities.sort(key=lambda x: x["creation"], reverse=True)
activities = handle_multiple_versions(activities)
return activities, calls, notes
return activities, calls, notes, tasks
def get_lead_activities(name):
get_docinfo('', "CRM Lead", name)
@ -239,11 +241,12 @@ def get_lead_activities(name):
calls = get_linked_calls(name)
notes = get_linked_notes(name)
tasks = get_linked_tasks(name)
activities.sort(key=lambda x: x["creation"], reverse=True)
activities = handle_multiple_versions(activities)
return activities, calls, notes
return activities, calls, notes, tasks
@redis_cache()
def get_attachments(name):
@ -315,3 +318,21 @@ def get_linked_notes(name):
fields=['name', 'title', 'content', 'owner', 'modified'],
)
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
v-model="showTaskModal"
v-model:reloadTasks="tasks"
v-model:reloadTasks="all_activities"
:task="task"
:doctype="doctype"
:doc="doc.data?.name"
@ -804,7 +804,7 @@ const all_activities = createResource({
params: { name: doc.value.data.name },
cache: ['activity', doc.value.data.name],
auto: true,
transform: ([versions, calls, notes]) => {
transform: ([versions, calls, notes, tasks]) => {
if (calls?.length) {
calls.forEach((doc) => {
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() {
if (!all_activities.data?.versions) return []
if (!all_activities.data?.calls.length)
@ -887,7 +867,8 @@ const activities = computed(() => {
(a, b) => new Date(a.creation) - new Date(b.creation)
)
} 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)
)
} else if (props.title == 'Notes') {
@ -1033,7 +1014,7 @@ async function deleteTask(name) {
doctype: 'CRM Task',
name,
})
tasks.reload()
all_activities.reload()
}
function updateTaskStatus(status, task) {
@ -1043,7 +1024,7 @@ function updateTaskStatus(status, task) {
fieldname: 'status',
value: status,
}).then(() => {
tasks.reload()
all_activities.reload()
})
}