URL: https://linuxfr.org/news/sortie-de-creme-crm-en-version-2-2 Title: Sortie de Crème CRM en version 2.2 Authors: GuieA_7 Ysabeau Date: 2021-03-12T17:22:05+01:00 License: CC By-SA Tags: python, django, crm, cremecrm et gestion_relation_clients Score: 5 Le 19 février 2021 est sortie la version 2.2 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0). La précédente version, la 2.1, était sortie un peu plus d’un an auparavant, le 6 janvier 2020. ![Icone de Crème CRM](https://raw.githubusercontent.com/HybirdCorp/creme_crm/main/creme/static/common/images/creme_200.png) Pas mal de choses au programme, notamment le passage à Python 3.6 et la possibilité de personnaliser les formulaires principaux. Les nouveautés sont détaillées dans la suite de la dépêche. ---- [Site officiel](https://cremecrm.com/) [Démo en ligne](https://demos.cremecrm.com) [Le dépôt de source](https://github.com/HybirdCorp/creme_crm) ---- Description du logiciel ======================= Crème CRM est un logiciel de [gestion de la relation client](https://fr.wikipedia.org/wiki/Gestion_de_la_relation_client), généralement appelé CRM (pour Customer Relationship Management). Il dispose évidemment des fonctionnalités basiques d’un tel logiciel : - un annuaire, dans lequel on enregistre contacts et sociétés : il peut s’agir de clients, bien sûr, mais aussi de partenaires, prospects, fournisseurs, adhérents, etc. ; - un calendrier pour gérer ses rendez‐vous, appels téléphoniques, conférences, etc. ; chaque utilisateur peut avoir plusieurs calendriers, publics ou privés ; - les opportunités d’affaires, gérant tout l’historique des ventes ; - les actions commerciales, avec leurs objectifs à remplir ; - les documents (fichiers) et les classeurs. Crème CRM dispose en outre de nombreux modules optionnels le rendant très polyvalent : - campagnes de courriels ; - devis, bons de commande, factures et avoirs ; - tickets, génération des rapports et graphiques… L’objectif de Crème CRM est de fournir un logiciel libre de gestion de la relation client pouvant convenir à la plupart des besoins, simples ou complexes. À cet effet, il propose quelques concepts puissants qui se combinent entre eux (entités, relations, filtres, vues, propriétés, blocs), et il est très configurable (bien des problèmes pouvant se résoudre par l’interface de configuration) ; la contrepartie est qu’il faudra sûrement passer quelques minutes dans l’interface de configuration graphique pour avoir quelque chose qui vous convienne vraiment (la configuration par défaut ne pouvant être optimale pour tout le monde). De plus, afin de satisfaire les besoins les plus particuliers, son code est conçu pour être facilement étendu, tel un cadriciel (framework). Du côté de la technique, Crème CRM est codé notamment avec Python/Django et fonctionne avec les bases de données MySQL, SQLite et PostgreSQL. Principales nouveautés de la version 2.2 ======================================== Voici les changements les plus notables de cette version : Côté technique -------------- La version minimale de Python est passée de « 3.5 » à « 3.6 ». Cela ne devrait pas être un problème, cette version était déjà par exemple dans Ubuntu 18.04. Cette version nous a permis de bénéficier des [f-strings](https://docs.python.org/release/3.6.0/whatsnew/3.6.html#pep-498-formatted-string-literals), et une bonne partie du code a été annotée avec des types. Avec la disparition de la gestion de Mercurial par BitBucket, il nous a fallu trouver une solution ; nous sommes passés à Git et GitHub (rien de bien original). Avec la mise en place d’une intégration continue publique, cela permettra d’abaisser la barrière de la contribution. Formulaires personnalisés ------------------------- La (quasi) totalité des formulaires des fiches (entités), pour la création comme la modification, peuvent désormais être personnalisés. Cela signifie que vous pouvez choisir : - quels champs sont présents. Il était déjà possible de cacher globalement des champs, et les champs que vous pouvez enlever des formulaires sont les mêmes que ceux que vous pouvez cacher (c’est-à-dire tous ceux qui ne sont pas obligatoires, la majorité). Mais cela permet de les enlever du formulaire de création, ou de modification (ou des 2) tout en les gardant visibles (pour les modifier depuis la vue détaillée par exemple). - l’ordre des champs. - le groupage des champs ; les champs sont groupés par blocs nommés (« Général », « Coordonnées », « Adresses »…). - l’ordre et la disposition des blocs. Les blocs peuvent prendre toute la largeur de la page, ou bien seulement une des 2 moitiés (ce qui permet de faire 2 colonnes avec des groupes de champs). ![Formulaire personnalisé de création d’activité](http://img.hybird.org/creme/img/creme22/creme22_FR_custom_forms02.png) Les blocs de champs peuvent être ré-ordonnés par glisser-déposer. Les boutons dans l’entête d’un bloc permettent de le modifier (son nom, ses champs), le supprimer, changer sa taille (100% ou 50%) et sa position (droite ou gauche si taille de 50%). De nouveaux blocs peuvent être créés. Notez que l’interface n’est pas [WYSIWYG](https://fr.wikipedia.org/wiki/What_you_see_is_what_you_get) : un bloc est toujours seul sur sa ligne (même s’il ne fait que 50% de la largeur). Mais dans le formulaire généré si vous mélangez dans les blocs de champs de 50% à droite et à gauche ils pourront se retrouver côte à côte. Export des factures & devis amélioré ------------------------------------ Auparavant l’export générait forcément du PDF, et se faisait uniquement via Latex ; or ce dernier est plutôt pénible à installer (sous Windows notamment ; mais même sous Linux avoir tous les paquets nécessaires pour nos documents n’était pas forcément trivial), et pour les gens qui voulaient personnaliser le rendu de leur facture ce n’est pas le langage le plus facile/répandu. Un système de _backend_ a été développé, ainsi que plusieurs _backends_ s’appuyant sur différentes bibliothèques : - `xhtml2pdf`: ce _backend_ est celui par défaut. La bibliothèque `xhtml2pdf` s’installe facilement sur les différents OS, l’écriture des patrons se fait dans un sous-ensemble de HTML plutôt sympathique (même si la mise en page se fait principalement à coup de tableaux, cela reste acceptable dans ce cas de figure) et le rendu est assez joli. - `latex`: il s’agit globalement du code utilisé dans les versions précédentes de Creme (mais être sous la forme d’un _backend_ permet de plus facilement personnaliser son comportement). Ce _backend_ n’est pas proposé/installé de base (pour les raisons exposées plus haut), mais reste disponible. - `weasyprint`: cette bibliothèque de rendu PDF utilise un sous-ensemble de HTML meilleur que celui de `xhtml2pdf`. Mais si elle s’installe facilement sous Linux, c’est plus compliqué sous Windows notamment ; aussi n'est-elle pas proposée de base. Un autre _backend_ est proposé par défaut: XLS. Comme son nom l’indique, il ne génère pas des fichiers PDFs mais des fichiers XLS, et est destiné aux gens qui voudraient faire du publi-postage. ![Exemple de facture avec le backend par défaut](http://img.hybird.org/creme/img/creme22/creme22_FR_billing_export02.png) Améliorations de champs personnalisés ------------------------------------ Les champs personnalisés permettent d’ajouter des champs aux types de fiches existants, sans modifier/étendre le code. Comme ils sont souvent utilisés, plusieurs améliorations ont été intégrées, parmi lesquelles : - 3 nouveaux types de champs sont disponibles: date, texte long & URL. - un champ peut être marqué comme obligatoire (sa valeur devra être remplie lors de la création/modification d’une fiche). - pour les champs proposant une liste de choix (simple ou multiple), des nouveaux choix peuvent être créés à la volée directement depuis les formulaires des fiches. Quelques améliorations en vrac ------------------------------ - Nous avons depuis plusieurs années des blocs affichant des cartes Google Maps pour les fiches Contacts et Sociétés (pour effectuer des trajets commerciaux par exemple). Des blocs correspondants, mais utilisant OpenStreetMap, ont été ajoutés. - Chaque utilisateur peut fixer la langue utilisée par l’interface ; par défaut c’est la langue demandée par le navigateur qui est utilisée (comme avant). - Le calendrier utilise la bibliothèque JavaScript `Fullcalendar` ; la version a été passée de « 1.6.7 » à « 3.10 ». - Il est désormais possible d’exporter la configuration (blocs, boutons, formulaires…) d’une instance de Creme et de l’importer dans une autre. C’est utile pour réutiliser la configuration d’un serveur de test/prototype dans un serveur de production. - Il est possible de limiter un graphe aux fiches appartenant à l’utilisateur courant. Le futur ======== La version 2.3 de Creme utilisera Django 3.2 (à l’heure où ces lignes sont écrites, la version de développement utilise déjà Django 3.1), et bénéficiera notamment d’améliorations dans les formulaires.