URL: https://linuxfr.org/news/sortie-de-creme-crm-en-version-1-7 Title: Sortie de CrĂšme CRM en version 1.7 Authors: GuieA_7 Davy Defaud, palm123, bubarđŠ„, Nils Ratusznik, Florent Zara et ZeroHeure Date: 2018ćčŽ02æ26æ„T19:13:13+01:00 License: CC By-SA Tags: cremecrm, gestion_relation_clients, postgresql, python, django et crm Score: 22 Le 12 fĂ©vrier 2018 est sortie la version 1.7 du logiciel de gestion de la relation client CrĂšme CRM, un peu plus de deux ans aprĂšs la version 1.6 (15 janvier 2016).  Si cette version a pris plus longtemps Ă sortir que les versions prĂ©cĂ©dentes, câest heureusement justifiĂ© par le nombre des amĂ©liorations. Les nouveautĂ©s sont dĂ©taillĂ©es dans la suite de la dĂ©pĂȘche. ---- [Site officiel](https://cremecrm.com/) [Le dĂ©pĂŽt de la version 1.7](https://bitbucket.org/hybird/creme_crm-1.7) [DĂ©mo en ligne](https://demos.cremecrm.com/) ---- 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 1.7 ======================================== Voici les changements les plus notables de cette version : AmĂ©lioration de lâinterface --------------------------- Lâinterface a Ă©tĂ© largement amĂ©liorĂ©e et câest ce qui pris le plus de temps de dĂ©veloppement. ### Le menu principal Le menu principal a Ă©tĂ© complĂštement revu afin dâĂȘtre plus pratique et plus compact que le prĂ©cĂ©dent. Lâancien menu Ă©tait sur le cĂŽtĂ© de la page, il pouvait se rĂ©tracter ou rester affichĂ©. Il prenait beaucoup de place et, au fil des annĂ©es, lâorganisation des diffĂ©rentes entrĂ©es par module (« app » dans le jargon Django) a montrĂ© ses limites, dans le sens oĂč elle Ă©tait assez obscure pour les utilisateurs [finals](https://fr.wiktionary.org/wiki/finals). Le nouveau menu est horizontal et il est placĂ© en haut de la page, les sousâmenus se dĂ©roulent verticalement, comme dans un menu classique. Il est affichĂ© en permanence (il ne se rĂ©tracte pas) mais, comme tout le haut de la page a Ă©tĂ© revu, la place occupĂ©e est bien moindre par rapport au vieux menu, ce qui laisse plus de place aux donnĂ©es des utilisateurs.  Sur la droite du menu, on trouve le nouveau panneau de recherche globale. Ce panneau nâa pas seulement Ă©tĂ© dĂ©placĂ© : lorsquâon tape du texte dans cette entrĂ©e, des rĂ©sultats nous sont proposĂ©s en temps rĂ©el. Ces rĂ©sultats correspondent aux types de fiches les plus importants ; dans les nombreux cas de recherches peu ambiguĂ«s, cela permettra dâavoir trĂšs rapidement un rĂ©sultat pertinent :  Plus de dĂ©tails dans ce [billet](http://www.cremecrm.com/forum/viewtopic.php?f=14&t=664) sur le forum officiel. ### Les blocs Les blocs sont un des composants importants de CrĂšme, puisquâils constituent la majeure partie de lâaffichage des fiches. Leur amĂ©lioration a donc bĂ©nĂ©ficiĂ© Ă quasiment toute lâapplication (au prix certes de beaucoup de travail). Ils ont Ă©tĂ© retravaillĂ©s afin dâĂȘtre plus beaux, mais aussi plus compacts, tout en Ă©tant plus lisibles.  Un nouveau type de bloc fait son apparition sur certains types de fiche (_Contact_, _SociĂ©tĂ©_ et _OpportunitĂ©s_, pour le moment). Il affiche un rĂ©sumĂ© des informations importantes et permet donc dâavoir rapidement un aperçu sur une fiche.  Plus de dĂ©tails dans ce [billet](http://www.cremecrm.com/forum/viewtopic.php?f=14&t=665) sur le forum officiel. ### Autres amĂ©liorations notables - les vues en listes (ex : vue de liste de tous contacts) sont plus belles, mais sont aussi plus pratiques : lâenâtĂȘte suit dĂ©sormais le dĂ©filement de la page (on voit donc le nom des colonnes mĂȘme lorsquâon est en bas dâune longue liste) ; - la page de connexion et les pages dâerreurs ont Ă©tĂ© amĂ©liorĂ©es visuellement et ne dĂ©pendent plus du thĂšme utilisĂ© ; - dans la configuration gĂ©nĂ©rale, beaucoup de formulaires sont maintenant des _wizards_ (formulaires avec plusieurs Ă©tapes), pour ĂȘtre soit plus digestes, soit pour fusionner deux formulaires prĂ©cĂ©dents ; - le pied de page est plus joli et affiche plus dâinformations ; - une page _Ă propos_ a Ă©tĂ© ajoutĂ©e. SystĂšme de jobs --------------- Le but de ce nouveau systĂšme est dâexĂ©cuter des processus en parallĂšle du serveur Web. Cela va permettre de gommer certaines limitations quâavait CrĂšme CRM jusquâici : - certaines fonctionnalitĂ©s (ex : envoi de campagnes de courriels) nĂ©cessitaient de lancer rĂ©guliĂšrement des commandes (typiquement avec `cron`) ; cela posait plusieurs soucis : il fallait crĂ©er ces scripts `cron` (sous Windows câest encore plus pĂ©nible), les supprimer le jour ou lâ_app_ correspondante est dĂ©sinstallĂ©e, il nâĂ©tait pas possible de faire des actions qui sâexĂ©cutent Ă un moment exact dĂ©pendant de donnĂ©es utilisateur (ex : Ă©chĂ©ance d'une alerte), etc. ; - Certaines actions longues (ex : importation dâun fichier CSV) Ă©taient effectuĂ©es dans le processus serveur, du coup cela pouvait provoquer des problĂšmes de dĂ©lai dâexpiration, il fallait laisser la page Web ouverte le temps que lâaction se finisse ; de plus, il nây avait rien qui permettait de reprendre une action interrompue (en cas de coupure de courant par exemple) ou dâafficher un rĂ©sultat complet de ce qui a Ă©tĂ© fait (ex : la page de rĂ©sultat de lâimportation CSV Ă©tait volatile, elle Ă©tait perdue dĂšs quâon fermait la page). Le systĂšme de _jobs_ est basĂ© sur un gestionnaire de _jobs_ (un processus qui tourne Ă cĂŽtĂ© du serveur Web), qui va lancer des processus gĂ©rant les fonctionnalitĂ©s dĂ©crites ciâdessus. Comme le gestionnaire communique avec la partie serveur Web (actuellement via Redis, mais on pourrait facilement ajouter dâautres systĂšmes de queue Ă lâavenir si le besoin se prĂ©sentait), il peut recalculer les Ă©chĂ©ances des _jobs_ sâexĂ©cutant de maniĂšre rĂ©currente (comme pour les envois de courriels). Comme chaque _job_ est associĂ© Ă un objet en base de donnĂ©es (ainsi que ses rĂ©sultats), il est possible dâafficher des rĂ©sultats lorsque le _job_ est fini, ainsi que reprendre une exĂ©cution interrompue ; cela permet aussi de crĂ©er la configuration des _jobs_ dâune _app_ lorsquâon lâinstalle (et Ă lâinverse de la supprimer lors dâune dĂ©sinstallation). Voici la page des _jobs_ que peut voir un superâutilisateur :  Si vous importez un fichier CSV ou XLS, lorsque vous validez le formulaire, vous vous retrouvez sur la page dĂ©taillĂ©e du _job_ nouvellement créé. Une barre de progression indique au fur et Ă mesure le nombre de fiches importĂ©es. Ă la fin de lâimportation, les rĂ©sultats sont affichĂ©s et permettent de voir les lignes du fichier qui ont provoquĂ© des erreurs. Cerise sur le gĂąteau, ces erreurs peuvent ĂȘtre tĂ©lĂ©chargĂ©es sous forme dâun fichier au mĂȘme format que le fichier initial mais avec une colonne supplĂ©mentaire pour les erreurs.  AmĂ©lioration des performances ----------------------------- Les performances avec de grands nombres de fiches dans les vues en liste devraient ĂȘtre meilleures, Ă©videmment cela dĂ©pend de vos usages et vos retours sont apprĂ©ciĂ©s. Quelques exemples de ce qui a Ă©tĂ© fait : - certaines requĂȘtes de comptages ont Ă©tĂ© réécrites pour ne pas utiliser de `JOIN` ; - des index ont Ă©tĂ© ajoutĂ©s pour les cas les cas les plus frĂ©quents ; - un nouveau systĂšme de pagination est utilisĂ© dans les listes lorsquâelles contiennent beaucoup de fiches, il Ă©vite de faire des `OFFSET` (opĂ©ration lourde pour les [[SGBDR]]) tant que possible, la contrepartie Ă©tant quâon ne peut pas aller Ă une page arbitrairement (Ă part la premiĂšre). LâidĂ©e Ă©tant quâaller arbitrairement Ă la page 3 785 est sĂ»rement peu utile (on utilisera plutĂŽt les fonctionnalitĂ©s de recherche et de filtrage). Le futur ======== La version 1.8 sortira dans trĂšs peu de temps, et se concentrera sur le passage Ă Django 1.11. En effet, Django 1.8 sur lequel CrĂšme 1.7 est basĂ© est proche de la fin de son support. Une version 2.0 devrait sortir quelques mois aprĂšs, ce changement de version majeure sera justifiĂ© par le passage Ă Python 3 (enfin !).