by GuieA_7,Benoît Sibaud,Ysabeau 🧶 from Linuxfr.org
Le 7 avril 2026 est sortie la version 2.8 du logiciel de gestion de la relation client Crème CRM (sous licence AGPL-3.0).
Au programme notamment, de nombreuses améliorations autour des droits, l’épinglage de fiches et des totaux calculés dans les vues en liste. Les nouveautés sont détaillées dans la suite de la dépêche.
Crème CRM est un logiciel de 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.8
Voici les changements les plus notables de cette version :
Meilleure synchronisation avec les sorties de Django
C’est une version plus petite qu’à l’accoutumée (Creme 2.7 est sortie le 2 septembre 2025 et nous sortons une version par an). Cela nous permet de nous caler enfin sur les cycles de sortie de Django (dont les versions LTS—gérée pendant 3 ans—sortent en avril une fois tous les 2 ans) et donc éviter d’avoir des périodes où une version de Crème CRM est encore gérée mais pas la version de Django sous-jacente.
Améliorations des droits
Les utilisateurs peuvent avoir plusieurs rôles. Il arrive que des personnes aient plusieurs casquettes, et finissent par posséder plusieurs utilisateurs, se connectant avec le bon utilisateur en fonction des tâches à effectuer. Mais c’est un peu contraignant de devoir à chaque fois se déconnecter puis se reconnecter (et ça peut aussi être gênant d’avoir plusieurs utilisateurs pour une seule identité). Un utilisateur peut désormais posséder plusieurs rôles, et peut passer de l’un à l’autre sans devoir se déconnecter. Voir ce lien pour plus de détails.
Les rôles peuvent désormais être désactivés. De manière générale, on essaie d’ajouter, au fur et à mesure des versions, la possibilité pour les différents objets que les utilisateurs peuvent supprimer de pouvoir d’abord passer par un état “désactivé”. Cela permet de tester un certain temps si un objet ne manque pas au final ; s’il y a un souci on peut revenir en arrière. C’est donc au tour des rôles d’avoir une telle fonctionnalité.
Les rôles gèrent maintenant les types de fiches qu’on peut lister, et 2 permissions spéciales peuvent être données : administration des utilisateurs & des rôles (il fallait être super-utilisateur pour les administrer dans les versions précédentes).
Épinglage de fiche
Vous pouvez désormais épingler les fiches auxquelles vous accédez souvent, pour aller dans leur vue détaillée.
Vous pouvez accéder aux dernières fiches épinglées dans l’entrée de menu « Accès rapide » ; cette entrée remplace l’entrée qui proposait uniquement les fiches visitées récemment, et propose ces dernières ainsi que les fiches épinglées :
Totaux calculés dans les vues en liste
Certaines colonnes de vue en liste affichent désormais des totaux calculés sur toutes les fiches de cette liste :
la somme et la moyenne des totaux (avec et sans TVA) des Factures/Devis/Avoirs/Bons de commande.
la somme et la moyenne des chiffres d’affaires estimé & final des opportunités d’affaire.
Amélioration des champs personnalisés
Les champs personnalisés (les champs de fiches ajoutés par les utilisateurs) peuvent posséder :
– une description ; celle-ci est utilisée notamment dans les formulaires afin de donner plus de détails aux utilisateurs sur le sens dudit champ.
– une valeur par défaut, utilisée à la création de nouvelles fiches ; voir ce lien pour plus de détails.
Quelques autres améliorations notables
L’éditeur de texte HTML (utilisé pour les corps HTML d’e-mail par exemple) a subi une grosse mise-à-jour (l’interface est bien plus légère et moderne maintenant), et est utilisé à plus d’endroits.
On peut désormais télécharger plusieurs Documents, Factures ou Devis en une fois sous forme d’archive zip.
Le futur
La prochaine version devrait être la 3.0, et se concentrera sur une grosse revisite de l’interface graphique. À l’année prochaine !
Le fichier se place dans ~/.emacs.d/init.el. La première fois qu’emacs démarre il télécharge tous les paquets décrits dans la config, donc le premier démarrage est long, c’est normal.
Maintenant pour qu’eglot puisse trouver zuban, pour que flycheck puisse trouver pylint, et pour que blacken-mode puisse trouver black le mieux c’est … un venv !
Et pour que le venv du projet soit chargé automatiquement par emacs j’utilise direnv, ça fait double usage : mes venv sont aussi activés automatiquement dans le shell !
Pour configurer direnv il faut un fichier .envrc à la racine du projet qui contient :
VIRTUAL_ENV=.venv
layout python3
Si c’est votre première utilisation de direnv il faut rajouter eval "$(direnv hook bash)" dans ~/.bashrc.
Il vous fera executer direnv allow pour l’autoriser à bosser, et hop, le venv est crée tout seul, et activé automatiquement par bash et emacs.
Faites-vous un alias ou une commande nommé venv pour gagner du temps sur la création de ce .envrc.
Il faut installer deux-trois trucs dans le venv :
pip install --upgrade zuban black mypy pylint
puis démarrer emacs :
emacs test.py
Pour ceux qui n’ont jamais lancé emacs avant, tapez Ctrl-h puis t, ça vous ouvrira le tuto interactif.
Ohhh, et j’ai configuré blacken-mode pour ne passer black à la sauvegarde que s’il trouve [tool.black] dans pyproject.toml, ça m’évite d’avoir emacs qui réecrit des fichiers dans des projets qui n’utilisent pas black, c’est la ligne blacken-only-if-project-is-blackened dans la config.
Quelques raccourcis importants :
M-. : c’est pour aller a la définition de quelque chose.
M-x eglot-rename pour renommer une variable (et toutes ses occurrences).
C-c ! n pour sauter a la prochaine erreur.
Ma configuration complète est ici : https://git.afpy.org/mdk/dotfiles/src/branch/main/.emacs.d/init.el, elle est plus longue : j’enlève les menus, le message d’accueil, la décoration de la fenêtre, j’ajoute du confort, et j’ai de la configuration C, rust, org-mode, je configure emacs en mode serveur (et j’utilise emacsclient), etc…
On a lsusb, lspci, lscpu… mais rien pour les écrans ou les GPUs.
Pour savoir quel écran est branché sur quelle sortie, c'est la danse du xrandr | grep connected, cat /sys/class/drm/card*/edid | edid-decode, nvidia-smi…
J'ai écrit deux outils pour régler ça.
lsdisplay
Liste les écrans connectés avec fabricant, modèle, numéro de série,
résolution, fréquence, diagonale, et dessine un schéma ASCII du layout :
Je cherche une alternative à mathlab simulink pour la mise au point d'algorithmes de contrôle et la modélisation de systèmes.
Après quelques essais (scilab xcos, modelica, octave …), c'est python qui a retenu mon attention et en particulier les notebook Jupyter et la bibliothèque control.
Ça fait quelques jours que je fais un essai sur la modélisation d'une régulation pour un générateur de courant mais certaines subtilités m'échappe.
En particulier, lorsque je veux modifier un paramètre dans une "cellule code" et la rejouer. Si cette dernière contient une courbe générer avec matplotlib, soit la courbe ne s'affiche pas, ou bien pas correctement, ou toutes les autres courbes s'en retrouve modifiées…
Matplotlib propose bien des exemples d'utilisation, mais comme mes essais, ils ne semblent fonctionner que si l'on exécute le "notebook" une seule fois.
Question:
L'utilisation de Jupyter notebook est-elle réservée à la documentation final du processus et non aux essais ? Ou bien je passe à côté de quelque chose ?
Je débute en programmation et je me suis heurté a une incompréhension sur la correction d’un exercice :
nombres = input("tapez votre suite de nombre séparé par des virgule")
liste = nombres.split(",")
liste_entier = []
for nombre in liste:
nombre_entier = int(nombre)
liste_entier.append(nombre_entier)
print("liste: ", liste_entier)
somme = 0
for nombre in liste_entier:
somme += nombre
print("somme : ", somme)
moyenne = somme / len(liste_entier)
print("moyenne: ", moyenne)
nombre_superieur_moyenne = 0
for nombre in liste_entier:
if nombre > moyenne:
nombre_superieur_moyenne += 1
print("nombre suprieur: ", nombre_superieur_moyenne)
Ca peut paraitre évident pour certain mais je ne comprend pas pourquoi, à la ligne 4 ( for nombre in liste:) il y a ce “nombre” qui sort de nul part , alors que ma variable plus haut est “nombres”. J’ai cherché, pensant que “nombre” était peut être déjà connu par le logiciel, mais je ne trouve rien a ce sujet.
Je n’arrive pas à passer outre cette incompréhension, et cella me retarde dans mon apprentissage, si une personne avais l’amabilité de prendre un petit peu de son temps pour m’expliquer cela j’en serait comblé. Merci d’avance et je vous souhaite une agréable journée
Django Ninja : votre API nette et sans bavure ? - par Quentin Caron (profil LinkedIn), lead dev Python et expert technique chez Néosoft
Vous aimez Django mais vous avez préféré un autre framework pour écrire votre API ? Ce retour d’expérience sur Django Ninja vous fera peut-être changer d’avis. Après un tour d’horizon des frameworks web API Python permettant de planter le décor, découvrez les caractéristiques du framework, les difficultés rencontrées en 10 semaines d’utilisation et les contournements possibles pour devenir un véritable ninja des APIs.
Comparaison de 4 orchestrateurs de workflows open-source : airflow, argo, temporal.io, windmill par Jesshuan Diné (profil LinkedIn), ingénieur data et IA chez Crédit Mutuel Arkéa
Nos métiers intègrent de plus en plus de traitements d’ingestion et de remaniement de la donnée. J’ai eu besoin de faire un benchmark pour comparer différents frameworks d’orchestration open-source qui répondaient à mes besoins. Après une brève présentation des candidats et de leur différence de paradigmes, je vous présenterai la méthodologie que j’ai suivi pour les comparer (notamment concernant la performance de l’infrastructure) et les résultats.
Au menu :
une infra kubernetes
des workflows CPU-intensifs
une stack d’observabilité
Merci à Néosoft Rennes pour l’accueil du meetup
Publication à relayer sur les réseaux si vous le souhaitez :