URL: https://linuxfr.org/news/sortie-de-creme-crm-en-version-2-0 Title: Sortie de CrĂšme CRM en version 2.0 Authors: GuieA_7 bubarđŠ„, Davy Defaud, Florent Zara, palm123 et Pierre Jarillon Date: 2019ćčŽ04æ03æ„T17:08:35+02:00 License: CC By-SA Tags: crm, cremecrm, gestion_relation_clients, postgresql, python et django Score: 21 Le 11 janvier 2019 est sortie la version 2.0 du logiciel de gestion de la relation client CrĂšme CRM, la prĂ©cĂ©dente version Ă©tant la 1.8 (sortie le 24 mai 2018).  Au programme, principalement le passage Ă Python 3. 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 la version 2.0 ](https://bitbucket.org/hybird/creme_crm-2.0) ---- 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 et 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.0 ======================================== Voici les changements les plus notables de cette version : Passage Ă Python 3 ------------------ CrĂšme 1.8 fonctionne avec Python 2.7, et la version de Django utilisĂ©e est la 1.11, derniĂšre version Ă gĂ©rer Ă la fois Python 2 et Python 3. CrĂšme 2.0 reste sur Django 1.11, mais utilise dĂ©sormais Python 3.5 (et supĂ©rieur, Ă©videmment). Ce changement majeur justifie le passage au numĂ©ro de version 2.0. Le passage Ă Python se sera fait attendre (comme il nâapporte rien de visible aux utilisateurs, on trouve toujours des fonctionnalitĂ©s plus prioritaires Ă faire...). Mais au final, il sâest avĂ©rĂ© plutĂŽt facile dans les faits, grĂące : - au travail des dĂ©veloppeurs Django qui ont pris sur eux de faire le code un peu moche nĂ©cessaire pour ĂȘtre compatible Python 2 et Python 3 ; - au travail dans les versions prĂ©cĂ©dentes de CrĂšme pour utiliser les fonctionnalitĂ©s de Python 3 retroâportĂ©es dans Python 2.7 ; - une bonne couverture par les tests unitaires. AprĂšs avoir Ă©tudiĂ© les journaux des modifications des diffĂ©rentes versions de Python 3 (3.0 â 3.5), il nâaura fallu que quelques heures pour que les 100 000 lignes veuillent bien globalement fonctionner (en dĂ©sactivant un module dissident). Puis, une dizaine de jours pour que lâensemble des tests unitaires sâexĂ©cutent sans aucune erreur. Une bonne chose de faite ! Les vues basĂ©es sur des classes ------------------------------- Câest aussi une modification sous le capot. Dans Django, une vue est le code, rattachĂ© Ă un motif dâURL, qui va gĂ©rer une requĂȘte HTTP et renvoyer une rĂ©ponse HTTP (qui contient typiquement du HTML, parfois du JSON, etc.). Historiquement, les vues Ă©taient des fonctions Python, mais depuis quelques annĂ©es ces vues peuvent ĂȘtres Ă©crites sous la forme de classes. Ă cause de son Ăąge de crĂ©ation, le code de CrĂšme utilisait quasiâexclusivement les vues sous forme de fonctions. Dans CrĂšme 2.0, une grande partie des vues ont Ă©tĂ© converties pour ĂȘtre des classes, avec les motivations suivantes : - CrĂšme est conçu de maniĂšre Ă avoir un cĆur qui fait la majoritĂ© du travail le plus pĂ©nible, et des _apps_ (nomenclature qui dĂ©signe des modules pour Django) qui vont introduire chacune de nouveaux types dâentitĂ©s ; on va donc retrouver des vues trĂšs similaires dans les diffĂ©rentes apps, les vues basĂ©es sur des classes permettent une bien meilleure factorisation que les vues sous forme de fonctions ; - un des objectifs de CrĂšme est de fournir une base facilement adaptable Ă des besoins spĂ©cifiques ; si elles sont bien Ă©crites, les vues basĂ©es sur des classes peuvent facilement ĂȘtre Ă©tendues, et mĂȘme modifiĂ©es depuis du code externe (par exemple, en stockant nombre de paramĂštres en tant quâattributs de classe plutĂŽt que de valeurs en dur dans le code). Les anciennes vues gĂ©nĂ©riques sont marquĂ©es comme obsolĂštes et seront supprimĂ©es dans CrĂšme 2.1 . Les dĂ©veloppeurs sont donc encouragĂ©s Ă utiliser les nouvelles vues gĂ©nĂ©riques utilisant des classes. Les actions dans les listes amĂ©liorĂ©es -------------------------------------- Dans les vues en listes des entitĂ©s (ou « fiches »), il est possible dâeffectuer des actions (modifier, supprimer...) ; ces actions se font soit sur une seule fiche, soit sur plusieurs Ă la fois. Le code des actions a Ă©tĂ© amĂ©liorĂ©, apportant des fonctionnalitĂ©s nouvelles aux dĂ©veloppeurs. Mais ses amĂ©liorations profitent aussi aux utilisateurs. Lâinterface des actions multiples a Ă©tĂ© amĂ©liorĂ©e ; on voit ici que si aucune fiche nâest sĂ©lectionnĂ©e, alors les entrĂ©es du menu action sont dĂ©sactivĂ©es (et un message dâaide vous indique de sĂ©lectionner au moins une fiche) :  De nouvelles actions, qui jusquâĂ prĂ©sent nâĂ©taient accessibles que depuis les vues dĂ©taillĂ©es, sont disponibles : - le clonage de fiches ; - le tĂ©lĂ©chargement sous forme de fichiers PDF des factures et devis ; - le tĂ©lĂ©chargement sous forme de fichiers CSV ou XLS des rapports ; - le tĂ©lĂ©chargement des documents ; - les courriels peuvent ĂȘtre envoyĂ©s Ă nouveau, courriel par courriel, ou bien plusieurs Ă la fois.  Le futur -------- Django 2.2 vient de sortir, câest la nouvelle version avec support Ă long terme (LTS) et elle sera utilisĂ©e dans CrĂšme 2.1. Nous avons parlĂ© des vues basĂ©es sur des classes auâdessus, il se trouve que les vues de listes utilisent encore des fonctions, mais avec CrĂšme 2.1 elles utiliseront elles aussi des classes. Ce changement permettra lâintroduction dâautres amĂ©liorations attendues depuis longtemps dans les listes.