Add Kanban Board button in project (#13345)
diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js
index 682398f..7fbeaee 100644
--- a/erpnext/projects/doctype/project/project.js
+++ b/erpnext/projects/doctype/project/project.js
@@ -49,6 +49,23 @@
filters: filters
}
});
+
+ if (frappe.model.can_read("Task")) {
+ frm.add_custom_button(__("Gantt Chart"), function () {
+ frappe.route_options = {
+ "project": frm.doc.name
+ };
+ frappe.set_route("List", "Task", "Gantt");
+ });
+
+ frm.add_custom_button(__("Kanban Board"), () => {
+ frappe.call('erpnext.projects.doctype.project.project.create_kanban_board_if_not_exists', {
+ project: frm.doc.project_name
+ }).then(() => {
+ frappe.set_route('List', 'Task', 'Kanban', frm.doc.project_name);
+ });
+ });
+ }
},
refresh: function (frm) {
@@ -57,15 +74,6 @@
} else {
frm.add_web_link("/projects?project=" + encodeURIComponent(frm.doc.name));
- if (frappe.model.can_read("Task")) {
- frm.add_custom_button(__("Gantt Chart"), function () {
- frappe.route_options = {
- "project": frm.doc.name
- };
- frappe.set_route("List", "Task", "Gantt");
- });
- }
-
frm.trigger('show_dashboard');
}
},
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index 02a4afb..abb497c 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -406,4 +406,13 @@
header=[frappe._("Please Update your Project Status"), 'blue'],
message= project_update_url
)
- return data
\ No newline at end of file
+ return data
+
+@frappe.whitelist()
+def create_kanban_board_if_not_exists(project):
+ from frappe.desk.doctype.kanban_board.kanban_board import quick_kanban_board
+
+ if not frappe.db.exists('Kanban Board', project):
+ quick_kanban_board('Task', project, 'status')
+
+ return True
\ No newline at end of file