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

Les vues

Activité : Explorer les sous-menus de l’élément de menu « Orders » dans le module Sales d’Odoo.

Instructions :

  • Ouvrez Odoo dans votre navigateur.
  • Dans le menu principal, recherchez l’élément « Sales » et cliquez dessus pour l’ouvrir.
  • Dans le menu « Sales », recherchez l’élément « Orders » et cliquez dessus pour ouvrir la page des commandes.
  • Sur la page des commandes, observez les sous-menus disponibles et explorez-les en cliquant dessus un par un. Voici quelques exemples de sous-menus courants :
    • Quotations (Devis) : Affiche les devis en cours et les devis envoyés.
    • Sales Orders (Commandes de vente) : Affiche les commandes de vente en cours.
    • Delivery Orders (Commandes de livraison) : Affiche les commandes de livraison en cours.
    • Invoices (Factures) : Affiche les factures générées à partir des commandes.
    • Payments (Paiements) : Affiche les paiements enregistrés pour les commandes.
    • Reports (Rapports) : Accède aux rapports liés aux commandes.
  • Explorez les différents sous-menus pour vous familiariser avec les fonctionnalités et les informations qu’ils offrent.

Cette activité permet à l’étudiant d’explorer les sous-menus de l’élément de menu « Orders » dans le module Sales d’Odoo. Cela leur permettra de découvrir les différentes sections et fonctionnalités disponibles pour gérer les commandes et les processus de vente dans Odoo.

Sous menu

Dans Odoo, un sous-menu fait référence à un élément de menu qui est affiché en tant que sous-catégorie ou option supplémentaire d’un élément de menu principal. Les sous-menus sont utilisés pour organiser et structurer les fonctionnalités dans une hiérarchie logique.

Un sous-menu est généralement représenté sous forme de liste déroulante ou de menu déroulant qui s’affiche lorsque vous cliquez sur l’élément de menu principal correspondant. Lorsque vous sélectionnez un sous-menu, il peut afficher une nouvelle page, une liste de fonctionnalités supplémentaires, ou vous rediriger vers une autre section de l’application Odoo.

Les sous-menus sont utilisés pour regrouper les fonctionnalités connexes et faciliter la navigation dans l’application. Par exemple, dans le module Sales d’Odoo, l’élément de menu principal « Orders » peut avoir des sous-menus tels que « Quotations » (Devis), « Sales Orders » (Commandes de vente), « Delivery Orders » (Commandes de livraison), « Invoices » (Factures), etc. Chaque sous-menu fournit un accès direct à une fonctionnalité spécifique liée aux commandes.

Les sous-menus peuvent également être utilisés pour organiser les fonctionnalités en fonction des rôles ou des permissions des utilisateurs. Par exemple, un utilisateur avec des droits limités peut voir seulement un sous-ensemble de sous-menus, tandis qu’un administrateur ou un utilisateur avec des droits étendus peut voir tous les sous-menus disponibles.

En résumé, les sous-menus dans Odoo sont des éléments de menu qui sont affichés comme des options supplémentaires ou des catégories imbriquées sous un élément de menu principal. Ils permettent d’organiser les fonctionnalités de manière hiérarchique et offrent une navigation structurée dans l’application Odoo.

Voici un exemple simple de code XML pour définir des sous-menus dans Odoo :

<odoo>
  <data>

    <!-- Définition d'un menu principal -->
    <record id="main_menu_id" model="ir.ui.menu">
      <field name="name">Menu Principal</field>
      <field name="sequence">10</field>
    </record>

    <!-- Définition d'un sous-menu -->
    <record id="submenu_id" model="ir.ui.menu">
      <field name="name">Sous-Menu</field>
      <field name="parent_id" ref="main_menu_id"/>
      <field name="sequence">5</field>
      <field name="action" ref="module.action_submenu"/>
    </record>

    <!-- Définition de l'action associée au sous-menu -->
    <record id="action_submenu" model="ir.actions.act_window">
      <field name="name">Action Sous-Menu</field>
      <field name="res_model">my_module.model</field>
      <field name="view_mode">tree,form</field>
    </record>

  </data>
</odoo>

Explications :

  • La balise <record> est utilisée pour définir un enregistrement dans Odoo. Chaque enregistrement est identifié par un id unique.
  • Le premier enregistrement définit le menu principal en utilisant le modèle ir.ui.menu. Le champ name définit le nom du menu, et le champ sequence définit l’ordre d’affichage.
  • Le deuxième enregistrement définit le sous-menu en utilisant le modèle ir.ui.menu. Le champ name définit le nom du sous-menu, le champ parent_id référence l’id du menu principal, le champ sequence définit l’ordre d’affichage, et le champ action référence l’id de l’action associée au sous-menu.
  • Le troisième enregistrement définit l’action associée au sous-menu en utilisant le modèle ir.actions.act_window. Le champ name définit le nom de l’action, le champ res_model définit le modèle de données associé à l’action, et le champ view_mode définit les modes d’affichage disponibles pour l’action (ici, « tree » et « form »).

Cet exemple illustre comment définir un menu principal, un sous-menu, et l’action associée en utilisant des enregistrements XML dans Odoo.

Activité : Créer deux sous-menus, « Opérations » et « Patients ».

Instructions :

  1. Ouvrez Odoo dans votre navigateur.
  2. Identifiez l’élément de menu principal auquel vous souhaitez ajouter les sous-menus. Notez son nom.
  3. Accédez à l’interface de développement d’Odoo.
  4. Dans votre fichier menu.XML ajoutez les enregistrements XML pour définir les sous-menus « Opérations » et « Patients » en utilisant le modèle ir.ui.menu. Voici un exemple de code XML :
<odoo>
  <data>
     <menuitem id="menu_hospital_root"
              name="Hospital"
              sequence="10"/>
   
      <!-- Enregistrement du sous-menu "Opérations" -->
      <menuitem id="menu_hospital_operations"
              name="Operations"
              sequence="10"/>
    <!-- Enregistrement du sous-menu "Patients" -->
      <menuitem id="menu_patient_root"
              name="Patients"
              sequence="10"/>

  </data>
</odoo>
  1. Enregistrez le fichier XML.
  2. Actualisez la page Odoo dans votre navigateur pour charger les nouvelles définitions de menus.
  3. Allez dans technical-> menu items et chercher hospital, patients et operations.

Cet exercice permet à l’étudiant de pratiquer la création de sous-menus dans Odoo en utilisant des enregistrements XML. Ils apprendront à définir les sous-menus, à les associer à l’élément de menu principal et à vérifier les résultats dans l’interface Odoo.

Activité : Rendre le sous-menu « Patients » un sous-menu de « Operations » dans le menu principal « Hospital ».

Instructions :

  1. Ouvrez Odoo dans votre navigateur.
  2. Identifiez l’élément de menu principal « Hospital » et le sous-menu « Patients ».
  3. Accédez à l’interface de développement d’Odoo.
  4. Ouvrez le fichier XML contenant les définitions de menus ou créez un nouveau fichier XML.
  5. Trouvez l’enregistrement XML du sous-menu « Patients » et modifiez le champ parent pour faire référence à l’id du sous-menu « Operations ». Voici un exemple de code XML :
<odoo>
  <data>
     <menuitem id="menu_hospital_operations"
              name="Operations"
              parent="menu_hospital_root"
              sequence="10"/>
    <!-- Modification du sous-menu "Patients" pour en faire un sous-menu de "Operations" -->
    <menuitem id="menu_patient_root"
              name="Patients"
              parent="menu_hospital_operations"
              sequence="10"/>

  </data>
</odoo>
  1. Modifiez le champ parent pour faire référence à l’id du sous-menu « Operations ».
  2. Enregistrez le fichier XML.
  3. Actualisez la page Odoo dans votre navigateur pour charger les nouvelles définitions de menus.
  4. Vérifiez le menu principal « Hospital » et le sous-menu « Operations » pour voir si le sous-menu « Patients » est maintenant affiché comme un sous-menu de « Operations ».

Cet exercice permet à l’étudiant de comprendre comment modifier la structure des menus dans Odoo en utilisant les références parent. Ils apprendront à rendre un sous-menu fils d’un autre sous-menu existant et à vérifier les résultats dans l’interface Odoo.