Merge pull request #16029 from Alchez/hotfix-child-task-error

Fix error when trying to convert a task into a group even if no child tasks exist
This commit is contained in:
Nabin Hait 2018-11-27 14:17:32 +05:30 committed by GitHub
commit 15ca2f438f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 10 deletions

View File

@ -80,15 +80,15 @@ frappe.ui.form.on("Task", {
}
},
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();
}
}

View File

@ -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 @@ class Task(NestedSet):
@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 @@ def add_multiple_tasks(data, parent):
new_task.insert()
def on_doctype_update():
frappe.db.add_index("Task", ["lft", "rgt"])
frappe.db.add_index("Task", ["lft", "rgt"])