Odoo 20 est sorti à l'Odoo Experience 2026 et voici 5 nouveautés techniques que j'ai retenues.
- Owl passe du rendu au state management.
- ir.model.access et ir.rule fusionnent en un seul modèle.
- compute_sql calcule un champ directement en SQL.
- Une nouvelle vue card qui se réutilise via card_id : kanban, calendar, map, Gantt
- Le core passe à Python 3.12, PostgreSQL 16, h11 et zoneinfo.
- La version community n'a aucune fonctionnalité IA.
J'explique tout dans cette vidéo
Où pouvez-vous trouver toutes les nouveautés techniques ?
Le Coverage Analysis d'OpenUpgrade liste, pour chaque version, les modules ajoutés, les modules supprimés et l'état des scripts de migration module par module. C'est la vue d'ensemble.
Les fichiers d'analyse d'openupgrade_scripts donnent le détail. Dans le dépôt OpenUpgrade, chaque module porte un fichier d'analyse par palier de version, qui énumère les champs ajoutés, renommés, supprimés, et les modèles concernés. Si votre module hérite d'un modèle standard, c'est là que vous voyez ce qui vous attend.
Le wiki maintainer-tools de l'OCA liste les changements à appliquer dans votre code, module par module, pour passer d'une version à la suivante.
Le dépôt d'Odoo lui-même. Un git diff entre les deux branches, limité aux modules dont vous héritez, est la source la plus honnête qui existe. Plus long à lire, jamais faux.
La release note d'Odoo qui liste toutes les nouvelles fonctionnalités sur https://www.odoo.com/fr_FR/odoo-20-release-notes
Les 5 nouveautés que j'ai notées sur Odoo 20
Les vues et le frontend : Owl passe en version 3. Le framework JavaScript change de principe. Il passe du rendu au state management. useState, reactive, env, services et t-esc disparaissent. Odoo livre une couche de compatibilité qui fait tourner Owl 2 sur Odoo 20. Un script vous aide à passer en Owl 3.
Il y a aussi une nouvelle vue card. Vous la réutilisez via card_id : dans le kanban et le calendar en community, dans la map et le Gantt en enterprise.
La sécurité : ir.model.access et ir.rule fusionnent. Un seul modèle les remplace, ir.access. Il ajoute deux colonnes, operation et domain. Pour tester un droit, vous utilisez has_access(), check_access() ou l'opérateur de domaine any(). Odoo fournit un script de migration (odoo/upgrade_code/19.4-00-ir-access.py).
Les champs calculés : compute_sql. Ce nouvel attribut exécute le calcul directement en SQL. Vous triez et groupez les données sans passer par store=True.
Le serveur. Odoo 20 demande au minimum Python 3.12 et PostgreSQL 16. Le serveur WSGI de Werkzeug laisse la place à h11. zoneinfo remplace pytz.
L'IA. La version community d'Odoo 20 n'a aucune fonctionnalité IA. Elle livre quand même quatre skills dans son code : odoo-guidelines, odoo-review, odoo-security et odoo-web-guidelines. Vous pouvez les brancher sur votre assistant.
Devez-vous migrer vers Odoo 20 ?
Mon conseil : ne migrez pas tout de suite.
Si vous êtes sur community, attendez qu'OpenUpgrade 20 soit prêt et que le code se stabilise. La fenêtre raisonnable se situe autour de mars 2027.
→ Vous préparez une migration Odoo ? Lisez le guide complet de la migration Odoo avec OpenUpgrade. Il donne l'ordre à suivre et les pièges à éviter.