mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-19 21:19:19 +00:00
depends-on added to task, circular reference validation added
This commit is contained in:
@@ -27,6 +27,14 @@
|
|||||||
"options": "Project",
|
"options": "Project",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "depends_on",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Depends on (Task)",
|
||||||
|
"options": "Task",
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "column_break0",
|
"fieldname": "column_break0",
|
||||||
"fieldtype": "Column Break",
|
"fieldtype": "Column Break",
|
||||||
@@ -249,7 +257,7 @@
|
|||||||
"idx": 1,
|
"idx": 1,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 5,
|
"max_attachments": 5,
|
||||||
"modified": "2015-04-14 07:56:24.481667",
|
"modified": "2015-04-22 04:58:30.865304",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Projects",
|
"module": "Projects",
|
||||||
"name": "Task",
|
"name": "Task",
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ class Task(Document):
|
|||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_dates()
|
self.validate_dates()
|
||||||
|
self.validate_depends_on()
|
||||||
|
|
||||||
def validate_dates(self):
|
def validate_dates(self):
|
||||||
if self.exp_start_date and self.exp_end_date and getdate(self.exp_start_date) > getdate(self.exp_end_date):
|
if self.exp_start_date and self.exp_end_date and getdate(self.exp_start_date) > getdate(self.exp_end_date):
|
||||||
@@ -68,6 +69,21 @@ class Task(Document):
|
|||||||
project.flags.dont_sync_tasks = True
|
project.flags.dont_sync_tasks = True
|
||||||
project.update_costing()
|
project.update_costing()
|
||||||
project.save()
|
project.save()
|
||||||
|
|
||||||
|
def validate_depends_on(self):
|
||||||
|
if not self.depends_on:
|
||||||
|
return
|
||||||
|
task_list = [self.name]
|
||||||
|
task = self.depends_on
|
||||||
|
while task:
|
||||||
|
task = self.check_recursion(task, task_list)
|
||||||
|
|
||||||
|
def check_recursion(self, task, task_list):
|
||||||
|
if task in task_list:
|
||||||
|
frappe.throw("Circular Reference Error")
|
||||||
|
else :
|
||||||
|
task_list.append(task)
|
||||||
|
return frappe.db.get_value("Task", task, "depends_on")
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_events(start, end, filters=None):
|
def get_events(start, end, filters=None):
|
||||||
|
|||||||
Reference in New Issue
Block a user