Merge branch 'project-template-and-tasks' of https://github.com/pateljannat/erpnext into project-template-and-tasks
diff --git a/erpnext/patches/v13_0/update_project_template_tasks.py b/erpnext/patches/v13_0/update_project_template_tasks.py
index 26c4259..f24a2c6 100644
--- a/erpnext/patches/v13_0/update_project_template_tasks.py
+++ b/erpnext/patches/v13_0/update_project_template_tasks.py
@@ -6,6 +6,8 @@
 
 def execute():
     frappe.reload_doc("projects", "doctype", "project_template")
+    frappe.reload_doc("projects", "doctype", "project_template_task")
+    frappe.reload_doc("projects", "doctype", "project_template")
     for template_name in frappe.db.sql(""" 
         select 
             name 
diff --git a/erpnext/projects/doctype/project_template/project_template.js b/erpnext/projects/doctype/project_template/project_template.js
index 7668df3..04153dc 100644
--- a/erpnext/projects/doctype/project_template/project_template.js
+++ b/erpnext/projects/doctype/project_template/project_template.js
@@ -15,3 +15,13 @@
 		});
 	}
 });
+
+frappe.ui.form.on('Project Template Task', {
+	task: function (frm, cdt, cdn) {
+		var row = locals[cdt][cdn];
+		frappe.db.get_value("Task", row.task, "subject", (value) => {
+				row.subject = value.subject;
+				refresh_field("tasks");
+			});
+	}
+})
diff --git a/erpnext/projects/doctype/project_template_task/project_template_task.json b/erpnext/projects/doctype/project_template_task/project_template_task.json
index 80c510d..7a55294 100644
--- a/erpnext/projects/doctype/project_template_task/project_template_task.json
+++ b/erpnext/projects/doctype/project_template_task/project_template_task.json
@@ -5,7 +5,8 @@
  "editable_grid": 1,
  "engine": "InnoDB",
  "field_order": [
-  "task"
+  "task",
+  "subject"
  ],
  "fields": [
   {
@@ -15,11 +16,17 @@
    "label": "Task",
    "options": "Task",
    "reqd": 1
+  },
+  {
+   "fieldname": "subject",
+   "fieldtype": "Read Only",
+   "in_list_view": 1,
+   "label": "Subject"
   }
  ],
  "istable": 1,
  "links": [],
- "modified": "2020-12-07 13:28:40.961810",
+ "modified": "2020-12-28 12:10:26.321913",
  "modified_by": "Administrator",
  "module": "Projects",
  "name": "Project Template Task",
diff --git a/erpnext/projects/doctype/task/task.json b/erpnext/projects/doctype/task/task.json
index bb55256..160cc58 100644
--- a/erpnext/projects/doctype/task/task.json
+++ b/erpnext/projects/doctype/task/task.json
@@ -115,7 +115,7 @@
    "no_copy": 1,
    "oldfieldname": "status",
    "oldfieldtype": "Select",
-   "options": "Open\nWorking\nPending Review\nOverdue\nCompleted\nCancelled"
+   "options": "Open\nWorking\nPending Review\nOverdue\nTemplate\nCompleted\nCancelled"
   },
   {
    "fieldname": "priority",
@@ -388,7 +388,7 @@
  "is_tree": 1,
  "links": [],
  "max_attachments": 5,
- "modified": "2020-12-21 11:59:24.196834",
+ "modified": "2020-12-28 11:32:58.714991",
  "modified_by": "Administrator",
  "module": "Projects",
  "name": "Task",
diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py
index 80b764b..a2095c9 100755
--- a/erpnext/projects/doctype/task/task.py
+++ b/erpnext/projects/doctype/task/task.py
@@ -56,6 +56,8 @@
             validate_project_dates(getdate(expected_end_date), self, "act_start_date", "act_end_date", "Actual")
 
     def validate_status(self):
+        if self.is_template and self.status != "Template":
+            self.status = "Template"
         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"):