fix(task): Fix error when trying to convert a task into a group even if no child tasks exist
diff --git a/erpnext/projects/doctype/task/task.js b/erpnext/projects/doctype/task/task.js
index b8f324a..c1a9c44 100644
--- a/erpnext/projects/doctype/task/task.js
+++ b/erpnext/projects/doctype/task/task.js
@@ -80,15 +80,15 @@
}
},
- is_group: function(frm) {
+ is_group: function (frm) {
frappe.call({
- method:"erpnext.projects.doctype.task.task.check_if_child_exists",
+ method: "erpnext.projects.doctype.task.task.check_if_child_exists",
args: {
name: frm.doc.name
},
- callback: function(r){
- if(r.message){
- frappe.msgprint(__('Cannot convert it to non-group. Child Tasks exist.'));
+ callback: function (r) {
+ if (r.message.length > 0) {
+ frappe.msgprint(__(`Cannot convert it to non-group. The following child Tasks exist: ${r.message.join(", ")}.`));
frm.reload_doc();
}
}
diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py
index 3dc52d4..649d73a 100755
--- a/erpnext/projects/doctype/task/task.py
+++ b/erpnext/projects/doctype/task/task.py
@@ -2,12 +2,15 @@
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
-import frappe, json
-from frappe.utils import getdate, date_diff, add_days, cstr
+import json
+
+import frappe
from frappe import _, throw
+from frappe.utils import add_days, cstr, date_diff, get_link_to_form, getdate
from frappe.utils.nestedset import NestedSet
+
class CircularReferenceError(frappe.ValidationError): pass
class Task(NestedSet):
@@ -157,8 +160,10 @@
@frappe.whitelist()
def check_if_child_exists(name):
- return frappe.db.sql("""select name from `tabTask`
- where parent_task = %s""", name)
+ child_tasks = frappe.get_all("Task", filters={"parent_task": name})
+ child_tasks = [get_link_to_form("Task", task.name) for task in child_tasks]
+ return child_tasks
+
def get_project(doctype, txt, searchfield, start, page_len, filters):
from erpnext.controllers.queries import get_match_cond
@@ -237,4 +242,4 @@
new_task.insert()
def on_doctype_update():
- frappe.db.add_index("Task", ["lft", "rgt"])
\ No newline at end of file
+ frappe.db.add_index("Task", ["lft", "rgt"])