Merge pull request #24446 from deepeshgarg007/patch-fix-1-new
fix: Project Template patch
diff --git a/erpnext/patches/v13_0/update_project_template_tasks.py b/erpnext/patches/v13_0/update_project_template_tasks.py
index 5fa0623..8cc27d2 100644
--- a/erpnext/patches/v13_0/update_project_template_tasks.py
+++ b/erpnext/patches/v13_0/update_project_template_tasks.py
@@ -5,40 +5,43 @@
import frappe
def execute():
- frappe.reload_doc("projects", "doctype", "project_template")
- frappe.reload_doc("projects", "doctype", "project_template_task")
- frappe.reload_doc("projects", "doctype", "project_template")
- frappe.reload_doc("projects", "doctype", "task")
+ frappe.reload_doc("projects", "doctype", "project_template")
+ frappe.reload_doc("projects", "doctype", "project_template_task")
+ frappe.reload_doc("projects", "doctype", "task")
- for template_name in frappe.db.sql("""
- select
- name
- from
- `tabProject Template` """,
- as_dict=1):
-
- template = frappe.get_doc("Project Template", template_name.name)
- replace_tasks = False
- new_tasks = []
- for task in template.tasks:
- if task.subject:
- replace_tasks = True
- new_task = frappe.get_doc(dict(
- doctype = "Task",
- subject = task.subject,
- start = task.start,
- duration = task.duration,
- task_weight = task.task_weight,
- description = task.description,
- is_template = 1
- )).insert()
- new_tasks.append(new_task)
+ # Update property setter status if any
+ property_setter = frappe.db.get_value('Property Setter', {'doc_type': 'Task',
+ 'field_name': 'status', 'property': 'options'})
- if replace_tasks:
- template.tasks = []
- for tsk in new_tasks:
- template.append("tasks", {
- "task": tsk.name,
- "subject": tsk.subject
- })
- template.save()
\ No newline at end of file
+ if property_setter:
+ property_setter_doc = frappe.get_doc('Property Setter', {'doc_type': 'Task',
+ 'field_name': 'status', 'property': 'options'})
+ property_setter_doc.value += "\nTemplate"
+ property_setter_doc.save()
+
+ for template_name in frappe.get_all('Project Template'):
+ template = frappe.get_doc("Project Template", template_name.name)
+ replace_tasks = False
+ new_tasks = []
+ for task in template.tasks:
+ if task.subject:
+ replace_tasks = True
+ new_task = frappe.get_doc(dict(
+ doctype = "Task",
+ subject = task.subject,
+ start = task.start,
+ duration = task.duration,
+ task_weight = task.task_weight,
+ description = task.description,
+ is_template = 1
+ )).insert()
+ new_tasks.append(new_task)
+
+ if replace_tasks:
+ template.tasks = []
+ for tsk in new_tasks:
+ template.append("tasks", {
+ "task": tsk.name,
+ "subject": tsk.subject
+ })
+ template.save()
\ No newline at end of file