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

Les vues

Activité :

Objectif : Copier le code d’une action de fenêtre existante dans Odoo, en utilisant l’external ID, et le coller dans un fichier XML nommé « patient.xml ».

Instructions :

  1. Ouvrez Odoo dans votre navigateur.
  2. Cliquez sur le menu « Technical » situé dans la barre de navigation supérieure.
  3. Sélectionnez l’option « Window Actions » dans le menu déroulant.
  4. Recherchez l’action de fenêtre associée aux « Customers » (clients) dans la liste des actions de fenêtre.
  5. Accédez à la page de configuration de l’action de fenêtre pour les « Customers ».
  6. Localisez l’External ID associé à cette action de fenêtre et copiez-le.
  7. Accédez à votre répertoire de fichiers où vous souhaitez créer le fichier « patient.xml ».
  8. Effectuez un clic droit sur le dossier « Odoo » ou sur l’endroit approprié dans votre répertoire, puis sélectionnez l’option « Find in Path » (Rechercher dans les fichiers) dans le menu contextuel.
  9. Collez l’External ID que vous avez copié dans le champ de recherche et lancez la recherche.
  10. La recherche devrait trouver le fichier XML contenant l’action de fenêtre correspondante.
  11. Copiez le code XML de l’action de fenêtre trouvée.
  12. Ouvrez le fichier « patient.xml » dans un éditeur de texte.
  13. Collez le code XML de l’action de fenêtre copié dans le fichier « patient.xml ».
  14. Enregistrez le fichier « patient.xml ».
  15. Félicitations ! Vous avez copié avec succès le code d’une action de fenêtre existante dans Odoo en utilisant l’external ID et l’avez collé dans un fichier XML nommé « patient.xml ».

Cette activité permet à l’étudiant de se familiariser avec la recherche d’une action de fenêtre spécifique dans Odoo, de localiser son External ID, de trouver le fichier XML correspondant à cette action de fenêtre dans le répertoire du projet, et de copier le code XML dans un autre fichier pour une utilisation ultérieure.

Les actions

Dans Odoo, une action fait référence à une tâche ou à un comportement spécifique qui est déclenché lorsqu’un utilisateur sélectionne un élément de menu ou effectue une action dans l’application. Les actions permettent de définir ce qui se passe après qu’un utilisateur a interagi avec un élément de menu, un bouton ou une autre fonctionnalité de l’application.

Une action dans Odoo peut prendre différentes formes selon le contexte et l’objectif :

  1. Action de visualisation : Une action de visualisation est utilisée pour afficher des données à l’utilisateur. Elle peut afficher une liste de données, un formulaire détaillé, un tableau de bord ou tout autre type de vue permettant à l’utilisateur de consulter des informations.
  2. Action de création ou de modification : Une action de création ou de modification est utilisée pour permettre à l’utilisateur de créer de nouvelles entrées ou de modifier des enregistrements existants. Elle peut afficher un formulaire pré-rempli avec des champs à remplir ou à modifier.
  3. Action de suppression : Une action de suppression est utilisée pour permettre à l’utilisateur de supprimer des enregistrements de la base de données. Elle peut être déclenchée lorsqu’un utilisateur clique sur un bouton de suppression ou sélectionne une option de suppression dans un menu.
  4. Action de workflow : Une action de workflow est utilisée pour faire avancer un processus ou un flux de travail spécifique. Elle peut déclencher des étapes supplémentaires, des validations ou des notifications selon les règles définies dans le workflow.
  5. Action personnalisée : Odoo permet également de créer des actions personnalisées pour répondre à des besoins spécifiques. Cela peut inclure des actions personnalisées qui exécutent du code Python, déclenchent des tâches automatisées ou effectuent des opérations spécifiques.

Les actions sont définies en tant qu’enregistrements dans Odoo, généralement en utilisant le modèle ir.actions.* correspondant au type d’action spécifique. Elles sont associées à des éléments de menu, des boutons ou d’autres déclencheurs d’interaction utilisateur.

En résumé, une action dans Odoo définit le comportement ou la tâche à effectuer lorsque l’utilisateur interagit avec un élément de menu ou exécute une action spécifique. Les actions peuvent inclure l’affichage de données, la création ou la modification d’enregistrements, la suppression d’enregistrements, l’avancement d’un flux de travail ou des actions personnalisées.

Voici un exemple simple de code XML commenté qui définit une action d’affichage de données dans Odoo :

<odoo>
  <data>

    <!-- Définition de l'action de visualisation -->
    <record id="action_view_data" model="ir.actions.act_window">
      <field name="name">Action Affichage de Données</field>
      <field name="res_model">my_module.model</field>
      <field name="view_mode">tree,form</field>
      <field name="context">{}</field>
      <field name="domain">[('active', '=', True)]</field>
    </record>

    <!-- Enregistrement du sous-menu associé à l'action -->
    <record id="submenu_id" model="ir.ui.menu">
      <field name="name">Afficher les Données</field>
      <field name="parent_id" ref="main_menu_id"/>
      <field name="action" ref="action_view_data"/>
    </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 l’action de visualisation en utilisant le modèle ir.actions.act_window. Les champs sont commentés pour expliquer leur rôle :
  • 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.
  • Le champ view_mode définit les modes d’affichage disponibles pour l’action (ici, « tree » et « form »).
  • Le champ context définit le contexte de l’action, qui peut contenir des valeurs ou des variables à transmettre lors de l’affichage des données.
  • Le champ domain définit un filtre pour afficher uniquement les enregistrements qui satisfont la condition spécifiée.
  • Le deuxième enregistrement définit le sous-menu associé à l’action en utilisant le modèle ir.ui.menu. Les champs sont commentés pour expliquer leur rôle :
  • Le champ name définit le nom du sous-menu.
  • Le champ parent_id référence l’id de l’élément de menu principal auquel le sous-menu est associé.
  • Le champ action référence l’id de l’action de visualisation à associer au sous-menu.

Cet exemple illustre comment définir une action de visualisation de données dans Odoo en utilisant des enregistrements XML. Les commentaires expliquent le rôle de chaque champ dans la définition de l’action et du sous-menu associé.

Activité :

Objectif : Modifier le fichier « patient.xml » en remplaçant son contenu par le code fourni, l’ajouter au manifeste, recompiler le module et vérifier l’action modifiée dans Odoo.

Instructions :

  1. Ouvrez le fichier « patient.xml » dans un éditeur de texte.
  2. Remplacez tout le contenu existant du fichier par le code XML suivant :
<?xml version="1.0" encoding="utf-8"?>
<odoo>
  <data>
    <record id="action_hospital_patient" model="ir.actions.act_window">
      <field name="name">Patients</field>
      <field name="res_model">hospital.patient</field>
      <field name="view_mode">tree,form</field>
    </record>
    <menitem id="menu_patients"
             name="Patients"
             parent="action_hospital_patient"
             sequence="10"/>
  </data>
</odoo>
  1. Enregistrez le fichier « patient.xml » avec les modifications.
  2. Ouvrez le fichier « manifest.py » du module correspondant dans un éditeur de texte.
  3. Ajoutez le fichier « patient.xml » dans la liste des fichiers XML du module. Par exemple :
{
    'name': 'Nom du module',
    'version': '1.0',
    'depends': ['base'],
    'data': [
        'views/patient.xml',
        # Autres fichiers XML du module...
    ],
    'installable': True,
    'auto_install': False,
}

Assurez-vous de remplacer « views/patient.xml » par le chemin réel vers votre fichier « patient.xml » si nécessaire.

  1. Enregistrez le fichier manifeste avec les modifications.
  2. Rechargez ou redémarrez le module correspondant dans Odoo pour prendre en compte les modifications. Selon votre configuration, cela peut nécessiter une recompilation du module.
  3. Ouvrez Odoo dans votre navigateur.
  4. Cliquez sur le menu « Technical » situé dans la barre de navigation supérieure.
  5. Sélectionnez l’option « Window Actions » dans le menu déroulant.
  6. Recherchez l’action de fenêtre associée aux « Patients » dans la liste des actions de fenêtre.
  7. Vérifiez que l’action « Patients » apparaît et correspond à l’action modifiée dans le fichier « patient.xml ».