Chapitre 6 : Création d’un module sur Odoo (part 3)

Les vues

Activité : Découverte des vues

  • Installer le module Sales
  • Cliquer sur orders et quotations
  • Vérifier les différents types des vues

Menu

Lorsque l’on parle de « créer un menu » dans Odoo, cela fait référence à la création d’une entrée de menu dans l’interface utilisateur d’Odoo. Le menu permettra aux utilisateurs d’accéder aux différentes fonctionnalités ou vues de votre module.

Voici comment créer un menu dans Odoo :

  1. Dans votre module, créez un fichier XML avec l’extension .xml (par exemple, menu.xml), où vous allez définir votre menu.
  2. Dans ce fichier XML, utilisez la balise <menu> pour définir le menu principal. Vous pouvez lui donner un attribut name pour spécifier son nom.
  3. À l’intérieur de la balise <menu>, vous pouvez ajouter des balises <action> pour définir les actions à exécuter lorsque le menu est sélectionné.
  • Utilisez l’attribut name pour donner un nom à l’action.
  • Utilisez l’attribut res_model pour spécifier le modèle associé à l’action.
  • Utilisez l’attribut view_mode pour spécifier les modes d’affichage des vues associées à l’action (par exemple, form, tree, kanban, etc.).
  • Utilisez l’attribut view_id pour spécifier l’identifiant de la vue à afficher.
  • Utilisez l’attribut context pour spécifier le contexte à transmettre aux vues.
  1. Une fois que vous avez défini votre menu et les actions associées, enregistrez le fichier XML.
  2. Dans votre fichier manifest (__manifest__.py), ajoutez le chemin du fichier XML à la liste des fichiers de données (data).
  3. Enregistrez votre module et mettez à jour votre instance Odoo.

Une fois ces étapes terminées, vous devriez voir votre menu apparaître dans l’interface utilisateur d’Odoo, sous la section correspondante (par exemple, « Sales », « Inventory », etc.). Lorsque vous cliquez sur le menu, l’action associée sera déclenchée, affichant les vues spécifiées.

Assurez-vous de bien organiser votre menu en fonction de la logique de votre module et de regrouper les actions connexes sous des sous-menus si nécessaire.

Bien sûr ! Voici plus de détails sur la création d’un menu dans Odoo :

  1. Créez un fichier XML pour définir votre menu : Vous pouvez créer un fichier XML dans le répertoire views de votre module. Par exemple, créez un fichier menu.xml.
  2. Définissez le menu principal : À l’intérieur du fichier XML, utilisez la balise <menu> pour définir le menu principal. Par exemple :
   <menu name="Mon Menu" id="menu_main" />

Vous pouvez spécifier un attribut name pour donner un nom à votre menu. L’attribut id est utilisé pour référencer ce menu dans d’autres parties de votre module, comme les actions.

  1. Ajoutez des actions au menu : À l’intérieur de la balise <menu>, vous pouvez ajouter des balises <action> pour définir les actions associées au menu. Par exemple :
   <menuitem name="Créer un patient" id="menu_patient_create"
             action="action_patient_create" parent="menu_main" />

Dans cet exemple, nous avons créé une action appelée action_patient_create qui sera déclenchée lorsque l’utilisateur sélectionne le menu « Créer un patient ». L’attribut parent est utilisé pour spécifier le menu principal auquel cette action est rattachée.

  1. Définissez les actions correspondantes : En dehors du fichier XML du menu, vous devez définir les actions associées dans un autre fichier XML. Par exemple, créez un fichier views/actions.xml. Voici un exemple d’action :
   <record id="action_patient_create" model="ir.actions.act_window">
       <field name="name">Créer un patient</field>
       <field name="res_model">hospital.patient</field>
       <field name="view_mode">form</field>
       <field name="view_id" ref="hospital.view_patient_form"/>
   </record>

Dans cet exemple, nous avons créé une action de type fenêtre (ir.actions.act_window) qui ouvrira le modèle hospital.patient en mode formulaire (form). Le champ view_id fait référence à l’identifiant de la vue formulaire du modèle hospital.patient.

  1. Mettez à jour le fichier manifest : Dans votre fichier manifest (__manifest__.py), ajoutez le chemin du fichier XML du menu à la liste des fichiers de données (data). Par exemple :
   'data': [
       'views/menu.xml',
       'views/actions.xml',
   ],
  1. Mettez à jour votre instance Odoo : Après avoir effectué les modifications, mettez à jour votre instance Odoo pour prendre en compte les changements. Cela peut être fait en redémarrant le serveur Odoo ou en utilisant les commandes de mise à jour appropriées, selon votre environnement.

Une fois que vous avez suivi ces étapes, vous devriez voir votre menu apparaître dans l’interface utilisateur d’Odoo, sous le nom que vous avez spécifié. Lorsque vous cliquez sur le menu, l’action associée sera déclenchée, affichant la vue spécifiée (par exemple, une vue formulaire).

Activité : Création d’un menu

Vous devez créer un module dans Odoo pour gérer un système hospitalier. Dans ce module, vous devez ajouter un menu avec la structure suivante :

  1. Créez un fichier XML appelé menu.xml dans le dossier views du module.
  2. Dans le fichier menu.xml, écrivez le code XML nécessaire pour définir un menu principal nommé « Hospital » avec l’icône « om_hospital,static/description/icon.png ». Ce menu doit avoir une séquence de 0.
  3. Ajoutez un sous-menu nommé « Patient Details » qui sera affiché sous le menu principal « Hospital ». Le sous-menu doit avoir une séquence de 0.

Voici un exemple de code pour le fichier menu.xml :

<?xml version='1.0' encoding='utf-8'?>
<odoo>
  <data>
    <menuitem id="menu_hospital_root"
              name="Hospital"
              sequence="10"/>
  </data>
</odoo>
  1. Ajouter le fichier dans __manifest__.py
  2. Installez le module dans votre instance Odoo et vérifiez que le menu « Hospital » avec le sous-menu « Patient Details » est affiché correctement dans l’interface utilisateur.
  3. ‘data’: [ ‘views/menu.xml’, ‘views/actions.xml’, ],
 'data': [
       'views/menu.xml',
   ],

Le code XML fourni définit une structure de menu dans Odoo. Voici une description détaillée :

  • La balise <odoo> est la balise racine du fichier XML et elle encapsule tout le contenu.
  • La balise <data> est utilisée pour contenir les données spécifiques d’Odoo.
  • À l’intérieur de la balise <data>, nous avons une balise <menuitem>. Cette balise est utilisée pour définir un élément de menu dans Odoo.
  • L’attribut id définit un identifiant unique pour cet élément de menu. Cet identifiant peut être utilisé pour référencer cet élément ailleurs dans le code Odoo.
  • L’attribut name définit le nom de l’élément de menu. Dans ce cas, il est défini comme « Hospital ».
  • L’attribut sequence détermine l’ordre d’affichage de l’élément de menu parmi d’autres éléments de menu. Plus la valeur de séquence est basse, plus l’élément sera affiché en haut de la liste.

En résumé, ce code XML crée un élément de menu dans Odoo appelé « Hospital » avec un identifiant unique. Cet élément sera affiché dans le menu de l’application Odoo avec un ordre de séquence de 10.

Activité :

Objectif : Modifier l’action associée à l’élément de menu « Hospital » dans Odoo en ajoutant une description à l’aide d’une action ir.actions.act_window et vérifier les changements dans le menu principal.

Instructions :

  1. Ouvrez Odoo dans votre navigateur.
  2. Vérifiez le menu principal pour trouver l’élément « Hospital ». Notez son emplacement actuel.
  3. Accédez au menu « Technical » dans Odoo.
  4. Dans le menu « Technical », recherchez et cliquez sur « Menu Items ».
  5. Dans la liste des éléments de menu, recherchez l’élément avec le nom « Hospital » et cliquez dessus pour l’ouvrir.
  6. Sur la page de l’élément de menu « Hospital », recherchez le champ « Action » et cliquez sur le bouton « Modifier ».
  7. Dans la fenêtre de modification de l’action ajouter : action ir.actions.act_window
  8. Et comme champ « Params » avec les valeurs suivantes : description input wizard
  9. Enregistrez les modifications en cliquant sur le bouton « Enregistrer ».
  10. Revenez au menu principal d’Odoo.
  11. Vérifiez à nouveau le menu principal pour trouver l’élément « Hospital » et observez les éventuels changements.
  12. Annuler les modifications dans la partie action

Cette activité permet à l’étudiant de se familiariser avec la navigation dans l’interface Odoo, de rechercher et de modifier les éléments de menu, et de vérifier les modifications apportées au menu principal après avoir modifié l’action associée à l’élément « Hospital ».