50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2019, Frappe and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| 
 | |
| import frappe
 | |
| 
 | |
| 
 | |
| def execute():
 | |
| 	frappe.reload_doc("projects", "doctype", "project_template")
 | |
| 	frappe.reload_doc("projects", "doctype", "project_template_task")
 | |
| 	frappe.reload_doc("projects", "doctype", "task")
 | |
| 
 | |
| 	# Update property setter status if any
 | |
| 	property_setter = frappe.db.get_value(
 | |
| 		"Property Setter", {"doc_type": "Task", "field_name": "status", "property": "options"}
 | |
| 	)
 | |
| 
 | |
| 	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()
 |