OpenERP: prise en main

Introduction

Ce tuto est actuellement en plein remaniement, l’explication sur le « coding » de modules est en cours.

Nous allons étudier dans ce micro tuto la mise en place d’un environnement de développement pour OpenERP. Ce tuto peut vous intéresser si vous êtes complètement débutant dans le développement OpenERP.

Si vous cherchez plutôt un intégrateur OpenERP, vous pouvez vous tourner vers Thamini, OpenERP Gold Partner à Luxembourg.

La première partie traite essentiellement de l’installation, la prise en main et quelques notions de base.

La seconde partie, actuellement en rédaction, parlera de la création de modules.

Dans un premier temps, je vais vous proposer de télécharger les versions client et serveur d’OpenERP.

Client ? Serveur ? ? Il faut plusieurs logiciels ?? 8-O

Pas de panique !! Il faut en fait savoir qu’OpenERP est basé sur une architecture client-serveur.

C’est le serveur qui fait tout le boulot. Il va chercher les infos dans une base de données, calcule, et mixe le tout.

Le client quant à lui se contente de récupérer et afficher ces infos.

Lorsque l’utilisateur clique, écrit, demande l’affichage d’une vue, le client ne fait qu’afficher ce que veux bien lui envoyer le serveur.


Sur les captures d’écran précédentes, on voit le serveur dans la console et le client graphique GTK. Pour votre culture, sachez qu’il existe également un client web qui s’exécute dans un navigateur web mais nous n’en parleront pas ici.

Installation

On peut lire sur pas mal de forums que l’installation d’OpenERP n’est pas toujours simple. :-\

Si vous êtes sous Windows, en général ça va : clic-clic-suivant-suivant :-)

Si vous êtes sous GNU/Linux et que votre distribution contient le serveur et client dans les dépôts, ça va également ^_^

Nous, on va voir l’installation manuelle sous Ubuntu 8-) Vous pouvez dors et déjà ouvrir une console.

Euh…. attends…. Une console ?? On est sur Ubuntu, là !!

Et alors ?

Ben ça pue la console, il n’y a pas un outil graphique ? ce serait plus sympa !! :-D

Si, il existe des outils graphiques mais la console est infiniment plus puissante et surtout plus rapide à utiliser que n’importe quel outil graphique.

Les outils graphiques sont plus facile d’accès et plus séduisants mais ce genre d’outils conduisent droit vers le côté obscur de la force. Plus la console tu utiliseras, plus efficace tu seras.

Et puis de toute manière, c’est moi qui décide !!

La base de données PostgreSQL

Je vous ai dit que le serveur OpenERP causait avec une base de données et cette base de données, c’est PostgreSQL.

Allez zou, installation :

Alors, la console, ce n’est pas rapide ? ;-)

On va ensuite ajouter un ROLE, c’est-à-dire un utilisateur postgreSQL. Choisissez de préférence le même nom d’utilisateur que votre session Ubuntu.

On se connecte en tant qu’utilisateur postgreSQL :

On observe maintenant qu’au prompt de votre console, au lieu de votreUser@ubuntu$, vous avez quelque chose ressemblant à postgres@ubuntu$.

Créez le nouveau ROLE postgreSQL :

Bien sûr, remplacez votreUser par votre nom d’utilisateur Linux. Vous pouvez laisser le mot de passe vide, mais par contre, répondez bien oui lorsque postgres vous demande si le nouveau role a le pouvoir de créer des bases de données.

Quelques dépendances

OpenERP est codé en python, assurons-nous d’avoir tous les paquets nécessaires :

OpenERP

Le moment est venu de lancer OpenERP client/serveur.

Téléchargez ces fichiers afin que l’on ait la même base de travail.

[attachments docid=271 force_saveas= »0″ logged_users= »0″]

[attachments docid=270 force_saveas= »0″ logged_users= »0″]

Putain !! tu as fait ça bien !!

N’est-ce pas ? Mais ne relache pas ton attention, tu peux fermer la console et en ouvrir une nouvelle (ou revenir directement sous ton utilisateur si tu sais faire ;-) ).

Créez un dossier intitulé oo :

Si vous ouvrez un explorateur de fichier, vous vous apercevrez qu’il y a dans votre “home directory” un nouveau dossier intitulé oo.

Ça veut dire quoi oo ??

oo signifie OpenObject, c’est ainsi que se nomme le framework d’OpenERP.

Copiez les fichiers d’OpenERP téléchargés précédemment dans ce répertoire. Placez-vous en console dans ce répertoire :

Les 2 archives sont au format tar.gz. Pour les détarrer :

8-o C’est quoi cette commande de martien ?? 8-o

ls | grep tar.gzls liste le contenu du répertoire et grep filtre les résultats sur les fichiers tar.gz. Le résultat de cette commande va être interprété par une boucle for qui va lire chaque ligne (= chaque fichier tar.gz) et la traiter avec une variable i.

:!: Cette commande se trouve entre 2 apostrophes inversés ([Alt + 7] sur les claviers français, ne pas confondre avec l’apostrophe de la touche 4). :!:

do et done → marque le début et la fin de la boucle.

tar xzf $i → commande qui permet de détarrer chaque fichier.

rm $i → une fois détarré, on efface le fichier tar.gz en cours.

Chaque instruction est séparée par un point-virgule.

Vous devez vous retrouver avec 2 dossiers, un contenant le client et l’autre le serveur. On va faire une dernière manipulation, renommer ces dossiers :

Si vous avez bien suivi, c’est ooc pour OpenObject Client et oos pour OpenObject Server.

C’est maintenant le test de vérité, lancez le serveur :

(Si ça plante, lisez le message d’erreur à la fin. Il vous manque sans aucun doute une dépendance python). Laissez en fonctionnement et depuis une autre console (astuce : ouvrez un autre onglet), lancez le client !!

Le client

Avant de coder comme des fous, on va étudier un peu le fonctionnement du client.

On va dans un premier temps créer une nouvelle base de données qui va nous permettre de stocker nos données.

OpenERP est construit sur une architecture Modèle-Vue-Contrôleur (MVC), la base de données est le Modèle :-)

Vérifiez que le serveur est toujours en fonctionnement (Et oui, sans serveur, le client ne fonctionnera pas).

Normalement, je vous ai fait lancer le client dans le chapitre précédent.

Allons-y !!

Paramétrage d’une nouvelle base de données

La création d’une nouvelle base se fait depuis le client.

Allez dans Fichier → Bases de Données → Nouvelle base de données.

Il va falloir remplir 4 champs :

  1. Tout d’abord, le mot de passe du super-adminstrateur OpenERP. Il s’agit par défaut de admin
  2. On choisit ensuite un nom pour la base de données qui va servir à OpenERP. Par exemple microtuto mais vous pouvez mettre ce que vous voulez.
  3. Encore un mot de passe administrateur, il s’agit cette fois du mot de passe du futur administrateur de notre base microtuto. Je pensais au début qu’il fallait remettre le même mot de passe que le super-admin OpenERP mais non.
  4. On confirme le mot de passe de notre future base microtuto.

Appuyer sur valider déclenche la création d’une nouvelle base PostgreSQL avec la structure de base d’OpenERP. Si vous jetez un coup d’oeil dans la console où est lancé le serveur, vous verrez que celui-ci est entré en action et affiche ce qu’il est en train de faire.

Pour rappel, il ne se passe rien du côté du client. Ce dernier se contente de donner des ordres au pauvre serveur qui n’a pas d’autres choix que de s’executer.

Donc pendant que le serveur bosse, le client attend….

Une fois l’opération terminée, le client nous informe que le serveur a fini son boulot et que l’on peut commencer à travailler. Cliquer sur connectez maintenant.

La première étape consiste à configurer OpenERP. Le client nous propose plusieurs profils d’utilisation. On va dans un premier temps choisir le profil minimal.

Vous pouvez laissez les champs par défaut, ce n’est pas important pour ce que l’on va faire donc suivant → suivant → installer.

Après avoir fait bosser le serveur, le client vous informe que la base est installée, vous avez alors le choix de la configurer ou de l’utiliser directement. Choisissez configurer mais à chaque étape, choisissez “Passer l’étape” La base aura les paramètres par défaut et c’est suffisant pour le moment.

Faisons un peu connaissance avec l’interface. On voit en bas que l’on est connecté sur la base de données de notre machine (socket://localhost:8070). Il est tout à fait possible d’utiliser une base se trouvant ailleurs sur le réseau local ou sur le net.

On voit également que l’on utilise actuellement la base [microtuto] et que l’on est loggué en Administrateur.

Cliquez sur partenaires. Le menu se déroule : on peut afficher les différents partenaires selon différents critères. Je vous invite à double cliquer sur partenaires.

Un nouvel onglet s’ouvre. Les boutons du menu qui étaient grisés sont maintenant accessibles pour executer différentes actions.

Vous pouvez maintenant si vous le désirez créer un nouveau partenaire, sauvegarder et même en supprimer. La vue par défaut est une vue « liste » car les partenaires sont présentés sous forme de liste. Double-cliquez sur un partenaire et vous verrez le détail de ce partenaire au moyen de la vue « formulaire ».

Ben vous attendez quoi ?? allez, double-cliquez sur un partenaire !!

Bien ;-), vous avez donc votre partenaire avec la vue formulaire. Pour revenir à la liste, il suffit de cliquer sur le bouton « liste », tout simplement.

Petite anecdote, au début, je n’avais pas fait attention à l’existene de ces boutons et pour réafficher l’ensemble des partenaires, je fermais l’onglet, revenait au menu, double-cliquait sur partenaires, etc.

Là-bas au fond !! interdit de se moquer !!

Bref, les développeurs ne se sont pas emmerdés à coder ces boutons pour rien, donc abusez-en, c’est bon.

Au passage, je vous fait remarquer également les flèches, pour faire défiler les partenaires lorsque vous êtes en vue formulaire. Ća peut toujours servir…

Allez-y cliquez un peu partout, observez comment tout est lié, pas mal non ?

Bon tu es bien gentil avec tes partenaires, mais tu nous a fait perdre tout notre temps pour ça ? Où je vais pour gérer mes stocks ? Et mes produits, je les range où ?? et mes factures ?? je ne vois rien qui me permette de gérer tout ça. Il est pourri ton ERP !!

Oh là ! Halte là, jeune padawan !! J’y viens. Je vais justement te parler de ce qui fait toute la puissance d’OpenERP : ses modules.

Les modules permettent d’étendre les possibilités d’OpenERP. En fonction de tes besoins, tu vas pouvoir faire d’OpenERP l’ERP de tes rêves.

Il existe plus de 300 modules permettant d’étendre les possibilités d’OpenERP, tu vas pouvoir gérer tes produits, ton stock, tes factures, ton personnel… OpenERP peut également se transformer en gestion de bibliothèque, en wiki, en correcteur d’examens… Il ne fait pas encore le café mais Xavier y travaille d’arrache-pied.

On va de suite aller y faire un tour.

Les modules

Un premier module

On va installer le module google_map. Ce module ajoute un bouton dans la vue formulaire des partenaires. Un clic sur celui-ci et vous voilà sur le site google maps, directement à l’adresse du partenaire.

Menu Raccourcis → modules

Comme les partenaires, la vue par défaut est la vue liste. Pour passer en vue formulaire et ainsi afficher plus d’infos sur un module, un double-clic sur le module en question ou un clic sur le bouton formulaire et c’est bon.

Vous avez un champ de recherche permettant de trouver plus rapidement un module en fonction de son nom ou de son état (installé, non installable, à mettre à jour…). Si ces 2 champs ne vous suffisent pas, un clic sur le bouton + vous permettra de trouver un module en fonction de son auteur, son site web….

Recherchez maintenant le module google_map.

La vue formulaire du module affiche les infos sur celui-ci. Cliquez sur « planifier pour installation ».

Vous pouvez ainsi choisir plusieurs modules à installer.

Cliquer ensuite sur « Appliquer les Mises à Jour Planifiées ».

C’est là que le client reprend son rôle de tyran, regardez le serveur, il se remet à bosser, c’est lui qui installe le module ^_^

A la fin de l’installation, OpenERP vous propose de configurer le module, mais comme il n’y a rien de spécial à configurer, il y a juste à cliquer sur valider.

Google_map est un tout petit module de rien du tout mais ce ne sera pas toujours le cas.

Vous pouvez maintenant choisir un partenaire (vous savez comment faire maintenant ;-) ) et observez le petit bouton « carte » à côté de « adresse suite ». C’est lui qui va vous montrer une vue aérienne du domicile de votre partenaire. A condition toutefois que l’adresse ait été correctement renseignée !!

Un second module

Retournez sur l’onglet des modules.

Si vous êtes toujours sur la vue formulaire du module google_map, cliquez sur le bouton Liste pour réafficher la liste des modules.

Installez maintenant le module point_of_sale (point de vente), vous savez comment faire…

Au moment de l’installer, vous observez que le client va vous installer d’autres modules. Ben oui, pour fonctionner correctement, point_of_sale dépend d’autres modules. Heureusement, OpenERP est intelligent et vous installe automatiquement tout ce dont point_of_sale a besoin.

Au passage, observez comment le pauvre serveur travaille au moment de l’installation pendant que le client attend.

:-\ Ouais, c’est bon on a compris que c’est le serveur qui fait tout le boulot, tu deviens lourd !!

:-x Si je vous dit de jeter un oeil sur le serveur, c’est parce que lorsque vous allez développer vos propres modules, les logs qu’il génère vous seront utiles. Pour le moment, le serveur est tout vert, il est content. Mais lorsque vous allez lui balancer votre module plein de bugs, il ne chantera pas la même chanson et vous serez heureux de comprendre ce qui ne va pas.

Retournez maintenant sur l’onglet du menu. Pour afficher les modules fraichement installés, il faut rafraichir l’affichage en appuyant sur le bouton « recharger ».

Raccourcis clavier :

Allez y, jouez un peu, explorez les modules et leurs fonctionnalités. Dans le chapitre suivant, nous allons voir comment créer notre propre module.

Organisation des modules

Un petit peu de théorie avant d’entrer dans le vif du sujet.

Les modules se trouvent côté serveur, dans le répertoire /bin/addons/

Tous les modules sont construits de la même manière. Vous avez pour chaque module un dossier portant le nom de celui-ci.

Regardez par exemple dans le module wiki.

Vous trouverez cette même structure dans chaque dossier de chaque module :

  • __init__.py : fichier typique python d’initialisation du module
  • __terp__.py : fichier propre à OpenERP (terp signifie TinyERP, c’est l’ancien nom d’OpenERP). Ce fichier contient plusieurs paramètres indispensables comme la description du module, les autres modules nécessaires à son fonctionnement, l’auteur du module, sa version…
  • nomDuModule.py : fichier python contenant les différentes actions du module, la définition des champs dans la base de données… A propos, je vous parlais tout à l’heure de la base de données qui était le ”modèle”. Et bien, ce fichier python est son copain le ”contrôleur”.
  • nomDuModule_view.xml : fichier xml servant à décrire les ”vues” du module : la vue formulaire, la vue arbre, les menus. Modèle – Vue – Contrôleur… La boucle est bouclée.
  • Répertoire i18n : répertoire rempli de fichiers *.po, des fichiers de traduction linguistique. Il faut savoir que les modules d’OpenERP doivent être en « english only », c’est comme ça ma bonne dame, ça fait partie des conventions établies entre les développeurs. Et si vous voulez créer un module en chinois ou en turc, il vous faudra utiliser ces fichiers.

:?: Et les autres fichiers ? Tu n’en parles pas ? Ils sont là pour faire joli ? :?:

Non, je n’en parlerai pas tout d’abord parce qu’il ne vont pas nous servir dans l’immédiat, et puis ça ne sert à rien de surcharger inutilement tes petits neurones, une chose à la fois ^_^

Création de module

En vérité, nous n’allons pas dans un premier temps créer un module de zéro mais modifier un module existant.

On va pour cela partir d’une base propre. Recréez une nouvelle base de données. Perso, j’ai choisi de supprimer la base existante ( Fichier → Bases de données → supprimer base de données ) et d’en recréer une mais vous faites comme vous voulez, si vous voulez garder la base actuelle et en créer une différente, vous pouvez aussi.

Info : pour supprimer une base de données, c’est le mot de passe du super-admin OpenERP qu’il faut renseigner (admin par défaut).

Ça y est ? Vous avez votre base toute neuve ? On va pouvoir la triturer hé hé hé.

Installez tout d’abord le module wiki.

Le module wiki fonctionne impeccablement avec le client web d’OpenERP, seulement dans le client GTK, une option manque, la case à cocher « modification mineure ».

Votre mission si vous l’acceptez va être d’ajouter ce champ manquant !! 8-)

Je vous invite tout d’abord à ouvrir le fichier « contrôleur »du module : wiki.py

Vous avez en début de fichier quelques imports de modules dont un que vous retrouverez obligatoirement pour chaque module d’OpenERP :

Sans cet import, point de module !! osv est la classe de base d’OpenERP, tous les modules en dépendent.

Vous avez ensuite plusieurs définitions de classes : Wiki, WikiGroup, GroupLink… toutes ces classes héritent de osv.osv.

Prenons par exemple la classe WikiGroup :

Wikigroup hérite bien de osv.osv.

Y est défini son nom, une description, ainsi que les différentes colonnes.

Une chose importante que vous retrouverez à la fin de chaque classe, son instanciation !!

Si la classe n’est pas instanciée, elle ne sera pas active !! C’est une erreur que l’on fait parfois au début :-)

Tweet about this on TwitterShare on Google+0Share on Facebook0Email this to someone

3 réflexions au sujet de « OpenERP: prise en main »

  1. salut !
    j’ai lu votre tutoriel et j’avoue que je ne retrouve pas je suis débutante dans openERP je l’utilise dans windows, je veux pouvoir créer mes propre modules SVP quelqu’un pourrait m’aider???

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *