From ce08aabc84a7038e2a338ef214c78488805dfbcd Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Tue, 20 Mar 2018 19:03:32 +0530 Subject: [PATCH] Add Kanban Board button in project (#13345) --- erpnext/projects/doctype/project/project.js | 26 ++++++++++++++------- erpnext/projects/doctype/project/project.py | 11 ++++++++- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js index 682398fa9e..7fbeaee693 100644 --- a/erpnext/projects/doctype/project/project.js +++ b/erpnext/projects/doctype/project/project.js @@ -49,6 +49,23 @@ frappe.ui.form.on("Project", { 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 @@ frappe.ui.form.on("Project", { } 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 02a4afb6d5..abb497c397 100644 --- a/erpnext/projects/doctype/project/project.py +++ b/erpnext/projects/doctype/project/project.py @@ -406,4 +406,13 @@ def create_project_update(project): 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