Compare commits

...

3 Commits

Author SHA1 Message Date
Aaron Bohy 9634e6eebb [REM] reference/user_interface: remove banner_route
This commit removes the documentation about the banner_route view
attribute, which has been dropped in odoo/odoo#177244.

Task~4126004
2024-08-23 08:30:14 +02:00
Aaron Bohy 924d273f50 [IMP] reference/user_interface: adapt list width attr doc
This commit rewrittes the documentation of the `width` attribute
in list views, following recent changes [1]

[1] odoo/odoo#170511
2024-07-11 17:12:14 +02:00
Zuzanna Luczynska 04aacf8863 [ADD] project: new task creation and statuses docs
task-4010729

closes odoo/documentation#10037

X-original-commit: 5938ac0931
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Zuzanna Luczynska (zulu) <zulu@odoo.com>
2024-07-11 06:49:02 +00:00
14 changed files with 214 additions and 97 deletions
+1 -1
View File
@@ -16,5 +16,5 @@ coworkers, and keep track of each project's profitability.
.. toctree::
:titlesonly:
project/tasks
project/project_management
project/tasks
@@ -13,6 +13,8 @@ into tasks, which are categorized on a whiteboard according to what production p
`Odoo Tutorials: Kanban Project Management
<https://www.odoo.com/slides/slide/kanban-project-management-1664>`_
.. _project_management/configuration:
Configuration
=============
@@ -1,11 +1,12 @@
:nosearch:
=====
Tasks
=====
===============
Task management
===============
.. toctree::
:titlesonly:
tasks/email_alias
tasks/task_stages_statuses
tasks/task_creation
tasks/recurring_tasks
@@ -1,37 +0,0 @@
==========================================
Create Project's Tasks from an Email Alias
==========================================
When you already have an email address that customers know from the top of their heads, changing
it is the last thing you want to do. Instead, link that address to your project and transform
those conversations into structured work. It automatically creates a task in the first stage
of a project.
Set up an incoming email server
===============================
| On the *Settings* application, enable *External Email Servers* and define the incoming email
alias you would like to use.
| **For more information**: :doc:`/applications/general/email_communication/email_servers`
Configure the email alias in your project
-----------------------------------------
| Now that you have the incoming email server set up, go to
:menuselection:`Project --> Configuration --> Projects --> Edit`. Under the *Emails* tab, define
the wanted email alias and choose the policy to receive a message.
| In addition, you can now directly set it when creating a new project.
.. image:: email_alias/email_project.png
:align: center
:alt: In the settings of your project, define the emails alias under the tab email in Odoo Project
.. important::
All the recipients of the email (To/Cc/Bcc) are automatically added as followers of the task.
The email can be seen under the name of your project on the dashboard.
.. image:: email_alias/email_dashboard_project.png
:align: center
:height: 300
:alt: View of the email alias chosen on the dashboard view in Odoo Project
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,121 @@
=============
Task creation
=============
Tasks in Odoo Project can be created manually or automatically, including from emails or website
forms.
Manual task creation
====================
Open the Project app and choose the desired project. Create a new task by doing one of the
following:
- Clicking the :icon:`fa-plus` (:guilabel:`plus`) button in the upper left corner. This creates
a new task in the first stage of your Kanban view.
- Pressing the :icon:`fa-plus` (:guilabel:`plus`) button next to the Kanban stage name. This
creates a new task in this Kanban stage.
Fill in the :guilabel:`Task Title` and add one or more :guilabel:`Assignees`, then click
:guilabel:`Add`.
Task configuration
------------------
Click the task to open it. The task form includes the following fields that you can fill in:
- :guilabel:`Task Title`: title of the task.
- :icon:`fa-star-o` (:guilabel:`Star`): click the :icon:`fa-star-o` (:guilabel:`star`) icon to mark
the task as high priority. The icon will turn yellow. Click it again to remove the high priority.
- :guilabel:`Project`: the project that this task belongs to.
- :guilabel:`Assignees`: the person(s) in charge of handling the work on this task.
- :guilabel:`Tags`: custom labels allowing to categorize and filter your tasks.
- :guilabel:`Customer`: the person or company that will be billed for this task. This field only
appears in tasks that belong to billable projects.
- :guilabel:`Sales Order Item`: this can be either the sales order that was used to create this
task, or a sales order that was linked to this task manually. This field only appears in tasks
linked to billable projects.
- :guilabel:`Allocated Time`: the amount of time that the work on this task is expected to last,
tracked by timesheets.
- :guilabel:`Deadline`: the expected end date of the task. Once this field is filled in, you can
also add a start date to designate the entire time frame of the tasks' duration.
.. tip::
- You can also create new tasks by switching to the list or Gantt view and clicking
:guilabel:`New`.
- The following fields can also be edited directly from the Kanban view without opening the
individual task: :icon:`fa-star-o` (**priority**), :guilabel:`Allocated hours`,
:guilabel:`Assignees`, and **task status**. You can also **color code** or :guilabel:`Set a
Cover image` to your task by clicking the :icon:`fa-ellipsis-v` (**vertical ellipsis**).
- You can use the following keyboard shortcuts in the task title to configure new tasks (modify
the values in the examples below according to your needs):
- **30h**: to allocate 30 hours to the task.
- **#tags**: to add tags to the task.
- **@user**: to assign the task to a user.
- **!**: to star the task as high priority.
Along with using the correct format, follow this order: the task's name, followed by the
allocated time, the tags, the assignee, and then the priority.
For example, if you want to create a task named "Prepare workshop", allocate 5h hours to it,
add the "School" tag, assign it to Audrey and set its priority to :guilabel:`High`, enter the
following task title: Prepare workshop 5h #school @Audrey !
.. image:: task_creation/task-shortcuts.png
:alt: Using keyboard shortcuts to create a task in Project.
Creating tasks from an email alias
==================================
This feature allows for project tasks to be automatically created once an email is delivered to a
designated email address.
To configure it, open the Project app, then click the :icon:`fa-ellipsis-v` (:guilabel:`vertical
ellipsis`) icon next to the desired project's name. Select :guilabel:`Settings`, then open the
:guilabel:`Settings` tab.
Fill in the :guilabel:`Create tasks by sending an email to` field as follows:
- **Section of the alias before the @ symbol**: type the name of the email alias, e.g. `contact`,
`help`, `jobs`.
- **Domain**: in most cases, this is filled in by default with your
:doc:`domain <../../../general/email_communication/email_servers>`.
- **Accept Emails From**: refine the senders whose emails will create tasks in the project.
.. image:: task_creation/email-configuration.png
:alt: View of the email alias chosen on the dashboard view in Odoo Project
Once configured, the email alias can be seen under the name of your project on the Kanban dashboard.
When an email is sent to the alias, the email is automatically converted into a project task. The
following rules apply:
- The email sender is displayed in the :guilabel:`Customer` field.
- The email subject is displayed in the :guilabel:`Task Title` field.
- The email body is displayed in the :guilabel:`Description` field.
- The whole content of the email is additionally displayed in the **chatter**.
- All the recipients of the email (To/Cc/Bcc) that are Odoo users are automatically added as
**followers** of the task.
Creating tasks from a website form
==================================
If you have the Website app installed in your database, you can configure any form on your
website to trigger the creation of tasks in a project.
#. Go to the website page where you wish to add the the form and
:ref:`add the Form building block <websites/website/web_design/building_blocks>`.
#. In the website editor, edit the following fields:
- :guilabel:`Action`: select :guilabel:`Create a Task`.
- :guilabel:`Project`: choose the project that you want the new tasks to be created in.
#. :ref:`Customize the form <dynamic_content/form>`.
When the form is submitted, it automatically creates a project task. The task's content is defined
by the form's corresponding fields.
.. seealso::
:doc:`Dynamic website content <../../../websites/website/web_design/building_blocks/dynamic_content>`
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

@@ -0,0 +1,73 @@
========================
Task stages and statuses
========================
Task stages
===========
Task stages are displayed as columns in the project's Kanban view, and allow you to update the
progress of its tasks with a drag-and-drop. In most projects, the stages will be akin to **New**,
**In progress**, **Backlog**, etc.
By default, task stages are project-specific but can be shared across multiple projects that follow
the same workflow.
Creating task stages
--------------------
Odoo Project doesnt provide default stages but instead allows you to create custom stages tailored
to your specific business needs. You are prompted to do so immediately after :ref:`creating a new
project <project_management/configuration>`.
To create a stage, type its name into the :guilabel:`Stage...` field, then click :guilabel:`Add`.
.. tip::
Click :guilabel:`See examples` to find ideas for stage names applicable to your line of business.
Editing task stages
-------------------
To edit the task stage, click the :icon:`fa-cog` (:guilabel:`cog`) icon next to its name. From
there, click one of the following:
- :guilabel:`Fold`: to hide the task stage and all of the tasks in this stage from the Kanban view.
- :guilabel:`Edit`:
- :guilabel:`Name`: to change the name of the stage.
- :guilabel:`SMS/Email Template`: to automatically send an email or SMS notification to the
customer when a task reaches this stage.
- :guilabel:`Folded in Kanban`: to hide the task stage and all of the tasks in this stage from
the Kanban view.
- :guilabel:`Projects`: to share this task stage between several projects.
- :guilabel:`Automations`: to create :doc:`custom rules that trigger automatic actions
<../../../studio/automated_actions>` (e.g., creating activities, adding followers, or sending
webhook notifications). Note that this will activate Studio in your database, which may impact
your pricing plan.
- :guilabel:`Delete`: to delete this stage.
- :guilabel:`Archive/Unarchive all`: to archive or unarchive all of the tasks in this stage.
Task statuses
=============
Task statuses are used to track the status of tasks within the Kanban stage, as well as to close the
task when its done or canceled. Unlike Kanban stages, they cannot be customized; five task statuses
exist in Odoo and are used as follows:
- :guilabel:`In Progress`: this is the default state of all tasks, meaning that work required for
the task to move to the next Kanban stage is ongoing.
- :guilabel:`Changes Requested`: to highlight that changes, either requested by the customer or
internally, are needed before the task is moved to the next Kanban stage.
- :guilabel:`Approved`: to highlight that the task is ready to be moved to the next stage.
- :guilabel:`Canceled`: to cancel the task.
- :guilabel:`Done`: to close the task once it's been completed.
.. note::
- The :guilabel:`Changes Requested` and :guilabel:`Approved` task statuses are cleared as soon as
the task is moved to another Kanban stage. The task status reverts to the default :guilabel:`In
Progress` status so that :guilabel:`Changes Requested` or :guilabel:`Approved` status can be
applied again once the necessary work has been completed in this Kanban stage.
- The :guilabel:`Done` and :guilabel:`Canceled` statuses are independent from the Kanban stage.
Once a task is marked as :guilabel:`Done` or :guilabel:`Canceled`, it is closed. If needed, it
can be reopened by changing its status.
@@ -13,6 +13,8 @@ pages. Four types of building blocks are available depending on their use:
.. seealso::
`Odoo Tutorial: Design your first webpage <https://www.odoo.com/slides/slide/design-your-first-web-page-1667?fullscreen=1>`_
.. _websites/website/web_design/building_blocks:
Adding a building block
=======================
@@ -113,8 +113,6 @@ Optional attributes can be added to the root element `form` to customize the vie
:type: bool
:default: `False`
.. include:: view_architectures/root_attribute_banner_route.rst
.. _reference/view_architectures/form/semantic:
Semantic components
@@ -1299,8 +1297,6 @@ Optional attributes can be added to the root element `tree` to customize the vie
.. include:: view_architectures/root_attribute_sample.rst
.. include:: view_architectures/root_attribute_banner_route.rst
.. _reference/view_architectures/list/components:
Components
@@ -1415,11 +1411,15 @@ The `field` element can have the following attributes:
.. attribute:: width
:noindex:
The width to apply to the field's column when there are no records in the list, as an absolute
width (e.g., `100px`).
.. important::
The width is set by the webclient when there are records in the list.
The list view always tries to optimize the available space among columns. For some field types,
this is done by enforcing a width, depending on the field type. For instance, we know exactly the
number of pixels required to display a date, so we can ensure that a column for a date field
doesn't take more space than what is strictly necessary, thus leaving the extra space for the
other columns. However, the framework can't guess the adequate width for every field types. For
instance, char fields can be used to encode large values, or 3-letter country codes. In the
latter case, one can set the width directly in the arch (e.g. `width="40px"`). It represents
the width (always in pixels) required to render the values inside the cells. The width of the
column will then be the sum of the given value and the cells' left and right paddings.
:requirement: Optional
:type: str
@@ -2505,8 +2505,6 @@ Optional attributes can be added to the root element `kanban` to customize the v
.. include:: view_architectures/root_attribute_sample.rst
.. include:: view_architectures/root_attribute_banner_route.rst
.. _reference/view_architectures/kanban/components:
Components
@@ -1,44 +0,0 @@
.. attribute:: banner_route
:noindex:
The route to fetch HTML from and prepend it to the view.
If this attribute is set, the URL of the :ref:`controller route <reference/controllers>` is
fetched and the returned content is displayed above the view. The JSON response from the
controller must contain an `html` key.
If the HTML contains a `<link>` tag for a stylesheet, it is removed from its original location
and appended to the `<head>` section.
To interact with the backend, use `<a type="action">` tags. For more details, refer to the
documentation of the `_onActionClicked` method in `AbstractController
<{GITHUB_PATH}/addons/web/static/src/js/views/abstract_controller.js>`_.
Only views extending `AbstractView` and `AbstractController`, such as
:ref:`reference/view_architectures/form`, :ref:`reference/view_architectures/kanban`, and
:ref:`reference/view_architectures/list`, can use this attribute.
.. example::
.. code-block:: xml
<tree banner_route="/module_name/hello" />
.. code-block:: python
class MyController(odoo.http.Controller):
@http.route('/module_name/hello', auth='user', type='json')
def hello(self):
return {
'html': """
<div>
<link href="/module_name/static/src/css/banner.css"
rel="stylesheet">
<h1>hello, world</h1>
</div> """
}
:requirement: Optional
:type: path_
:default: `''`
.. _`path`: https://en.wikipedia.org/wiki/Path_(computing)
+1
View File
@@ -74,3 +74,4 @@ applications/sales/point_of_sale/pricing/digital_labels.rst applications/sales/p
# applications/services
applications/services/helpdesk/overview/getting_started.rst applications/services/helpdesk.rst #helpdesk/overview/getting_started --> helpdesk
applications/services/project/tasks/email_alias.rst applications/services/project/tasks/task_creation.rst #project/tasks/email_alias --> task_creation