Merge pull request #58171 from frappe/mergify/bp/version-16-hotfix/pr-58167

fix: validation for task end date check (backport #58167)
This commit is contained in:
Nishka Gosalia
2026-08-14 16:36:33 +05:30
committed by GitHub

View File

@@ -122,19 +122,35 @@ class Task(NestedSet):
if not self.project or frappe.in_test:
return
if project_end_date := frappe.db.get_value("Project", self.project, "expected_end_date"):
project_end_date = getdate(project_end_date)
for fieldname in ("exp_start_date", "exp_end_date", "act_start_date", "act_end_date"):
task_date = self.get(fieldname)
if task_date and date_diff(project_end_date, getdate(task_date)) < 0:
frappe.throw(
_("{0}'s {1} cannot be after {2}'s Expected End Date.").format(
frappe.bold(frappe.get_desk_link("Task", self.name)),
_(self.meta.get_label(fieldname)),
frappe.bold(frappe.get_desk_link("Project", self.project)),
),
frappe.exceptions.InvalidDates,
)
project_start_date, project_end_date = frappe.db.get_value(
"Project", self.project, ["expected_start_date", "expected_end_date"]
)
for fieldname in ("exp_start_date", "exp_end_date", "act_start_date", "act_end_date"):
task_date = self.get(fieldname)
if not task_date:
continue
task_date = getdate(task_date)
if project_end_date and date_diff(getdate(project_end_date), task_date) < 0:
frappe.throw(
_("{0}'s {1} cannot be after {2}'s Expected End Date.").format(
get_link_to_form("Task", self.name),
_(self.meta.get_label(fieldname)),
get_link_to_form("Project", self.project),
),
frappe.exceptions.InvalidDates,
)
if project_start_date and date_diff(task_date, getdate(project_start_date)) < 0:
frappe.throw(
_("{0}'s {1} cannot be before {2}'s Expected Start Date.").format(
get_link_to_form("Task", self.name),
_(self.meta.get_label(fieldname)),
get_link_to_form("Project", self.project),
),
frappe.exceptions.InvalidDates,
)
def validate_status(self):
if self.is_template and self.status != "Template":