def validate_status(self): if self.status!=self.get_db_value("status") and self.status == "Completed": for d in self.depends_on: if frappe.db.get_value("Task", d.task, "status") not in ("Completed", "Cancelled"): frappe.throw(_("Cannot complete task {0} as its dependant task {1} are not ccompleted / cancelled.").format(frappe.bold(self.name), frappe.bold(d.task))) close_all_assignments(self.doctype, self.name)
def validate_status(self): if self.status != self.get_db_value( "status") and self.status == "Completed": for d in self.depends_on: if frappe.db.get_value("Task", d.task, "status") not in ("Completed", "Closed"): frappe.throw( _("Cannot complete task {0} as its dependant tasks {1} are not completed / closed." ).format(frappe.bold(self.name), frappe.bold(d.task))) if frappe.db.get_single_value( "Projects Settings", "remove_assignment_on_task_completion"): close_all_assignments(self.doctype, self.name)
def unassign_todo(self): if self.status == "Completed": close_all_assignments(self.doctype, self.name) if self.status == "Cancelled": clear(self.doctype, self.name)
def close_assignments(self, doc): '''Close assignments''' if self.safe_eval('close_condition', doc): return assign_to.close_all_assignments(doc.get('doctype'), doc.get('name'))
def unassign_todo(self): if self.status == "Completed" and frappe.db.get_single_value( "Projects Settings", "remove_assignment_on_task_completion"): close_all_assignments(self.doctype, self.name) if self.status == "Cancelled": clear(self.doctype, self.name)
def close_assignments(self, doc): """Close assignments""" if self.safe_eval("close_condition", doc): return assign_to.close_all_assignments(doc.get("doctype"), doc.get("name"))