====== Création de la structure du module OpenERP ======
===== Présentation =====
Un module correspond à un répertoire dans le dossier **/usr/lib/python2.7/dist-packages/openerp/addons**.
Si le chenim du répertoire **addons** n'existe pas, consulter le paramètre** addons_path** du fichier de configuration de **OpenERP** pour connaître où il se situe dans l'arborescence.
cat /etc/openerp/openerp-server.conf
==== Quelques précisison sur les modules ====
Un **module OpenERP** correspond à un ensemble d'éléments (sous-dossiers et fichiers) regroupés dans un **dossier** localisé par défaut dans le dossier **addons**.
Ce dossier doit contenir un minimum d'éléments :
=== Dossiers ===
^Nom du dossier^Description^
|i18n|Informations de traduction du module(fichiers .po)|
|security |Fichiers de contrôle d'accès et les règles|
=== Dossiers éventuels ===
^Nom du dossier^Description^
|static|C'est le dossier Web du module avec ses sous-dossiers pour l'image du module, les CSS, les fichiers javascript, etc.|
| process |workflow (et processus) décrit dans un fichier XML|
| report |Fichiers pour les rapports décrits dans des fichiers .sxw|
=== Les fichiers ===
^Nom du ficher^Description^
|%%__init__.py%%|permet le chargement du fichier par OpenERP|
|%%__openerp__.py%%|Fichier **Manifest** avec les informations sur le module : nom, version, catégorie, description, fichiers à charger, dépendances, etc.|
|fichiers python|code du module (Contrôleurs, Modèles)|
|Fichiers XML|décrivant les vues : listes, formulaires, menus, filtres de recherche|
Les fichiers **.py** sont des scripts écrits en python.
==== Création du module ====
**A faire :** Créer le squelette du module appelé **openacademy** dans le dossier **addons**.
* ouvrez une session terminal en tant que root ;
* positionnez-vous dans le dossier **addons** d'Odoo (**/usr/lib/python2.7/dist-packages/openerp/addons**)
* Créez le sous-dossier **openacademy** ;
* Créez dans le dossier **openacademy** le sous-dossier **security**.
# cd /usr/lib/python2.7/dist-packages/openerp/addons
# mkdir openacademy
# mkdir openacademy/security
===== Création du fichier manifest du module OpenERP ======
Le rôle du fichier manifest **%%__openerp__.py%%** est de personnaliser la déclaration du module.
**A faire :** Créez le fichier **manifest** **%%__openerp__.py%%** du module comme ci-dessous (nom, description, auteur, etc.) dans votre dossier **openacademy**:
# -*- coding: utf-8 -*-
{
'name': "Open Academy",
'summary': """Gérer les formations""",
'description': """
Module Open Academy pour gérer les formations :
- parcours de formation
- session de formation
- inscription
""",
'author': "Charles Techer",
'website': "http://www.devodoo.fr",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml
# for the full list
'category': 'Test',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base'],
# always loaded
'data': [
# 'security/ir.model.access.csv',
'templates.xml',
],
# only loaded in demonstration mode
'demo': [
'demo.xml',
],
}
* **Enregistrez** le fichier
* **Modifiez les droits** sur les fichiers avec la commande suivante après vous êtes positionné sur le dossier addons:
# cd ..
# chmod 0755 -R openacademy
Les paramètres sont définis de la manière suivante :
* 'parametre': 'valeur',
* 'parametre': ['valeur1','valeur2','valeur3'],
Les différents paramètres :
* **name** : le nom du module ;
* **version** : la version du module ;
* **category** : la catégorie du module ;
* **sequence** : numéro de classement dans la liste des modules : 1 en tête du classement, 100 en bas ;
* **author** : auteur du module ;
* **summary** : résumé court sur ce que fait le module ;
* **description** : description complète du module ;
* **depends** : les modules dont votre module dépend ;
* **data** : les fichiers à charger s'il s'agit d'un module Web;
Votre module peut maintenant disponible parmi les autres modules d'OpenERP. Pour cela, il faut **mettre à jour** la liste des modules.
Pour faire cette mise à jour, il faut activez l'accès aux **caractéristiques techniques** pour le compte **administrateur** :
* à partir du module **Configuration**, choisissez le menu **Utilisateurs** puis le compte **Administrator** :
{{ :dev:openerp:creermodule:openerp_module_01.png |}}
* passez en modification et dans l'onglet **Droit d'accès** cliquez sur l'option **Caractéristiques techniques** :
{{ :dev:openerp:creermodule:openerp_module_02.png |}}
* **Sauvegardez**, **déconnectez** puis **reconnectez-vous**.
* Maintenant vous avez menu permettant la mise à jour de la liste des modules :
{{ :dev:openerp:creermodule:openerp_module_03.png |}}
* En faisant une **recherche** sur le nom du module **openacademy**, vous pouvez le **visualiser** et bientôt l'installer :
{{ :dev:openerp:creermodule:openerp_module_04.png |}}
* Si vous **lancez** son installation vous aurez une erreur car le module **openacademy** n'est pas trouvé (le fichier openacademy.py. Cependant l'installation est partiellement faite :
{{ :dev:openerp:creermodule:openerp_module_05.png |}}
===== Retour au sommaire de création d'un module =====
[[dev:openerp:creermodule:accueil|Développer un module dans OpenERP 7]]