Projects Module Customization

Extend Odoo's Project module with advanced task tracking, sprint management, and customized project screens for agile teams

Skills You'll Gain:
Odoo Module Development Workflow Automation Custom Model Design Security Rules UI/UX Customization
17 Tasks

Project Tasks

1. Set Up Module Structure

Before implementing any functionality, we need to create the basic structure of our customized module.

Implementation Steps:
  1. Create a new module named Project Customization
  2. Set up the basic module structure with __init__.py, __manifest__.py
  3. Create models directory with models name.
  4. Create views directory with views name.

2. Define Manifest File

You need to provide basic description of the module, assert authorship, and choose a distribution license.

Implementation Steps:
  1. Define dictionary with the following info:
    • Module name is Project Customization.
    • With meaningful summary.
    • Write your name as author name.
    • Define module version.
    • Choose the appropriate License
    • Declare that the module is featured as an app in the apps list.
    • Declare that the module is available for installation.

3. Add an icon

Adding icon to represent the app.

Implementation Steps:
  1. Add icon to your app.

4. Implement Sprint Management Model

Your customer needs to implement model for managing sprints in Odoo, allowing users to define sprint details such as name, goal, dates, associated project, and state. This will enhance project management capabilities within the system.

Implementation Steps:
  • Implement a model for Project Sprint with the following fields
    1. Name: A text field for the name of the sprint
    2. Sprint Goal: A text field to define the goal of sprint.
    3. Start Date: Date and time field to declare sprint start date.
    4. End Date: Date and time field to declare sprint end date.
    5. Project: Relational field with project.project model, This links the sprint to a specific project. It shows which project this sprint is a part of.
    6. State: Selection field with (To start - Ongoing, Completed) This indicates the current status of the sprint.

5. Add Sprint List

Your customer needs to view all the created sprints as a list

Implementation Steps:
  1. Add menu item called Project Sprints under the main project menu and after Tasks menu.
  2. When user clicks on Project Sprints menu item,a list view displayed with the following columns
    • Name
    • Sprint Goal
    • Start Date
    • End Date

6. Add Sprint Form

Your customer needs to fill out a sprint form and process the sprint through its workflow states in the Odoo Projects module. This functionality will enable users to manage sprints effectively by moving them through various stages, ensuring proper tracking and organization.

Implementation Steps:
  1. Implement a form view for users to input sprint details, including name, goal, start date, end date, and state.
  2. Implement logic to handle transitions between different states of the sprint as the following
    • Add Start button to be visible only on To Start State, when user clicks this button , Sprint state moves to Ongoing.
    • Add Finish button to be visible only on Ongoing State, when user clicks this button , Sprint state moves to Completed.
    • Add Reset button to be visible only on Completed State, when user clicks this button , Sprint state moves to To Start.
  3. Prevent users from modifying the Start Date field once the sprint has transitioned to the "Ongoing" state.

7. Set Up Sprint Access Rights

After implementing the sprint model you need to set up the access rights

Implementation Steps:
  1. Grant full permission to all regular users.

8. Add Sprint Field to Project Tasks

Your customer needs to add a Sprint field to the project task model in Odoo. This field will allow users to associate tasks with specific sprints, enhancing task management and organization within projects.

Path:

Project → Projects → Tasks

Implementation Steps:
  1. Inherit project.task model to add the new Sprint field.
  2. Sprint field should display all sprints that are associated with the project to which the current task belongs.
  3. Modify the form view for project tasks to include the new Sprint field, after Assignees field.

9. Implement Task and Backlog Views for Sprints

Your customer needs to implement functionality that allows users to view tasks associated with a sprint and those that are not assigned to any sprint (backlogs). This will facilitate better task management and visibility within the Odoo Projects module.

Implementation Steps:
  1. Implement the action_get_tasks method to return the tasks associated with the selected project in the current sprint.
  2. Implement the action_get_backlogs method to return the tasks that do not belong to any sprint but are associated with the selected project.
  3. Include buttons in the Sprint form view to trigger these actions, allowing users to access tasks and backlogs directly.

10. Implement Sprint View for Project

Your customer needs to implement functionality that allows users to view sprints associated with a project.

Implementation Steps:
  1. Implement the action_get_sprint method to return the sprints associated with current project.
  2. Include button in the Project form view to trigger this action, allowing users to access sprints directly.