====== 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]]