Timeline (Gantt) View for Odoo Community — drag and drop, dependencies, workload
Gantt / Timeline view for Odoo 20 Community — a real new view type <dyo_timeline>: day/week/month/year scales, multi-level grouping, drag and drop to reschedule or reassign, Ctrl-drag to copy, resize, click-and-drag creation, editable dependency arrows, progress bars, workload per row and load histo
Screenshots
-
Timeline (Gantt) View for Odoo Community — drag and drop, dependencies, workload — capture 1 -
Timeline (Gantt) View for Odoo Community — drag and drop, dependencies, workload — capture 2 -
Timeline (Gantt) View for Odoo Community — drag and drop, dependencies, workload — capture 3 -
Timeline (Gantt) View for Odoo Community — drag and drop, dependencies, workload — capture 4 -
Timeline (Gantt) View for Odoo Community — drag and drop, dependencies, workload — capture 5
Une vraie vue Gantt dans Odoo Community
Ajoute le type de vue <dyo_timeline> : une frise chronologique à déclarer sur n'importe quel modèle daté, pour replanifier et réaffecter au glisser-déposer. Code 100 % original, sans une ligne d'Odoo Enterprise.
| Nom technique | dyo_web_timeline |
| Version | 20.0.1.0.0 |
| Licence | OPL-1 (Odoo Proprietary License v1.0) |
| Dépendance | web (module Ressources facultatif) |
Le constat
Odoo Community n'a pas de vue Gantt : la frise des tâches, des ordres de travail ou des réservations est une fonctionnalité Enterprise. On se rabat sur le calendrier, qui montre des événements mais pas des ressources, ni la charge, ni les enchaînements. Ce module comble ce manque par un type de vue à part entière, enregistré dans Odoo comme la liste ou le kanban : il apparaît dans le sélecteur de vues et s'utilise avec la recherche, les filtres, les regroupements et les favoris standard.

Ce que fait la vue
Jour, semaine, mois, année
Quatre échelles, navigation période précédente / suivante, bouton « Aujourd'hui » et ligne rouge de l'instant présent.
Regroupement sur plusieurs niveaux
Par défaut dans la vue (default_group_by="team,user_id") ou depuis la recherche ; groupes repliables avec bandeau de synthèse.
Glisser-déposer et redimensionnement
Déplacer une barre la replanifie ; la déposer dans une autre ligne la réaffecte ; ses deux bords l'allongent ou la raccourcissent. Avec Ctrl, le glisser crée une copie.
Refus serveur respecté
Si le serveur refuse (contrainte, droit, tâche verrouillée), la barre revient à sa place et le message d'erreur s'affiche.
Création par cliquer-glisser
Glisser dans une ligne vide ouvre le formulaire pré-rempli : dates sélectionnées et valeur du groupe (responsable, équipe…).
Dépendances éditables
Flèches tracées depuis un champ many2many ; on les crée en tirant le point d'une barre vers une autre, on les retire d'un clic ou depuis l'aperçu ; les boucles sont refusées, les conflits dessinés en rouge.
Couleurs, progression, décorations
Couleur par champ (index, code #hex, relation, sélection), barre d'avancement, décorations conditionnelles decoration-danger…
Charge et histogramme
Total d'heures (ou d'un champ numérique) par ligne, en rouge au-delà de consolidation_max ; histogramme de charge par période en pied de frise.
Jours non travaillés
Grisés d'après le calendrier de travail de la société (module Ressources), à défaut les week-ends.
Clavier et tactile
Barres focalisables, Entrée pour l'aperçu, Maj + flèche pour déplacer, Ctrl + Maj + flèche pour redimensionner ; utilisable au doigt sur mobile.
Des milliers de barres
Au-delà de 500 barres, seules celles à l'écran sont dessinées : 1 500 tâches s'affichent en environ une demi-seconde sur notre banc.
Plein écran
Un bouton passe la frise en plein écran pour les réunions de planification.


Déclarer une frise
Une vue se déclare en XML comme toute autre vue Odoo, puis s'ajoute au view_mode de l'action (dyo_timeline,list,form) :
<dyo_timeline date_start="date_start" date_stop="date_stop"
default_group_by="user_id" default_scale="week"
color="color" progress="progress"
dependency_field="depend_on_ids"
consolidation="allocated_hours" consolidation_max="40"
decoration-danger="stage == 'late'">
<field name="name"/>
<field name="user_id"/>
</dyo_timeline>
L'architecture est validée à l'installation par un schéma RelaxNG et par des contrôles sur les champs (existence, type date, many2many vers le même modèle). Un attribut reschedule_method permet d'appeler une méthode métier plutôt que write — par exemple pour relancer un planificateur quand on déplace un ordre de travail.
Interface en anglais et en français (fichiers de traduction fournis).
Recherché aussi sous : diagramme de Gantt Odoo Community, planning Odoo 20.0 gratuit.
Sur mobile

Compatible avec
Odoo 20.0 Community et Enterprise, On Premise et Odoo.sh. Le module n'émet aucun appel sortant. Un module de démonstration facultatif, dyo_web_timeline_demo, installe des tâches (avec dépendances et une tâche verrouillée) et des réservations en dates sans heure.
Ce que le module ne fait pas
Il ne planifie pas à votre place : pas d'ordonnancement automatique, pas de nivellement de charge, pas de recalcul des successeurs quand on déplace un prédécesseur (la flèche passe au rouge, c'est tout — une méthode reschedule_method peut le faire côté serveur). Il n'offre pas de plage de dates libre, n'exporte pas en PDF, ne gère pas d'échelle horaire plus fine que le quart d'heure, et les jours non travaillés sont ceux du calendrier de la société, pas ceux de chaque ressource. Il ne fournit aucune frise « prête à l'emploi » sur les modules standard : c'est un type de vue, à déclarer sur le modèle de votre choix.
DYONYSOS — welcome@dyonysos.fr
Odoo 20.0 Community · licence OPL-1.
What this app does not do
- Il ne planifie pas à votre place : pas d'ordonnancement automatique, pas de nivellement de charge, pas de recalcul des successeurs quand on déplace un prédécesseur (la flèche passe au rouge, c'est tout — une méthode reschedule_method peut le faire côté serveur). Il n'offre pas de plage de dates libr
- DYONYSOS — welcome@dyonysos.fr Odoo 20.0 Community · licence OPL-1.
Store apps required
None.
Odoo Community modules used
web
Apps that complement it
| Series | Version | Status | Published on |
|---|---|---|---|
| 20.0 | 20.0.1.0.0 | Available | 02/10/2026 |
| 19.0 | 19.0.1.0.0 | Available |
Listing generated from the publisher's code (private repository, branch 20.0): the source code is not published.
Automatic store check (separate from the publisher's), applied to all apps. Conforme.
| Check | Result | Effect if absent |
|---|---|---|
| Manifeste lisible sans exécution | conforme | bloquant |
| Licence reconnue (OPL-1) | conforme | bloquant |
| Aucune dépendance vers Odoo Enterprise | conforme | bloquant |
| Aucun import de code Enterprise | conforme | bloquant |
| Aucun en-tête de licence Enterprise | conforme | bloquant |
| Icône static/description/icon.png | conforme | déclasse |
| Description (static/description/index.html ou README) | conforme | déclasse |
| Tests automatisés (tests/test_*.py) | conforme | déclasse |
| Traduction française (i18n/fr.po) | conforme | info |
| Section « Ce que le module ne fait pas » | conforme | info |
| Titre de 70 caractères au plus (80 actuellement) | absent | info |
| Résumé en français | absent | info |
Reviews from signed-in customers. One rated review per customer; the publisher can reply. Sign in to leave a review.
- Publisher
- DYONYSOS
- contact@omnifloo.com
- Omnifloo customers
- Support included with your plan: help centre.