Aller au contenu principal
Peef

← Articles · · Mis à jour le · Migration

5 nouveautés techniques sur Odoo 20

Par Nasser, développeur Odoo depuis 2016, certifié Odoo, membre de l'OCA.

Odoo 20 est sorti à l'Odoo Experience 2026. Voici 5 nouveautés techniques de la version community, et ce qui peut casser votre code à la migration.

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.

FAQ

Questions fréquentes

Où trouver les nouveautés d'une nouvelle version d'Odoo ?
Les release notes d'Odoo donnent les fonctionnalités https://www.odoo.com/fr_FR/odoo-20-release-notes. Le Coverage Analysis d'OpenUpgrade donnent les changements réels du code https://github.com/OCA/OpenUpgrade/tree/19.0/docsource
Quelles nouveautés d'Odoo comptent quand on prépare une migration ?
Celles qui recouvrent ce que vos modules personnalisés font à la main. Une fonctionnalité qui entre dans le standard est du code que vous pouvez supprimer chez vous ; c'est le seul type de nouveauté qui change le coût de votre migration.
Faut-il migrer à chaque version d'Odoo ?
Non, mais chaque version sautée s'ajoute à la migration suivante : OpenUpgrade migre un palier à la fois. Plus vous attendez, plus vous cumulez de paliers et de code personnalisé décalé par rapport au standard.
Qu'est-ce qui casse le code custom dans Odoo 20 ?
Trois changements touchent le code personnalisé. Owl passe en version 3 et fait réécrire les modules JavaScript : useState, reactive, env, services et t-esc disparaissent. ir.model.access et ir.rule fusionnent dans le modèle ir.access, avec les colonnes operation et domain. Le socle exige Python 3.12 et PostgreSQL 16, remplace pytz par zoneinfo et le champ datas de fields.Binary par raw.
Comment migrer un module custom vers Odoo 20 ?
Odoo livre deux aides. Une couche de compatibilité fait tourner Owl 2 sur Odoo 20, et un script accompagne le passage en Owl 3. Un second script convertit vos anciens ir.model.access et ir.rule vers ir.access. Le reste est manuel : revérifier les dépendances des champs calculés, adapter les vues dont le XPath a bougé, et tester sur une copie de la base avant la production.
Quand migrer vers Odoo 20 ?
Pas tout de suite. Attendez qu'OpenUpgrade 20 soit prêt et que le code d'Odoo 20 se stabilise, sinon vous écrivez vos scripts de migration contre une cible mouvante. Une fenêtre raisonnable se situe autour de mars 2027.

Sur le même sujet

Continuer la lecture

Tous les articles sur ce sujet

Newsletter · une fois par mois

Un cas réel de production Odoo, chaque mois

Ce que j'ai fait sur une migration, une intégration ou une chaîne de production : le code, ce qui a cassé, et pourquoi. Rien d'autre.

Aucun spam. Désinscription en un clic.