mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-26 16:34:46 +00:00
feat: Show past events and todos in crm_activities
This commit is contained in:
@@ -147,14 +147,37 @@ def link_open_events(ref_doctype, ref_docname, doc):
|
||||
def get_open_activities(ref_doctype, ref_docname):
|
||||
tasks = get_open_todos(ref_doctype, ref_docname)
|
||||
events = get_open_events(ref_doctype, ref_docname)
|
||||
tasks_history = get_closed_todos(ref_doctype, ref_docname)
|
||||
events_history = get_closed_events(ref_doctype, ref_docname)
|
||||
|
||||
return {"tasks": tasks, "events": events}
|
||||
return {
|
||||
"tasks": tasks,
|
||||
"events": events,
|
||||
"tasks_history": tasks_history,
|
||||
"events_history": events_history,
|
||||
}
|
||||
|
||||
|
||||
def get_closed_todos(ref_doctype, ref_docname):
|
||||
return get_filtered_todos(ref_doctype, ref_docname, status=("!=", "Open"))
|
||||
|
||||
|
||||
def get_open_todos(ref_doctype, ref_docname):
|
||||
return get_filtered_todos(ref_doctype, ref_docname, status="Open")
|
||||
|
||||
|
||||
def get_open_events(ref_doctype, ref_docname):
|
||||
return get_filtered_events(ref_doctype, ref_docname, open=True)
|
||||
|
||||
|
||||
def get_closed_events(ref_doctype, ref_docname):
|
||||
return get_filtered_events(ref_doctype, ref_docname, open=False)
|
||||
|
||||
|
||||
def get_filtered_todos(ref_doctype, ref_docname, status: str | tuple[str, str]):
|
||||
return frappe.get_all(
|
||||
"ToDo",
|
||||
filters={"reference_type": ref_doctype, "reference_name": ref_docname, "status": "Open"},
|
||||
filters={"reference_type": ref_doctype, "reference_name": ref_docname, "status": status},
|
||||
fields=[
|
||||
"name",
|
||||
"description",
|
||||
@@ -164,10 +187,15 @@ def get_open_todos(ref_doctype, ref_docname):
|
||||
)
|
||||
|
||||
|
||||
def get_open_events(ref_doctype, ref_docname):
|
||||
def get_filtered_events(ref_doctype, ref_docname, open: bool):
|
||||
event = frappe.qb.DocType("Event")
|
||||
event_link = frappe.qb.DocType("Event Participants")
|
||||
|
||||
if open:
|
||||
event_status_filter = event.status == "Open"
|
||||
else:
|
||||
event_status_filter = event.status != "Open"
|
||||
|
||||
query = (
|
||||
frappe.qb.from_(event)
|
||||
.join(event_link)
|
||||
@@ -183,7 +211,7 @@ def get_open_events(ref_doctype, ref_docname):
|
||||
.where(
|
||||
(event_link.reference_doctype == ref_doctype)
|
||||
& (event_link.reference_docname == ref_docname)
|
||||
& (event.status == "Open")
|
||||
& (event_status_filter)
|
||||
)
|
||||
)
|
||||
data = query.run(as_dict=True)
|
||||
|
||||
Reference in New Issue
Block a user