$ 325.26
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Project (project)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 2942 |
| Technical Name |
grev_od_project_gantt |
| License | OPL-1 |
| Website | https://www.grevlin.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Project (project)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 2942 |
| Technical Name |
grev_od_project_gantt |
| License | OPL-1 |
| Website | https://www.grevlin.com |
|
|
Grevlin Visualisation Suite Project GanttProfessional Gantt charts for Odoo Projects â critical path, resource histograms, baselines, auto-scheduling, and S-curve analytics.
|
|
|
Features |
||||
|
||||
|
||||
|
Fields Added to project.task |
||
|
Screenshots |
||
|
||
|
||
|
Changelog |
|
|
Need Help?30 days free support included. Contact us at odoo@grevlin.com Follow us on X: @GrevlinGlobal |
Project Gantt
Project Gantt adds a professional Gantt chart to Odoo's project.task model. Tasks are displayed as bars, summary bars, or milestone diamonds on a timeline with dependency arrows, critical path highlighting, scheduling constraints, and resource histograms.
Note
This module requires Grev Gantt View Base (grev_od_gantt_view). Install the base module first.
Overview
Key Features
- Task bars, summary bars, and milestones — each task can be rendered as a standard bar, a collapsible summary bar (for parent tasks), or a milestone diamond.
- Predecessor / successor dependencies — source_ids and target_ids Many2many fields on project.task are automatically mirrored to grev.gantt.link as Finish-to-Start links.
- Critical path highlighting — the longest chain of dependent tasks is highlighted on the chart in real time.
- Scheduling constraints — per-task constraints: As Soon As Possible, As Late As Possible, Start No Earlier Than, Finish No Earlier Than, Start No Later Than, Finish No Later Than, and Must Start On.
- Per-task hex colour — gantt_color_hex field controls bar colour (editable from the task form).
- Gantt progress — gantt_progress (0–100 %) shows a fill inside each bar and can be edited inline.
- Resource histogram — allocated hours per assignee (user_ids) or per project (project_id) displayed below the Gantt grid.
- Baseline snapshots — store named planned-start/end dates; overlaid as dashed bars.
- Auto-schedule — drag any bar to reschedule; successors cascade automatically.
Installation
- Install grev_od_gantt_view first (or include both in a single -i command).
- Copy grev_od_project_gantt into your addons path.
- Go to :menuselection:`Settings --> Technical --> Update Apps List`.
- Search for Project Gantt and click :guilabel:`Install`.
Configuration
Accessing the Gantt View
After installation, the Gantt view is available from:
- :menuselection:`Project --> Gantt --> All Tasks (Gantt)`
- :menuselection:`Project --> Gantt --> My Tasks (Gantt)`
You can also switch to the Gantt view from any project's task list by clicking the :icon:`fa-tasks` :guilabel:`Gantt` button in the view switcher.
Configuring a Task
Open any task form and click the :guilabel:`Gantt` tab to access scheduling fields:
| Field | Description |
|---|---|
| :guilabel:`Planned Date` | Date range widget showing date_start and date_deadline. |
| :guilabel:`Gantt Progress` | Completion percentage (progress bar widget, editable). |
| :guilabel:`Gantt Bar Type` | Task (default), Summary Bar, or Milestone. |
| :guilabel:`Constraint Type` | Scheduling constraint (ASAP by default). |
| :guilabel:`Constraint Date` | Required when constraint type is not ASAP or ALAP. |
| :guilabel:`Expanded in Gantt` | Whether a summary bar is expanded or collapsed. |
| :guilabel:`Bar Colour` | Hex colour code for the bar (colour picker widget). |
| :guilabel:`Predecessor Tasks` | Many2many tags — tasks that must finish before this task can start. |
| :guilabel:`Successor Tasks` | Many2many tags — tasks that follow this task. |
| :guilabel:`Baselines` | Editable list of named baseline snapshots. |
Setting Dependencies
- Open a task form and go to the :guilabel:`Gantt` tab.
- In the :guilabel:`Predecessor Tasks` field, add any tasks that must complete first.
- Save the task. The mixin automatically creates the corresponding grev.gantt.link record — no manual link creation needed.
- The dependency arrow appears on the Gantt chart immediately.
Tip
You can also drag the dependency handle on the chart end of a bar directly onto another bar to create a Finish-to-Start link.
Scheduling Constraints
Set the :guilabel:`Constraint Type` on a task to control how the auto-scheduler treats it:
| Constraint | Behaviour |
|---|---|
| ASAP | Schedule as early as possible (default). |
| ALAP | Schedule as late as possible. |
| SNET | Start No Earlier Than the constraint date. |
| FNET | Finish No Earlier Than the constraint date. |
| SNLT | Start No Later Than the constraint date. |
| FNLT | Finish No Later Than the constraint date. |
| MSO | Must Start On the constraint date exactly. |
Tasks with a non-ASAP/ALAP constraint display an orange warning decoration on the bar.
Usage
Rescheduling Tasks
Drag any task bar on the Gantt chart. The server:
- Updates date_start and date_deadline for the dragged task.
- Computes the time-shift delta.
- Cascades the shift to all successor tasks (via target_ids).
- Returns old values for the undo action.
Click :guilabel:`Undo` in the Gantt toolbar to roll back the last reschedule.
Working with the Critical Path
Enable critical path in the toolbar to highlight the tasks that determine the project's minimum duration. Any delay to a critical task directly delays the project end date.
Important
For critical path to work correctly, tasks must have both date_start and date_deadline populated, and their dependency chain must form a directed acyclic graph.
Using Baselines
- Open a task and go to the :guilabel:`Gantt` tab.
- In the :guilabel:`Baselines` list, click :guilabel:`Add a line`.
- Enter a name (e.g. "Initial Plan"), snapshot date, planned start, planned end, and hours.
- Save. Toggle :guilabel:`Show Baselines` in the Gantt toolbar to overlay the baseline dashed bars against the current schedule.
Technical Reference
Fields Added to project.task
| Field | Type | Description |
|---|---|---|
| date_start | Datetime | Gantt bar start date (not present in Odoo 19 Community base). |
| gantt_progress | Float (0–100) | Completion percentage shown as bar fill. |
| gantt_bar_type | Selection | task / project (summary bar) / milestone. |
| gantt_is_open | Boolean | Expand/collapse state of summary bars. |
| gantt_constraint_type | Selection | ASAP / ALAP / SNET / FNET / SNLT / FNLT / MSO. |
| gantt_constraint_date | Datetime | Anchor date for the constraint (hidden when ASAP/ALAP). |
| gantt_color_hex | Char | Hex colour for the bar (#RRGGBB). Default: #800101. |
| gantt_baseline_ids | One2many → grev.gantt.baseline | Named baseline snapshots. |
| source_ids | Many2many (self) | Predecessor tasks — auto-mirrored to grev.gantt.link. |
| target_ids | Many2many (self) | Successor tasks — auto-mirrored to grev.gantt.link. |
| gantt_link_count | Integer (computed) | Count of dependency links for the stat button. |
_grev_gantt_progress_bar Override
GrevProjectTaskExt overrides _grev_gantt_progress_bar() to return allocated-vs-available hours per project or assignee from the task domain.
def _grev_gantt_progress_bar(self, field, res_ids, start_date, stop_date): if field in ('user_ids', 'project_id'): for res_id in res_ids: # sum allocated_hours for tasks in range ...
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module