La demande la plus fréquente sur un ERP en service n'est pas une fonction nouvelle : c'est « ajoutez-moi ce filtre », « cachez ce menu à ce service », « empêchez-les d'exporter ». Trois demandes qui, dans Odoo, passent normalement par du développement.
Quatorze modules communautaires les rendent paramétrables.
Résumé
Trois modules traitent la recherche : des filtres, regroupements et champs de recherche définis par un administrateur pour n'importe quel modèle ; des critères de recherche supplémentaires pointant vers un champ existant ou une chaîne de champs liés ; et le partage d'un filtre favori avec des utilisateurs ou des groupes désignés.
Trois modules traitent les droits de données : les profils d'export rendus administrables avec un droit d'export par modèle et par groupe, l'import de fichiers rendu optionnel et réservé à un groupe, et les valeurs par défaut partagées avec d'autres utilisateurs.
Trois modules traitent l'interface : l'exclusion explicite de groupes de la visibilité d'un menu, la désactivation de la création rapide modèle par modèle sur les champs de relation, et un sous-menu technique regroupant les raccourcis d'administration.
Cinq modules enfin traitent la communication et l'automatisation : les annonces internes en fenêtre ciblée par utilisateur ou par groupe, un référentiel de messages d'avertissement réutilisables, la propagation en chaîne d'un changement de valeur, le code-barres comme déclencheur d'action, et la langue d'interface par utilisateur.
L'essentiel
- Des filtres et regroupements ajoutés sans développement.
- Les profils d'export rendus administrables, avec droit par groupe.
- L'import de fichiers réservé à un groupe d'utilisateurs.
- Un menu masqué à des groupes précis, et non seulement autorisé.
- La création rapide désactivable modèle par modèle.
- Des annonces internes ciblées par utilisateur ou par groupe.
- Des messages d'avertissement réutilisables.
- Un code-barres comme déclencheur d'action.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Recherche | base_custom_filter, base_search_custom_field_filter, filter_multi_user | 3 |
| Droits de données | base_export_manager, base_import_security_group, default_multi_user | 3 |
| Interface | base_menu_visibility_restriction, base_optional_quick_create, developer_menu | 3 |
| Communication | announcement, base_warn_option | 2 |
| Automatisation | chained_swapper, barcode_action, base_user_locale | 3 |
Les menus : Paramètres ▸ Custom Filters et ses deux sous-menus, Paramètres ▸ Technique ▸ Interface utilisateur ▸ Custom Field Filters et Export Profiles, Paramètres ▸ Field Swaps, Paramètres ▸ Find partners, Paramètres ▸ 🧰 Dev et ses raccourcis, Discussion ▸ Announcements.
Les filtres, sans développement
« Ajoutez-moi un filtre “commandes du mois en cours non livrées” » est la demande la plus courante sur un ERP en service, et celle dont le coût de développement est le plus disproportionné : quelques lignes de XML, une surcharge de vue, et une vérification à chaque montée de version.
base_custom_filter permet à un administrateur de définir, pour n'importe quel modèle, des filtres standards, des regroupements et des champs de recherche supplémentaires, qui apparaissent automatiquement dans le menu Filtres et Regrouper par. Référentiel sous Paramètres ▸ Custom Filters.
base_search_custom_field_filter ajoute des critères de recherche pointant vers un champ existant ou une chaîne de champs liés — chercher une commande par le pays du client, par exemple, sans écrire de vue.
filter_multi_user permet de partager un filtre favori avec des utilisateurs ou des groupes désignés, sans en faire un filtre partagé par défaut. Le filtre utile d'une personne devient celui de son équipe, pas celui de tout le monde.
Qui peut sortir les données
base_export_manager rend visibles et administrables les profils d'export — ces modèles d'export qu'Odoo enregistre en arrière-plan sans jamais les exposer. Il ajoute surtout une colonne droit d'export aux droits d'accès par modèle et par groupe.
Le droit d'export par modèle est le contrôle manquant le plus important d'Odoo. Sans lui, un utilisateur qui peut lire un modèle peut en extraire la totalité dans un fichier, et la seule trace laissée est une ligne dans les journaux du serveur.
base_import_security_group rend l'import de fichiers optionnel et réservé à un groupe dédié — dans l'interface comme dans les parcours guidés.
default_multi_user étend les valeurs par défaut définies par l'utilisateur pour les partager avec d'autres utilisateurs ou groupes. C'est la façon propre d'imposer une valeur par défaut à une équipe sans toucher au code.
Le contrôle des droits est traité plus largement dans droits utilisateurs et sécurité d'accès, et la séparation des droits d'export dans listes, recherche et exports.
L'interface : masquer, restreindre, outiller
base_menu_visibility_restriction permet d'exclure explicitement des groupes de la visibilité d'un menu — là où le standard ne permet que d'autoriser des groupes.
La nuance compte : autoriser suppose de connaître tous les groupes qui doivent voir le menu ; exclure suppose de connaître ceux qui ne doivent pas le voir. Dans une instance en service, la seconde liste est souvent la seule connue.
base_optional_quick_createdésactive la création rapide modèle par modèle sur les champs de relation. C'est le garde-fou contre les doublons créés depuis un champ client — complémentaire des options de champ de relation du dépôtweb.developer_menuajoute un sous-menu 🧰 Dev regroupant les raccourcis techniques : modèles, champs, vues, menus, règles d'accès, actions, tâches planifiées, séquences, modèles de courriel.base_user_localetraite la langue et le format régional par utilisateur. Son README est réduit à sa catégorie.
Communiquer et automatiser
announcement permet de diffuser des annonces internes en fenêtre, ciblées individuellement ou par groupe d'utilisateurs, avec leurs étiquettes. Menus sous Discussion ▸ Announcements.
C'est l'outil qui manque pour prévenir d'une maintenance, d'un changement de procédure ou d'une clôture comptable : un courriel se perd, une annonce en fenêtre se voit.
base_warn_option (LGPL-3) introduit un référentiel de messages d'avertissement ou de blocage réutilisables, géré depuis les réglages généraux. L'objectif est d'harmoniser les messages, au lieu de les écrire en dur à chaque endroit.
chained_swapperdéfinit des échanges en chaîne : changer la valeur d'un champ sur des enregistrements sélectionnés et propager ce changement à des enregistrements liés. Référentiel sous Paramètres ▸ Field Swaps.barcode_actionpermet d'utiliser un lecteur de codes-barres comme déclencheur d'action : la lecture exécute une méthode qui retourne une action — ouvrir la fiche du contact correspondant, par exemple, via Paramètres ▸ Find partners.
La propagation en chaîne est une arme à double tranchant : modifier un champ sur deux cents lignes et voir la modification se répercuter sur mille enregistrements liés est exactement ce qu'on veut, ou exactement ce qu'on redoute. Le modèle se teste sur dix lignes avant deux cents.
Limites connues
base_user_localea un README réduit à sa catégorie : son effet est à évaluer sur instance.- Les filtres paramétrables ne remplacent pas une vue : ils ajoutent des critères, ils ne réorganisent pas un écran.
- Un critère de recherche sur une chaîne de champs liés est coûteux : chercher une commande par le pays du client traverse deux tables à chaque frappe.
- Le droit d'export est un contrôle d'interface : il ne couvre pas un accès direct à la base ni une interface de programmation.
- Restreindre l'import bloque aussi les reprises légitimes : prévoir qui appartient au groupe avant d'activer.
- L'exclusion de groupes d'un menu se cumule avec l'autorisation standard : les deux mécanismes coexistent, et leur interaction demande d'être vérifiée.
chained_swapperpropage des modifications en masse : à éprouver sur un échantillon.developer_menuexpose des raccourcis techniques : à réserver aux administrateurs, sans quoi il devient une invitation.
Identité technique
Les quatorze modules viennent du dépôt OCA server-ux, branche 18.0 — 35 modules au total. Treize sont en AGPL-3, base_warn_option est en LGPL-3. Les dépendances : web pour les filtres et les exports, base_import et web_tour pour l'import restreint, barcodes pour le déclencheur de code-barres, mail pour les annonces et le menu développeur, calendar et base_setup pour la langue.
Voir aussi visas, séquences et assistants pour le reste du dépôt.
Questions fréquentes
Peut-on ajouter un filtre de recherche dans Odoo sans développer ?
Oui : base_custom_filter permet à un administrateur de définir des filtres, regroupements et champs de recherche pour n'importe quel modèle, et base_search_custom_field_filter d'ajouter des critères pointant vers un champ existant ou une chaîne de champs liés. C'est la demande la plus courante sur un ERP en service.
Peut-on empêcher certains utilisateurs d'exporter des données ?
Oui, avec base_export_manager, qui ajoute une colonne droit d'export aux droits d'accès par modèle et par groupe. C'est le contrôle manquant le plus important d'Odoo : sans lui, un utilisateur qui peut lire un modèle peut en extraire la totalité dans un fichier. Il ne couvre pas un accès direct à la base.
Comment cacher un menu à un service précis ?
base_menu_visibility_restriction permet d'exclure explicitement des groupes de la visibilité d'un menu. Le standard ne permet que d'autoriser des groupes — ce qui suppose de connaître tous ceux qui doivent voir le menu, alors que la liste connue est souvent l'inverse.
Peut-on prévenir tous les utilisateurs d'une maintenance depuis Odoo ?
Oui : announcement diffuse des annonces internes en fenêtre, ciblées individuellement ou par groupe, avec leurs étiquettes, sous Discussion ▸ Announcements. Un courriel se perd, une annonce en fenêtre se voit.
Peut-on partager un filtre favori avec son équipe seulement ?
Oui, avec filter_multi_user : le filtre se partage avec des utilisateurs ou des groupes désignés, sans devenir un filtre partagé par défaut. Le filtre utile d'une personne devient celui de son équipe, pas celui de toute l'entreprise.
Se faire accompagner
La différence entre un ERP qu'on fait évoluer et un ERP qu'on subit tient à ces modules : quand un filtre, un menu ou un droit se règle dans l'interface, la demande d'un utilisateur se traite en dix minutes. Quand elle passe par du développement, elle attend le prochain lot — ou n'arrive jamais.
Nous installons donc cette boîte à outils dès le départ, et nous formons un référent interne à s'en servir. Puis nous posons les droits d'export et d'import, qui sont les deux seules portes de sortie massives des données. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
En résumé
La demande la plus fréquente sur un ERP en service n'est pas une fonction nouvelle : c'est « ajoutez ce filtre », « cachez ce menu », « empêchez-les d'exporter ». Quatorze modules les rendent paramétrables, dont le droit d'export par modèle — le contrôle manquant le plus important d'Odoo. Parlons de votre paramétrage.