diff --git a/frappe/desk/report/__init__.py b/frappe/desk/report/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/desk/report/todo/__init__.py b/frappe/desk/report/todo/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/desk/report/todo/todo.js b/frappe/desk/report/todo/todo.js new file mode 100644 index 0000000000..bb2e0f7846 --- /dev/null +++ b/frappe/desk/report/todo/todo.js @@ -0,0 +1,9 @@ +// Copyright (c) 2016, Frappe Technologies and contributors +// For license information, please see license.txt +/* eslint-disable */ + +frappe.query_reports["ToDo"] = { + "filters": [ + + ] +} diff --git a/frappe/desk/report/todo/todo.json b/frappe/desk/report/todo/todo.json new file mode 100644 index 0000000000..b42c4c9c67 --- /dev/null +++ b/frappe/desk/report/todo/todo.json @@ -0,0 +1,23 @@ +{ + "add_total_row": 0, + "apply_user_permissions": 1, + "creation": "2013-02-25 14:26:30", + "disabled": 0, + "docstatus": 0, + "doctype": "Report", + "idx": 3, + "is_standard": "Yes", + "modified": "2017-06-21 18:18:50.748793", + "modified_by": "Administrator", + "module": "Desk", + "name": "ToDo", + "owner": "Administrator", + "ref_doctype": "ToDo", + "report_name": "ToDo", + "report_type": "Script Report", + "roles": [ + { + "role": "System Manager" + } + ] +} \ No newline at end of file diff --git a/frappe/desk/report/todo/todo.py b/frappe/desk/report/todo/todo.py new file mode 100644 index 0000000000..a51d44fe08 --- /dev/null +++ b/frappe/desk/report/todo/todo.py @@ -0,0 +1,34 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +from __future__ import unicode_literals +import frappe +from frappe import _ +from frappe.utils import getdate + +def execute(filters=None): + priority_map = {"High": 3, "Medium": 2, "Low": 1} + + todo_list = frappe.get_list('ToDo', fields=["name", "date", "description", + "priority", "reference_type", "reference_name", "assigned_by", "owner"], + filters={'status': 'Open'}) + + todo_list.sort(key=lambda todo: (priority_map.get(todo.priority, 0), + todo.date and getdate(todo.date) or getdate("1900-01-01")), reverse=True) + + columns = [_("ID")+":Link/ToDo:90", _("Priority")+"::60", _("Date")+ ":Date", + _("Description")+"::150", _("Assigned To/Owner") + ":Data:120", + _("Assigned By")+":Data:120", _("Reference")+"::200"] + + result = [] + for todo in todo_list: + if todo.owner==frappe.session.user or todo.assigned_by==frappe.session.user: + if todo.reference_type: + todo.reference = """%s: %s""" % (todo.reference_type, + todo.reference_name, todo.reference_type, todo.reference_name) + else: + todo.reference = None + result.append([todo.name, todo.priority, todo.date, todo.description, + todo.owner, todo.assigned_by, todo.reference]) + + return columns, result \ No newline at end of file