mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-31 18:59:08 +00:00
refactor: project summary report (#21953)
* feat: added more filters * feat: show only first 30 projects in chart * fix: status completed * refactor: allow empty option in status filter
This commit is contained in:
@@ -12,12 +12,31 @@ frappe.query_reports["Project Summary"] = {
|
|||||||
"default": frappe.defaults.get_user_default("Company"),
|
"default": frappe.defaults.get_user_default("Company"),
|
||||||
"reqd": 1
|
"reqd": 1
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "is_active",
|
||||||
|
"label": __("Is Active"),
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"options": "\nYes\nNo",
|
||||||
|
"default": "Yes",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "status",
|
"fieldname": "status",
|
||||||
"label": __("Status"),
|
"label": __("Status"),
|
||||||
"fieldtype": "Select",
|
"fieldtype": "Select",
|
||||||
"options": "Open\nCompleted\nCancelled",
|
"options": "\nOpen\nCompleted\nCancelled",
|
||||||
"default": "Open"
|
"default": "Open"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "project_type",
|
||||||
|
"label": __("Project Type"),
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"options": "Project Type"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "priority",
|
||||||
|
"label": __("Priority"),
|
||||||
|
"fieldtype": "Select",
|
||||||
|
"options": "\nLow\nMedium\nHigh"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ def execute(filters=None):
|
|||||||
columns = get_columns()
|
columns = get_columns()
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
data = frappe.db.get_all("Project", filters=filters, fields=["name", 'status', "percent_complete", "expected_start_date", "expected_end_date"], order_by="expected_end_date")
|
data = frappe.db.get_all("Project", filters=filters, fields=["name", 'status', "percent_complete", "expected_start_date", "expected_end_date", "project_type"], order_by="expected_end_date")
|
||||||
|
|
||||||
for project in data:
|
for project in data:
|
||||||
project["total_tasks"] = frappe.db.count("Task", filters={"project": project.name})
|
project["total_tasks"] = frappe.db.count("Task", filters={"project": project.name})
|
||||||
@@ -30,6 +30,13 @@ def get_columns():
|
|||||||
"options": "Project",
|
"options": "Project",
|
||||||
"width": 200
|
"width": 200
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "project_type",
|
||||||
|
"label": _("Type"),
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"options": "Project Type",
|
||||||
|
"width": 120
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "status",
|
"fieldname": "status",
|
||||||
"label": _("Status"),
|
"label": _("Status"),
|
||||||
@@ -88,19 +95,19 @@ def get_chart_data(data):
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
"data": {
|
"data": {
|
||||||
'labels': labels,
|
'labels': labels[:30],
|
||||||
'datasets': [
|
'datasets': [
|
||||||
{
|
{
|
||||||
"name": "Overdue",
|
"name": "Overdue",
|
||||||
"values": overdue
|
"values": overdue[:30]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Completed",
|
"name": "Completed",
|
||||||
"values": completed
|
"values": completed[:30]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Total Tasks",
|
"name": "Total Tasks",
|
||||||
"values": total
|
"values": total[:30]
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user