Se rendre au contenu
Retour aux modules
Productivité et outils

Exportateur Studio vers module

Transformez vos personnalisations Odoo Studio en un vrai module, propre et versionnable, avec un hook qui migre vos données existantes.

20.0 19.0
Exportateur Studio vers module
Exportateur Studio vers module

Présentation du module

Nalios
Odoo Gold Partner · Belgique

/ Odoo 20 · Administration

Exportateur Studio vers module

Transformez ce qu’Odoo Studio a construit dans votre base de données en un vrai module que vos développeurs peuvent lire, relire et versionner dans Git — avec un hook de migration qui déplace vos données existantes vers les nouveaux champs.

Odoo 20 Noms de champs métier @api.depends déduit Hook de migration des données Simulation & rapport

Ce que vous obtenez

Des clics Studio au code propre

Studio est rapide, mais ses champs x_studio_, ses dumps XML et son code inline sont difficiles à maintenir. L’exportateur lit tout ce qui appartient à studio_customization et écrit un véritable module.

Un vrai module

Modèles Python, vues nettoyées (attrs convertis, xpaths positionnels résolus, héritages frères fusionnés), droits d’accès (ir.access, domaines des règles d’enregistrement compris), actions, menus, automatisations et filtres enregistrés.

Des noms lisibles

x_studio_date_livraison devient date_delivery : les noms proviennent des libellés, avec un dictionnaire métier français→anglais intégré. Remplacez n’importe quel nom dans la zone de correspondance.

Calculs et actions

Les champs calculés Studio deviennent des méthodes de calcul avec un @api.depends déduit du code. Les actions serveur Python deviennent des méthodes du modèle.

Vos données suivent

Le hook généré copie les lignes (mêmes ids), les colonnes, les liens many2many et les pièces jointes vers les nouveaux champs, remappe le chatter et les pièces jointes, puis supprime les objets Studio remplacés.

Module généré : arborescence des fichiers et classe de modèle convertie à partir d’un modèle personnalisé Studio

Comment ça fonctionne

Exportez, relisez, installez

1

Lancez une simulation

Mode développeur, puis Paramètres › Technique › Studio → Code Export. Indiquez le nom du module, le titre et le préfixe des modèles, cochez Dry Run et exportez.

2

Ajustez les noms

Lisez le rapport, corrigez les noms dans la zone de correspondance (x_studio_field: new_name), exportez à nouveau sans simulation et téléchargez le zip.

3

Installez le module

Commitez-le dans Git, sauvegardez la base de données et le filestore, installez-le en suivant son MIGRATION.md et lancez ses tests.

Assistant d’export : nom technique, titre, version cible, langue de nommage, préfixe, correspondances et simulation

Rapport de conversion

Rien n’est renommé dans votre dos

Chaque export liste l’inventaire, les modèles et champs renommés avec l’origine de chaque nom, ce qui n’a pas été converti et les avertissements. Le rapport, le README.md et le MIGRATION.md générés sont rédigés en français.

Rapport après export : champs renommés et champs conservés tels quels

Sous le capot

Périmètre et limites

ExtraitModèles personnalisés, champs, vues (sauf QWeb), droits d’accès (ir.access, avec leurs domaines), actions de fenêtre et actions serveur, automatisations, menus et filtres enregistrés appartenant à studio_customization. Les rapports, modèles d’e-mail, règles d’approbation et valeurs par défaut ne sont pas extraits.
Types de champsChamps char, text, HTML, integer, float, monetary, boolean, date, datetime, binary, selection et relationnels. Les autres types (reference, properties…) sont listés dans le rapport et laissés tels quels comme champs Studio avec leurs données ; un modèle personnalisé qui en contient un est également conservé.
Actions serveurLes actions de code Python deviennent des méthodes. Le contexte d’évaluation de Studio (env, datetime, UserError…) n’est pas importé pour vous : relisez chaque méthode convertie. Les actions sans code (mettre à jour ou créer un enregistrement…) ne sont pas converties.
Champs monétairesGénérés sans currency_field : le modèle a besoin d’un champ currency_id, sinon ajoutez le paramètre avant l’installation.
Version cibleSur Odoo 20, l’exportateur génère du code Odoo 20 : droits d’accès et règles d’enregistrement dans security/ir.access.csv, un hook d’installation écrit pour Odoo 20. Les versions cibles plus anciennes ne sont pas proposées sur cette version.
EmpreinteDépend uniquement de base. L’exportateur lui-même ne fait que lire la base de données. Hors ligne et déterministe : même base de données et mêmes correspondances, même module.

Sauvegardez avant d’installer

Exporter ne modifie rien. Installer le module généré, si : son hook supprime les vues, actions, menus, règles, filtres et automatisations Studio remplacés, ainsi que les anciens champs et modèles une fois leurs données copiées. Testez d’abord sur une copie de la base de données, sauvegardez la base de données et le filestore, et ne désinstallez jamais studio_customization avant que le hook ait tourné. Non disponible sur Odoo Online (modules personnalisés requis).

Une question ? Un problème ? Parlez à ceux qui l’ont développé.

Nous vous répondons dans les 8 heures ouvrables.

Contactez-nous

Écrivez-nous directement à

[email protected]

Publié par

Nalios — Odoo Gold Partner, Belgique — nalios.be