Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
:show-content:
:hide-page-toc:

==================
Project management
Expand Down Expand Up @@ -157,3 +156,4 @@ You can also create your own buttons to access more specific views:

project_management/project_dashboard
project_management/project_profitability
project_management/project_templates
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
=================
Project templates
=================

Templates allow you to create new projects with predefined settings, reducing the need to manually
set up similar projects repeatedly.

Creating templates
==================

To create a project template, an existing project is required and used as a base to be converted
into a template. Converting a project into a template transfers the entire project's properties to
the template. This includes the project’s stages, tasks, sub-tasks, and their respective
configurations, such as planned dates, statuses, assignees, and more.

Access the settings of the project that you want to convert into a template: go to
:guilabel:`Projects`, hover your mouse on a project card, click the :icon:`fa-ellipsis-v`
(:guilabel:`fa-ellipsis-v`) icon on one of your projects, and click on :guilabel:`Settings`. Review
and adjust the project’s properties to ensure it reflects your desired template setup.

Once your project is ready, click the :icon:`fa-cog` (:guilabel:`cog`) icon and select
:guilabel:`Convert to Template`. The :guilabel:`Template` banner indicates that the project has been
successfully converted into a template.

.. warning::
Converting a project into a template will also archive the original project used to create the
template. To keep in your database a project that you want to convert into a template, duplicate
the project and convert the copy into the template: go to :guilabel:`Projects`, click the
:icon:`fa-ellipsis-v` icon on one of your projects, and then click :guilabel:`Duplicate`. Then
convert the copy into the template.

To edit a template, go to :menuselection:`Projects --> New`, and click the
:icon:`fa-pencil` (:guilabel:`pencil`) icon next to the name of the template that you want to edit.
Make the changes according to your needs, and click :guilabel:`Save`. Editing a template does not
affect the projects that were previously created from it.

To delete a template, go to :menuselection:`Projects --> New`, and click the
:icon:`fa-trash` (:guilabel:`trash`) icon. Click :guilabel:`Ok` to confirm. Deleting a template
does not erase projects that were previously created from it.

Using templates
===============

To create a new project from a template, go to :menuselection:`Projects --> New`, and click on a
template in the :guilabel:`Project Templates` section. Enter a name for your project. Optionally,
add a :guilabel:`Customer`, a :guilabel:`Planned Date`, and set up the task creation email. Then,
click :guilabel:`Create Project`.

Templates can also be used when creating a project directly from a sales order. To do so, the
project template must be set as :guilabel:`Billable` first: click on :menuselection:`Projects -->
New`, and click the :icon:`fa-pencil` (:guilabel:`pencil`) icon next to the name of the
template you want to edit. Then, click on the :guilabel:`Settings` tab, tick the
:guilabel:`Billable` checkbox, and click :guilabel:`Save`. Once this is done, you can use a template
to automatically create a project when a product is sold: Go to the :guilabel:`Sales` app, click on
:menuselection:`Products --> Products --> New`. Select :guilabel:`Service` as the
:guilabel:`Product Type`, and choose :guilabel:`Project` or :guilabel:`Project & Task` in the
:guilabel:`Create on Order` field. Then, select a :guilabel:`Project Template` and click
:guilabel:`Save`.


Project roles in templates
==========================

Templates enable you to pre-select specific roles for tasks within your template, making the
selection of assignees faster during the creation of a new project using a template.

Go to :menuselection:`Projects --> New`, and click the :icon:`fa-pencil` (:guilabel:`pencil`)
icon next to the name of the template you want to edit. Then click on the :guilabel:`Tasks` smart
button, and on one of the tasks. In the :guilabel:`Project Roles` field, type or select the roles
that you want to perform this task, then click :guilabel:`Save`.

Create a project based on this template: go to :menuselection:`Projects --> New`, and click on
the name of the template. The :guilabel:`Create a project from template` form then includes
:guilabel:`Project Roles`. For each of them, you can select assignees by clicking on the
:guilabel:`Assignees` field. This automatically dispatches the right tasks to the right employees.

Task scheduling in templates
============================

In a project template, task scheduling can be automated according to the planned dates specified
within the template.

.. important::
Project and task planned dates are not saved when converting a project into a template. These
require to be added to the template after it is created.

On the project template, define the :guilabel:`Planned dates` for both the project and each task.
When tasks have planned start dates in the template, Odoo calculates the number of working days
between the project’s start date and the first scheduled task. This time window is referred to as
the *delta*.

When a new project is generated from this template:

- The system uses the project’s start date as a reference.
- Each task’s start date is automatically planned according to its delta.
- If no start date is set on the new project, the current date is used as the default start date.
- Task end dates are then determined automatically by Odoo’s scheduling algorithm.

.. note::
To ensure that all project roles and tasks are planned without conflict according to the team’s
availability and workload, the scheduling algorithm calculates the end date of each task based on
the allocated time, while also considering task dependencies and assignee’s availability, working
schedule, time off, and public holidays.