Nous avons testé l’approche CMS d’Odoo

Nous nous tenons régulièrement au courant des évolutions du marché des CMS, composante non négligeable du web d’aujourd’hui. Spade a récemment eu la chance de réaliser le design et l’intégration d’un site web utilisant Odoo.

Une excellente opportunité pour nous de tester ce poids lourd des solutions ERP.

odoo

Anciennement appelé « OpenERP« , le rebranding en « Odoo » s’accompagne d’une promesse d’un système innovant proposant de gérer un panel encore plus large de contenus et modules :

  • Bien entendu la composante initiale, l’ERP (Enterprise Resource Planning, en français Progiciel de gestion intégré pour les entreprises)
  • Un Site Builder en soit la partie CMS (Content Management System, en français Gestionnaire de contenu)
  • Un shop en ligne (fonctionnalités E-commerce)
  • Blog, forum, CRM (Customer Relationship Management)…

La connexion front-end d’une entreprise sur ses modules de gestion opérationnelle devient stratégique dans un nombre de secteurs. Pouvoir connecter ses clients, ses prospects et même ses employés (points de ventes) avec des processus internes (gestion de stock pour un e-commerce, demandes de rendez-vous pour une agence immobilière, …)  est une étape incontournable en 2015.

En ces temps d’Uberisation, certaines organisations établies peuvent s’adapter rapidement en intégrant cette composante Web directement sur leurs processus de gestion interne. Ce qui pourrait dans certains cas venir contrer l’arrivée de nouveaux entrants court-circuitant certains intermédiaires. La vitesse des « nouveaux barbares » repose souvent sur une intégration digitale complète.

Notre question stratégique?

Odoo peut-il faire de la concurrence à WordPress, Drupal, Expression Engine, Typo3 sur le marché des CMS ?

Témoins de la tendance à la multiplication des thèmes et frameworks proposant des fonctionnalités de live editors et de drag and drop, nous étions assez curieux de voir de quelle manière Odoo allait gérer la compétition.

Petit passage en revue de notre expérience.


Odoo est bien plus qu’un simple ERP : il comprend de nombreux modules (tels que CRM, CMS, e-Commerce, Blogs, Forums, News, Événements, LiveChat, Job offers, etc.) et permet véritablement de gérer tous les aspects informationnels d’une entreprise.

Dans cet article, nous nous focaliserons sur l’implémentation de la partie CMS étant donné que c’est celle que nous avons testée et qui nous intéresse le plus comme agence de communication contemporaine.

Il s’agit donc du module Website Builder.
Capture d'écran de la page d'accueil d'Odoo - cliquer pour agrandir.

Installation

L’installation locale est relativement technique et laborieuse, en tout cas sur Mac.

Python est déjà inclus par défaut.  Il faut ensuite se procurer postgresql.app pour utiliser une base de données locale, installer les dépendances Python listées dans un fichier et prier pour ne pas obtenir d’erreurs. Il faut aussi un outil de compilation pour les fichiers LESS (que ce soit via un package npm ou une application de type Codekit).

Lancement

Pour le lancement, difficile de se passer de la ligne de commande :

./odoo.py --addons-path=addons,../mymodules --db-filter=mydb$

Nous sommes ensuite redirigés vers une page où nous pouvons créer la base de données. Une fois celle-ci créée, nous pouvons installer tous les modules nécessaires.

Theming

Pour créer un thème, autant suivre les instructions de la documentation d’Odoo.

Fonctionnalités principales

  • Basic layouts for pages, blog and eCommerce
  • Website Builder integration
  • Basic Snippets
  • Automatic Less/Sass compiling
  • Automatic JS and CSS minification and combination

Technologies

Nous naviguons en terres connues, a priori du tout cuit pour nous. La documentation d’Odoo annonce même :

Don’t worry, after following the tutorial, you’ll be able to create your first theme with only basic knowledge of HTML.

D’après notre expérience, cela requiert tout de même quelques connaissances supplémentaires pour obtenir un résultat personnalisé : un peu de Python pour les modèles et contrôleurs, xpath et qWeb pour les templates.

Style

Odoo includes Bootstrap by default. This means that you can take advantage of all Bootstrap styles and layout functionalities out of the box.

Concernant le style, Odoo utilise donc le framework Bootstrap.

  • On ne sait pas exactement quelle version, ni si elle sera mise à jour et comment?
  • Que se passe-t-il si l’on ne veut pas utiliser Bootstrap ?
  • Doit-on overrider les styles que l’on ne souhaite pas ?
  • Selon la documentation, il suffit de créer un fichier style.less que l’on va placer dans un dossier /less dans notre répertoire /static pour ensuite l’appeler dans le header.

Il sera donc chargé après la feuille de styles de Bootstrap (même si tout sera minifié en un seul et même fichier).

Approche très discutable car il est normalement bon d’avoir la main sur la compilation des fichiers less en amont. Afin de pouvoir optimiser les styles en désactivant par exemple tous les composants qui ne sont pas nécessaires pour le rendu visuel du site.

Mais dans le cas d’Odoo, cette désactivation est à déconseiller car le système utilise lui-même Bootstrap. Pas évident de savoir ce qui est « désactivable » sans mettre en péril son fonctionnement des interfaces internes. Une approche découplée entre les deux parties serait une bonne recommandation (si jamais les core dev nous lisent :-).

Un choix intégré, qui laisse malheureusement moins de libertés par rapport à la « bonne concurrence » des autres CMS.

Sur WordPress par exemple, c’est l’équipe technique d’intégration qui fait le choix des technologies front-end :

  • le framework (il n’y a pas que Bootstrap sur le marché et tous les projets ne nécessitent pas de déployer une usine à gaz comme telle),
  • les librairies JS…

Selon nous, ces choix technologiques, pour gérer l’interface, doivent être validés en fonction du scope du projet et non imposé par la solution CMS.

Code Injecté

Comme beaucoup d’autres frameworks CMS, Odoo rajoute ses classes qu’il faut parfois overrider (neutraliser).

Exemple dans le code suivant :

<span t-field="role.employee_id.image_small" t-field-options='{"widget": "image", "class": "my-section-img my-section-img--round"}'/>

La propriété "widget": "image" ajoute la classe .img-responsive et le style qui va avec.

Pourquoi ce contrôle sur certains objets? Pour les développeurs front-end qui, comme nous, aiment avoir le contrôle total du code qui est généré, cela crée des surprises et ralenti nos efforts de travail.

Ce que nous avons apprécié avec Odoo

  • Le Site Builder avec son Live Editor est vraiment impressionnant :
    • Création de snippets à glisser, déposer, éditer
    • Ce qui donne une grande liberté au niveau de la mise en page.
    • Et tout cela se fait en « frontend » donc directement
  • Le système s’avère puissant
    • et malgré plusieurs passages à vide propres à la courbe d’apprentissage de l’outil,
    • nous avons quasi à chaque fois trouvé des solutions pour mettre en place les éléments tels que prévus par les étapes de design.
    • Nous avons pu respecter notre approche méthodologique
  • Le choix de Bootstrap permet évidemment de mettre en place facilement une approche de Responsive Design souple et confortable

Ce qui nous pose problème avec Odoo

  • La nécessité de mettre à jour à chaque fois que l’on fait des modifications dans les templates XML (grosse perte de temps)
  • L’obligation d’utiliser une version de Bootstrap complète (on utilise rarement l’entièreté du framework, pourquoi charger les modules inutilisés (CSS + JS) ?)
  • L’ajout de code (classes et styles) par le CMS
  • L’impossibilité d’utiliser du SVG à part sous la forme <img src="my-image.svg" />
  • La complexité de l’extension ou du remplacement des templates existants via xpath (exemple : <xpath expr="//div[@id='wrapwrap']/header" position="attributes">)
  • Les logs d’erreur pas assez explicites pour résoudre certaines actions. (exemple)

En conclusion sur la configuration module CMS

Après notre expérience sur ce premier projet avec Odoo, nous considérons qu’il manque encore de maturité sur les approches CMS. Une série de fonctionnalités gagneraient à évoluer pour assurer la rapidité d’implémentation de gros projets web.

Il reste néanmoins intéressant notamment par sa facilité d’utilisation pour ceux qui gèrent le contenu au quotidien (drag and drop, live editor), et ce, dans le cadre d’une utilisation basique.

Et c’est sans doute là que se situe l’équilibrage à faire : maintenir le choix stratégique d’un CMS facile à installer et à utiliser tout en offrant aux développeurs un environnement de travail plus souple.

Vous avez des questions pour un projet avec le CMS Odoo?

N’hésitez pas à prendre contact avec Spade, nous serons heureux de répondre à vos questions pour vous aider à réussir votre projet.

Et de vous mettre en contact si besoin avec nos partenaires techniques qui implémentent Odoo.

5 commentaires sur “Nous avons testé l’approche CMS d’Odoo

  1. Hello,

    Merci pour la review. On va voir ce que l’on peut ameliorer pour la prochaine version. Odoo 8 etait notre premiere iteration dans le monde des CMS et il y a bcp de choses que l’on souhaite ameliorer.

    Pour info, on sort Odoo 9 dans quelques semaines et:
    – l’editeur a ete completement refait from scratch
    – on utilise bootstrap 3 en fichiers less fragmentes, on peut n’utiliser que certains fichiers ou overwriter les variables directement dans son proper less
    – Odoo possede une option pour ne pas devoir faire -u a chaque changement pendant les devs

    Notez que si vous vous metez en mode debug, les styles ne sont pas minorities. (On minimifie pour optimiser le temps de changement des pages).

    Bref, on serait heureux d’avoir votre avis sur la version 9 qui va sortir dans quelques semaines avec un tout nouveau CMS.

    Merci

    Fabien

    • François Lamotte dit:

      Bonjour Fabien,

      Merci pour ces conseils techniques.

      Nous sommes intéressés par la prochaine sortie. Avant cet article, nous avions reçu d’autres demandes d’intégration sur le module CMS. Donc nous imaginons sans peine que d’autres demandes viendront.

      Si vous souhaitiez une discussion avec l’équipe qui a travaillé sur l’intégration, c’est avec plaisir que nous organiserions une discussion (skype ou real-life). N’hésitez pas à nous appeller au 02 543 44 30.

      A bientôt.

      François

  2. Mhand YOUDJOu dit:

    salut,
    pour la version odoo 10 est il y’a eu des changement concernant le CMS
    si possible me répondre sur ma boite courriel : myoudjou@gmail.com

    merci d’avance, c’est un bon article

Laisser un commentaire

Votre adresse email ne sera pas publiée.

Vous pouvez utiliser ces tags et attributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*