diff --git a/project_tasks_from_templates/README.rst b/project_tasks_from_templates/README.rst
index 4c8b8f959..6c339f099 100755
--- a/project_tasks_from_templates/README.rst
+++ b/project_tasks_from_templates/README.rst
@@ -1,11 +1,24 @@
-Project Templates v15
-=====================
-This module will helps you to create projects and tasks from templates.
+.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg
+ :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+Project Templates
+=================
+This module will help you to create projects and tasks from templates.
+
+Features
+========
+* Allows to create project from project template.
+* Multiple levels of tasks and sub tasks from template.
Configuration
=============
-* No additional configurations needed
+Nothing to configure.
+
+License
+-------
+General Public License, Version 3 (AGPL v3).
+(https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Company
-------
@@ -13,8 +26,8 @@ Company
Credits
-------
-* Developers: Ajmunnisa KP @ cybrosys, odoo@cybrosys.com
-
+* Developers (V15) Ajmunnisa KP,
+ Contact: odoo@cybrosys.com
Contacts
--------
@@ -31,3 +44,9 @@ Maintainer
:target: https://cybrosys.com
This module is maintained by Cybrosys Technologies.
+
+For support and more information, please visit `Our Website `__
+
+Further information
+===================
+HTML Description: ``__
diff --git a/project_tasks_from_templates/__init__.py b/project_tasks_from_templates/__init__.py
index 8bf80ef3c..2ad5188e6 100755
--- a/project_tasks_from_templates/__init__.py
+++ b/project_tasks_from_templates/__init__.py
@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
-#############################################################################
+###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
-# Copyright (C) 2022-TODAY Cybrosys Technologies().
-# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com)
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
@@ -18,6 +18,5 @@
# (AGPL v3) along with this program.
# If not, see .
#
-#############################################################################
-
+###############################################################################
from . import models
diff --git a/project_tasks_from_templates/__manifest__.py b/project_tasks_from_templates/__manifest__.py
index ad6fba0d5..7119a02a9 100755
--- a/project_tasks_from_templates/__manifest__.py
+++ b/project_tasks_from_templates/__manifest__.py
@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
-#############################################################################
+###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
-# Copyright (C) 2022-TODAY Cybrosys Technologies().
-# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com)
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
@@ -18,24 +18,31 @@
# (AGPL v3) along with this program.
# If not, see .
#
-#############################################################################
-
+###############################################################################
{
'name': 'Project Templates',
'version': '15.0.1.0.0',
'category': "Project",
- 'summary': """This app allows your project team to create project template and task template""",
- 'description': "This app allows your project team to create project template and task template",
+ 'summary': "This app allows your project team to create project"
+ "template and task template",
+ 'description': "When faced with the need to create multiple projects that "
+ "share similar tasks, manually inputting data such as task "
+ "names, descriptions, and assigned individuals can be "
+ "time-consuming. In such situations, this module offers "
+ "assistance in creating and managing projects based on "
+ "pre-defined templates.",
'author': 'Cybrosys Techno Solutions',
- 'website': "https://www.cybrosys.com",
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
- 'depends': ['base', 'project'],
+ 'website': "https://www.cybrosys.com",
+ 'depends': ['project'],
'data': [
- 'views/project_task.xml',
'security/ir.model.access.csv',
+ 'views/project_project_views.xml',
+ 'views/project_task_custom_views.xml',
+ 'views/project_task_template_views.xml',
],
- 'images': ['static/description/banner.png'],
+ 'images': ['static/description/banner.jpg'],
'license': 'AGPL-3',
'installable': True,
'auto_install': False,
diff --git a/project_tasks_from_templates/doc/RELEASE_NOTES.md b/project_tasks_from_templates/doc/RELEASE_NOTES.md
index 4dd750d3c..31d6aca71 100755
--- a/project_tasks_from_templates/doc/RELEASE_NOTES.md
+++ b/project_tasks_from_templates/doc/RELEASE_NOTES.md
@@ -1,6 +1,5 @@
## Module
-
-#### 05.06.2022
+#### 09.01.2024
#### Version 15.0.1.0.0
#### ADD
-Initial Commit for Project Templates
+- Initial Commit for Project Templates
diff --git a/project_tasks_from_templates/models/__init__.py b/project_tasks_from_templates/models/__init__.py
index a2fdf63ea..4cd63f36f 100755
--- a/project_tasks_from_templates/models/__init__.py
+++ b/project_tasks_from_templates/models/__init__.py
@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
-#############################################################################
+###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
-# Copyright (C) 2022-TODAY Cybrosys Technologies().
-# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com)
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
#
# You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
@@ -18,6 +18,7 @@
# (AGPL v3) along with this program.
# If not, see .
#
-#############################################################################
-
-from . import project
+###############################################################################
+from . import project_project
+from . import project_task_custom
+from . import project_task_template
diff --git a/project_tasks_from_templates/models/project.py b/project_tasks_from_templates/models/project.py
deleted file mode 100755
index c3807f31c..000000000
--- a/project_tasks_from_templates/models/project.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# -*- coding: utf-8 -*-
-#############################################################################
-#
-# Cybrosys Technologies Pvt. Ltd.
-#
-# Copyright (C) 2022-TODAY Cybrosys Technologies().
-# Author: Cybrosys Technogies @cybrosys(odoo@cybrosys.com)
-#
-# You can modify it under the terms of the GNU AFFERO
-# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
-#
-# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
-# (AGPL v3) along with this program.
-# If not, see .
-#
-#############################################################################
-
-from odoo import models, fields, api, _
-
-
-class Project(models.Model):
- _inherit = 'project.project'
-
- project_template_id = fields.Many2one('project.task.template')
-
- def create_task(self, item, parent):
- vals = {'project_id': self.id,
- 'name': item.name,
- 'parent_id': parent,
- 'stage_id': self.env['project.task.type'].search([('sequence', '=', 1)], limit=1).id,
- 'user_ids': item.user_ids,
- 'description': item.description
- }
- task_id = self.env['project.task'].create(vals).id
- for sub_task in item.child_ids:
- self.create_task(sub_task, task_id)
-
- def action_create_project_from_template(self):
- template_id = self.project_template_id
- for item in template_id.task_ids:
- self.create_task(item, False)
- return {
- 'view_mode': 'form',
- 'res_model': 'project.project',
- 'res_id': self.id,
- 'type': 'ir.actions.act_window',
- 'context': self._context
- }
-
-
-class ProjectTaskCustom(models.Model):
- _name = 'project.task.custom'
-
- name = fields.Char("Name", required=True)
- project_template_id = fields.Many2one('project.task.template')
- description = fields.Text("Task Description")
- user_ids = fields.Many2many('res.users', relation='project_task_custom_user_rel', column1='task_id',
- column2='user_id',
- string='Assignees', tracking=True)
- parent_id = fields.Many2one('project.task.custom', string='Parent Task', index=True)
- child_ids = fields.One2many('project.task.custom', 'parent_id', string="Sub-tasks")
-
- def action_open_task(self):
- return {
- 'view_mode': 'form',
- 'res_model': 'project.task.custom',
- 'res_id': self.id,
- 'type': 'ir.actions.act_window',
- 'context': self._context
- }
-
-
-class ProjectTaskTemplate(models.Model):
- _name = 'project.task.template'
-
- name = fields.Char("Template name", translate=True)
- task_ids = fields.One2many('project.task.custom', 'project_template_id', string="Tasks")
diff --git a/project_tasks_from_templates/models/project_project.py b/project_tasks_from_templates/models/project_project.py
new file mode 100755
index 000000000..f2b1e60eb
--- /dev/null
+++ b/project_tasks_from_templates/models/project_project.py
@@ -0,0 +1,104 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from odoo import fields, models
+
+
+class ProjectProject(models.Model):
+ """ This class extends the 'project.project' model to add a many2one
+ field for selecting project task template.
+ Methods:
+ action_create_project_from_template():
+ Creates a new project based on the selected project template.
+ _create_task(item, parent):
+ Creates a new project task for the given item and attaches
+ it to the current project.
+ """
+ _inherit = 'project.project'
+
+ project_template_id = fields.Many2one(
+ 'project.task.template',
+ string='Project Template',
+ help='Select a project task template to use for this project.')
+
+ def action_create_project_from_template(self):
+ """ Creates a new project based on the selected project template.
+ Returns:
+ dict: Action configuration to open the project form.
+ """
+ if not self.project_template_id.stage_ids:
+ for item in self.project_template_id.task_ids:
+ self._create_task(item, False)
+ return {
+ 'view_mode': 'form',
+ 'res_model': 'project.project',
+ 'res_id': self.id,
+ 'type': 'ir.actions.act_window',
+ 'context': self._context
+ }
+ else:
+ for item in self.project_template_id.stage_ids:
+ if self.id not in item.project_stage_id.project_ids.ids:
+ item.project_stage_id.project_ids = [(4, self.id)]
+ for task in item.task_ids:
+ self._create_task_with_stage(task, item.project_stage_id,
+ False)
+
+ def _create_task(self, item, parent):
+ """Creates a new project task for the given item and attaches it to
+ the current project.
+ Args:
+ item (models.Model): project task
+ parent (int): id of parent project task
+ """
+
+ task = self.env['project.task'].sudo().create({
+ 'project_id': self.id,
+ 'name': item.name,
+ 'parent_id': parent,
+ 'stage_id': self.env['project.task.type'].search(
+ [('sequence', '=', 1)], limit=1).id,
+ 'user_ids': item.user_ids,
+ 'description': item.description,
+ 'kanban_state': item.state or 'normal',
+ })
+ for sub_task in item.child_ids:
+ self._create_task(sub_task, task.id)
+
+ def _create_task_with_stage(self, item, stage, parent=False):
+ """Creates a new project task with stage for the given item and attaches it to
+ the current project.
+ Args:
+ item (models.Model): project task
+ parent (int): id of parent project task
+ """
+
+ task = self.env['project.task'].sudo().create({
+ 'project_id': self.id,
+ 'name': item.name,
+ 'parent_id': parent,
+ 'stage_id': stage.id,
+ 'user_ids': item.user_ids,
+ 'description': item.description,
+ 'kanban_state': item.state or 'normal',
+ })
+ for sub_task in item.child_ids:
+ self._create_task_with_stage(sub_task, stage, task.id)
diff --git a/project_tasks_from_templates/models/project_task_custom.py b/project_tasks_from_templates/models/project_task_custom.py
new file mode 100644
index 000000000..03c4f03b4
--- /dev/null
+++ b/project_tasks_from_templates/models/project_task_custom.py
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from odoo import fields, models
+
+
+class ProjectTaskCustom(models.Model):
+ """Customized version of the 'project.task' model to support templates
+ and sub-tasks
+ Methods:
+ action_open_task():
+ Returns an action to open the current task in a form view"""
+ _name = 'project.task.custom'
+ _description = 'Project Task Custom'
+
+ name = fields.Char(string='Name', required=True,
+ help='Enter the name of the task')
+ project_template_id = fields.Many2one(
+ 'project.task.template', string='Project Template',
+ help='Select a project task template to use for this task.')
+ description = fields.Html(string='Task Description',
+ help='Enter a description for the task.')
+ user_ids = fields.Many2many(
+ 'res.users', relation='project_task_custom_user_rel', column1='task_id',
+ column2='user_id', string='Assignees', tracking=True,
+ help='Select the users who are assigned to this task.')
+ parent_id = fields.Many2one(
+ 'project.task.custom', string='Parent Task', index=True,
+ help='Select the parent task, if any.')
+ child_ids = fields.One2many(
+ 'project.task.custom', 'parent_id', string='Sub-Tasks',
+ help='List of sub-tasks, if any.')
+ show_tasks_page = fields.Boolean(
+ compute='_compute_show_tasks_page',
+ string="Show Tasks Page",
+ readonly=False)
+
+ state = fields.Selection([
+ ('normal', 'In Progress'),
+ ('done', 'Ready'),
+ ('blocked', 'Blocked')], string='State',
+ default='normal', required=True)
+
+ def action_open_task(self):
+ """ Action method to open the current task in a form view.
+ Returns:
+ dict: Action configuration to open the task form.
+ """
+ return {
+ 'view_mode': 'form',
+ 'res_model': 'project.task.custom',
+ 'res_id': self.id,
+ 'type': 'ir.actions.act_window',
+ 'context': self._context
+ }
+
+ def _compute_show_tasks_page(self):
+ """ Compute function to determine whether Sub-Tasks are enabled.
+ This method computes the value of the 'show_tasks_page' field for each
+ record based on whether Sub-Tasks are enabled or not. If Sub-Tasks
+ are enabled, 'show_tasks_page' is set to True, allowing the display
+ of Sub-Tasks. If Sub-Tasks are not enabled, 'show_tasks_page' is set
+ to False.
+ """
+ for task in self:
+ task.show_tasks_page = self.env.user.has_group(
+ 'project.group_subtask_project')
diff --git a/project_tasks_from_templates/models/project_task_template.py b/project_tasks_from_templates/models/project_task_template.py
new file mode 100644
index 000000000..bb68baad2
--- /dev/null
+++ b/project_tasks_from_templates/models/project_task_template.py
@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+###############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions (odoo@cybrosys.com)
+#
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+###############################################################################
+from odoo import fields, models , api
+
+
+class ProjectTaskTemplate(models.Model):
+ """A model to define task templates for projects."""
+ _name = 'project.task.template'
+ _description = 'Project Task Template'
+
+ name = fields.Char(string='Template Name', translate=True,
+ help='Name for the task template.')
+ task_ids = fields.One2many(
+ 'project.task.custom', 'project_template_id',
+ string='Tasks',
+ help='List of the tasks associated with this template.')
+ stage_ids = fields.One2many(
+ 'project.stage', 'project_template_id',
+ string='Stages',
+ help='List of the stages associated with this template.')
+
+
+class ProjectStage(models.Model):
+ """A model to define task templates for projects."""
+ _name = 'project.stage'
+ _order = "sequence,id"
+
+ project_template_id = fields.Many2one(
+ 'project.task.template', string='Project Template',
+ help='Select a project task template to use for this task.')
+ project_stage_id = fields.Many2one(
+ 'project.task.type', string='Project Stage',
+ help='Select a project stage. ',required=True)
+ task_ids = fields.Many2many(
+ 'project.task.custom',
+ help='Choose the tasks corresponding to each stage')
+
+ sequence = fields.Integer(related="project_stage_id.sequence",readonly=False)
+
+
+class ProjectTaskType(models.Model):
+ _inherit = "project.task.type"
+
+ project_template_id = fields.Many2one(
+ 'project.task.template')
diff --git a/project_tasks_from_templates/security/ir.model.access.csv b/project_tasks_from_templates/security/ir.model.access.csv
index f2ec0c49b..3e94ed2a8 100755
--- a/project_tasks_from_templates/security/ir.model.access.csv
+++ b/project_tasks_from_templates/security/ir.model.access.csv
@@ -1,3 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_project_project_templates_manager,project.project.templates,model_project_task_template,project.group_project_manager,1,1,1,1
-access_project_project_templates_task_manager,project.project.templates.tasks,model_project_task_custom,project.group_project_manager,1,1,1,1
+access_project_task_template_manager,access.project.task.template.manager,model_project_task_template,project.group_project_manager,1,1,1,1
+access_project_task_custom_manager,access.project.task.custom.manager,model_project_task_custom,project.group_project_manager,1,1,1,1
+access_project_stage,access.project.stage,model_project_stage,project.group_project_manager,1,1,1,1
diff --git a/project_tasks_from_templates/static/description/assets/icons/capture (1).png b/project_tasks_from_templates/static/description/assets/icons/capture (1).png
new file mode 100644
index 000000000..8824deafc
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/icons/capture (1).png differ
diff --git a/project_tasks_from_templates/static/description/assets/icons/img.png b/project_tasks_from_templates/static/description/assets/icons/img.png
new file mode 100644
index 000000000..70197f477
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/icons/img.png differ
diff --git a/project_tasks_from_templates/static/description/assets/icons/photo-capture.png b/project_tasks_from_templates/static/description/assets/icons/photo-capture.png
new file mode 100644
index 000000000..06c111758
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/icons/photo-capture.png differ
diff --git a/project_tasks_from_templates/static/description/assets/misc/Cybrosys R.png b/project_tasks_from_templates/static/description/assets/misc/Cybrosys R.png
new file mode 100644
index 000000000..da4058087
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/misc/Cybrosys R.png differ
diff --git a/project_tasks_from_templates/static/description/assets/misc/email.svg b/project_tasks_from_templates/static/description/assets/misc/email.svg
new file mode 100644
index 000000000..15291cdc3
--- /dev/null
+++ b/project_tasks_from_templates/static/description/assets/misc/email.svg
@@ -0,0 +1,33 @@
+
diff --git a/project_tasks_from_templates/static/description/assets/misc/phone.svg b/project_tasks_from_templates/static/description/assets/misc/phone.svg
new file mode 100644
index 000000000..b7bd7f251
--- /dev/null
+++ b/project_tasks_from_templates/static/description/assets/misc/phone.svg
@@ -0,0 +1,3 @@
+
diff --git a/project_tasks_from_templates/static/description/assets/misc/star (1) 2.svg b/project_tasks_from_templates/static/description/assets/misc/star (1) 2.svg
new file mode 100644
index 000000000..5ae9f507a
--- /dev/null
+++ b/project_tasks_from_templates/static/description/assets/misc/star (1) 2.svg
@@ -0,0 +1,9 @@
+
diff --git a/project_tasks_from_templates/static/description/assets/misc/support (1) 1.svg b/project_tasks_from_templates/static/description/assets/misc/support (1) 1.svg
new file mode 100644
index 000000000..7d37a8f30
--- /dev/null
+++ b/project_tasks_from_templates/static/description/assets/misc/support (1) 1.svg
@@ -0,0 +1,9 @@
+
diff --git a/project_tasks_from_templates/static/description/assets/misc/support-email.svg b/project_tasks_from_templates/static/description/assets/misc/support-email.svg
new file mode 100644
index 000000000..eb70370d6
--- /dev/null
+++ b/project_tasks_from_templates/static/description/assets/misc/support-email.svg
@@ -0,0 +1,6 @@
+
diff --git a/project_tasks_from_templates/static/description/assets/misc/tick-mark.svg b/project_tasks_from_templates/static/description/assets/misc/tick-mark.svg
new file mode 100644
index 000000000..2dbb40187
--- /dev/null
+++ b/project_tasks_from_templates/static/description/assets/misc/tick-mark.svg
@@ -0,0 +1,17 @@
+
diff --git a/project_tasks_from_templates/static/description/assets/misc/whatsapp 1.svg b/project_tasks_from_templates/static/description/assets/misc/whatsapp 1.svg
new file mode 100644
index 000000000..0bfaf8fc6
--- /dev/null
+++ b/project_tasks_from_templates/static/description/assets/misc/whatsapp 1.svg
@@ -0,0 +1,9 @@
+
diff --git a/project_tasks_from_templates/static/description/assets/misc/whatsapp.svg b/project_tasks_from_templates/static/description/assets/misc/whatsapp.svg
new file mode 100644
index 000000000..b618aea1d
--- /dev/null
+++ b/project_tasks_from_templates/static/description/assets/misc/whatsapp.svg
@@ -0,0 +1,33 @@
+
diff --git a/project_tasks_from_templates/static/description/assets/modules/1.jpg b/project_tasks_from_templates/static/description/assets/modules/1.jpg
new file mode 100644
index 000000000..e257ddb23
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/modules/1.jpg differ
diff --git a/project_tasks_from_templates/static/description/assets/modules/2.png b/project_tasks_from_templates/static/description/assets/modules/2.png
new file mode 100644
index 000000000..164eb62c7
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/modules/2.png differ
diff --git a/project_tasks_from_templates/static/description/assets/modules/3.png b/project_tasks_from_templates/static/description/assets/modules/3.png
new file mode 100644
index 000000000..57eebc5b2
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/modules/3.png differ
diff --git a/project_tasks_from_templates/static/description/assets/modules/4.png b/project_tasks_from_templates/static/description/assets/modules/4.png
new file mode 100755
index 000000000..c7d2c5117
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/modules/4.png differ
diff --git a/project_tasks_from_templates/static/description/assets/modules/5.png b/project_tasks_from_templates/static/description/assets/modules/5.png
new file mode 100644
index 000000000..5acf9a06a
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/modules/5.png differ
diff --git a/project_tasks_from_templates/static/description/assets/modules/6.png b/project_tasks_from_templates/static/description/assets/modules/6.png
new file mode 100644
index 000000000..1f51895f9
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/modules/6.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/1.png b/project_tasks_from_templates/static/description/assets/screenshots/1.png
new file mode 100644
index 000000000..003acdc33
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/screenshots/1.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/2.png b/project_tasks_from_templates/static/description/assets/screenshots/2.png
new file mode 100644
index 000000000..4d9f41b89
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/screenshots/2.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/3.png b/project_tasks_from_templates/static/description/assets/screenshots/3.png
new file mode 100644
index 000000000..54af5dc14
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/screenshots/3.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/4.png b/project_tasks_from_templates/static/description/assets/screenshots/4.png
new file mode 100644
index 000000000..6db52cae5
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/screenshots/4.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/5.png b/project_tasks_from_templates/static/description/assets/screenshots/5.png
new file mode 100644
index 000000000..479e6d778
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/screenshots/5.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/6.png b/project_tasks_from_templates/static/description/assets/screenshots/6.png
new file mode 100644
index 000000000..87a033115
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/screenshots/6.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/7.png b/project_tasks_from_templates/static/description/assets/screenshots/7.png
new file mode 100644
index 000000000..41ed71414
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/screenshots/7.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/8.png b/project_tasks_from_templates/static/description/assets/screenshots/8.png
new file mode 100644
index 000000000..333ce533a
Binary files /dev/null and b/project_tasks_from_templates/static/description/assets/screenshots/8.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/screenshot_3.png b/project_tasks_from_templates/static/description/assets/screenshots/screenshot_3.png
index 1a6bac7d9..f303ad43a 100644
Binary files a/project_tasks_from_templates/static/description/assets/screenshots/screenshot_3.png and b/project_tasks_from_templates/static/description/assets/screenshots/screenshot_3.png differ
diff --git a/project_tasks_from_templates/static/description/assets/screenshots/screenshot_4.png b/project_tasks_from_templates/static/description/assets/screenshots/screenshot_4.png
index 593dc6919..19f3def6a 100644
Binary files a/project_tasks_from_templates/static/description/assets/screenshots/screenshot_4.png and b/project_tasks_from_templates/static/description/assets/screenshots/screenshot_4.png differ
diff --git a/project_tasks_from_templates/views/project_project_views.xml b/project_tasks_from_templates/views/project_project_views.xml
new file mode 100755
index 000000000..ae7911a98
--- /dev/null
+++ b/project_tasks_from_templates/views/project_project_views.xml
@@ -0,0 +1,33 @@
+
+
+
+
+ project.project.view.form.inherit.project.tasks.from.templates
+ project.project
+
+
+
+
+
+
+
+
+
+
+
+
+ project.project.view.form.simplified
+ project.project
+
+
+
+
+
+
+
+
diff --git a/project_tasks_from_templates/views/project_task.xml b/project_tasks_from_templates/views/project_task.xml
deleted file mode 100755
index c9b5ebcca..000000000
--- a/project_tasks_from_templates/views/project_task.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
- Project Templates
- project.task.template
- tree,form
-
-
-
-
-
- project.template.tasks.manager
- project.task.template
-
-
-
-
-
-
-
- project.custom.tasks.manager
- project.task.custom
-
-
-
-
-
-
-
- project.project.view.form.simplified
- project.project
-
- primary
-
-
-
-
-
-
-
-
-
-
-
- project.template.tasks.manager.tree
- project.task.template
-
-
-
-
-
-
-
-
diff --git a/project_tasks_from_templates/views/project_task_custom_views.xml b/project_tasks_from_templates/views/project_task_custom_views.xml
new file mode 100644
index 000000000..2adb9b8bf
--- /dev/null
+++ b/project_tasks_from_templates/views/project_task_custom_views.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ project.task.custom.view.form
+ project.task.custom
+
+
+
+
+
diff --git a/project_tasks_from_templates/views/project_task_template_views.xml b/project_tasks_from_templates/views/project_task_template_views.xml
new file mode 100644
index 000000000..0f52de52f
--- /dev/null
+++ b/project_tasks_from_templates/views/project_task_template_views.xml
@@ -0,0 +1,62 @@
+
+
+
+
+ project.task.template.view.tree
+ project.task.template
+
+
+
+
+
+
+
+
+ project.task.template.view.form
+ project.task.template
+
+
+
+
+
+
+ Project Templates
+ project.task.template
+ tree,form
+
+
+
+