Création de Votre Première Application Sous Odoo 14 –Partie 02

Introduction 

Développent application avec Odoo

Nous avons vu ensemble, l’architecture basique d’un module Odoo, et la manière de créer et installer un module.
Nous avons également ajouté un menu à notre application, et pour l’afficher nous avons accéder en mode super-utilisateur, pour visualiser les vues basiques créées par l’ORM d’Odoo.
Dans cet article nous allons découvrir comment créer les groupes de sécurités et droits d’accès nécessaires.
Nous continuons aussi, la personnalisation des vues de bases (Liste, recherche et formulaire) de notre application.

1. Création des groupes de sécurités : 

Dans l’article précédent, nous avons utilisé le super-utilisateur pour accéder à notre application, ce qui n’est pas pratique.
Nous allons plutôt définir deux groupes de base ; le groupes des administrateurs qui ont tous les droits de lecture et de modification, et un groupe des utilisateurs qui ont uniquement le droit de lecture.
Pour se faire nous allons tout d’abord créer un fichier xml, dans le répertoire security, qui définit le groupe administrateur, ce fichier aura le nom de :  groups.xml
 
<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="group_ag_managers" model="res.groups">
        <field name="name">Agence Managers</field>
        <field name="users" eval="[(4, ref('base.user_admin'))]"/>
</record>
</odoo>

Comme vous pouvez le constater, nous avons créé un groupe qui a comme id « group_ag_managers », à partir du modèle Odoo res.groups.
Le groupe créé hérite de la catégorie administrateurs ‘base.user_admin , qui donne tous les droits d’accès à un modèle.
Les autres utilisateurs entrent dans la catégorie générale des utilisateurs qui ont le droit de lecture uniquement.

2. Définition des droits d’accès :  

Toujours dans le répertoire security, Ajoutez le fichier nommé ir.model.access.csv et mettez le code suivant :
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
acl_agence_users,agence.vehicule default,model_agence_vehicule,,1,0,0,0
acl_agence_admin,agence.vehicule_admin,model_agence_vehicule,group_ag_managers,1,1,1,1

La définition des droits d’accès doit se faire sur chaque nouveau modèle créé, dans un fichier csv.
Dans la première ligne du fichier ir.modele.access.csv , on définit le modèle général de définition des droits d’accès pour un groupe donné.
Si on ne met pas le nom du groupe, comme la première ligne de notre fichier, cela indique que ce sont les droits des utilisateurs par défaut, qui ont comme droit de lecture seulement.
Les administrateurs qui appartiennent au groupe précédemment créé (group_ag_managers ont les droits de modification, création suppression et de mise à jour. 

3. Déclaration des nouveaux fichiers dans le fichier de base __manifest__

Pour que les changements seront pris en compte par le compilateur Odoo, nous déclarons les deux fichiers de configuration des droits d’accès  dans le fichier de base __manifest__.py.
Ajoutez donc, dans l’ordre les deux lignes suivantes :
'data': [
    'security/groups.xml',
    'security/ir.model.access.csv',
    'views/agence_vehicule.xml'
    ],

 On profite l’occasion pour ajouter d’autres informations à notre fichier __manifest__.py, pour préciser l’ordre de l’affichage de l’application, et que le module est une application installable. On précise également que l’application ne s’installe pas automatiquement mais manuellement.
'application': True ,
'installable': True ,
'auto_install': False,
'sequence': 1,

4.Ajouter une Vue Formulaire personnalisée :

Pour personnaliser la vue formulaire, nous allons dans notre fichier créé précédemment dans le dossier views (agence_vehicule.xml) , puis nous y ajoutons le « rercord » suivant :


<record id="agence_vehicule_view_form" model="ir.ui.view">
        <field name="name">Agence Vehicule Form</field>
        <field name="model">agence.vehicule</field>
        <field name="arch" type="xml">
            <form>
            <sheet>
                <group>
                    <group>
                        <field name="marque"/>
                        <field name="modele"/>
                        <field name="chaffeur_ids" widget="many2many_tags"/>
                    </group>
                    <group>
                        <field name="date_achat"/>
                    </group>
                </group>
            </sheet>
            </form>
        </field>
    </record>

Nous avons ajouté la définition de la vue formulaire à partir du modèle Odoo de base model="ir.ui.view", puis le modèle ‘agence.vehicule’ que nous voulons représenter ces données sous forme formulaire, à travers la balise 
<form>.
 On ajoute la balise <form> pour préciser qu’il s’agit d’une vue formulaire, et dedans on déclare les champs à représenter de la façon souhaitée.
On peut donc représenter la même information sous plusieurs formes avec les widgets xml.
Ajoutez la balise <group> pour mieux représenter les champs (fields) et La balise <sheet> pour afficher la vue formulaire sous forme d’une page .       

5.Ajout d’une Vue Liste personnalisée :

Comme dans la vue Formulaire on ajoute dans le fichier views/agence_vehicule.xml , un nouveau enregistrement (record), et au lieu de mettre la balise form on met la balise liste pour indiquer qu’il s’agit d’une vue liste (tableau de colonnes).  
 <record id="agence_vehicule_tree" model="ir.ui.view">
            <field name="name">Agence Vehicule Liste</field>
            <field name="model">agence.vehicule</field>
            <field name="arch" type="xml">
                <tree>
                    <field name="marque"/>
                    <field name="modele"/>
                    <field name="date_achat"/>
                </tree>
            </field>
    </record>

6.Ajouter et personnaliser Une Vue Recherche :

La vue recherche permet de rechercher, de classifier et de regroupez les informations du modèle en cours. On peut personnaliser les enregistrements à rechercher, les filtres et les regroupements.
   Dans notre exemple et toujours dans le fichier des vue agence_vehicule.xml, nous ajoutons de la même façon que la vue liste et formulaire, la vue recherche, en mettant la balise search .
Nous ajoutons un filtre qui permet d’afficher uniquement les véhicules qui n’ont pas des chauffeurs.
<record id="agence_vehicule_search" model="ir.ui.view">
            <field name="name">Agence Vehicule Recherche</field>
            <field name="model">agence.vehicule</field>
            <field name="arch" type="xml">
                <search>
                    <field name="marque"/>
                    <field name="modele"/>
                    <field name="date_achat"/>
                    <filter string="Sans  Chaffeurs"
                            name="without_driver"
                            domain="[('chaffeur_ids','=',False)]"/>
                </search>
            </field>
    </record>

Vue recherche Odoo 14

7. Redémarrage du service Odoo et Mise à jour de notre application 

Pour afficher les changements sur notre module, on doit tout d’abord redémarrer le service Odoo 14, puis faire la mise à jour de notre application dans le menu mise à jour de la liste des applications.
 
Remarques :
  • Dans le cas du changement au niveau des fichiers pythons, on doit redémarrer le service Odoo
  • Dans le cas du changement au niveaux des fichiers xml, on doit actualiser l’affichage et mettre à jour le module qu’on a effectué les modifications
  • Dans el cas de modification au niveau des fichiers python et fichiers xml, on doit redémarrer le serveur Odoo puis mettre à jour le module.
  • On peut visualiser tous les changements effectués (l’ajout des vues, des modèles, dans la partie technique de l’interface Odoo ( après l’activation du mode développeur) , Idem pour l’ajout des nouveaux groupes en allant sur la partie configuration puis dans la partie utilisateurs et société cliquer sur groupes (là également il faut activer le mode développeur).

Conclusion

Dans cet article, nous avons complété notre application créée durant la première partie, en y a joutant les vue et les droits d’accès nécessaires.
Nous avons commencé par la définition des droits d’accès pour pouvoir visualiser les différentes parties de notre application.
Ensuite, nous avons créé les vues de base qui sont la Vue Formulaire, la vue liste et recherche, qui sont les vue de base qui sont présent pratiquement sur tous les vues Odoo.

Télécharger gratuitement votre  guide odoo ! 

Télécharger Gratuitement votre guide Odoo

Découvrez comment , Odoo  est une vraie opportunité pour les entreprises et les développeurs !


Télécharger !