Skip to main content

Module de retour Client

Conception

Installation

1 - Ajouter le package dans les requirements

2 - Ajouter dans votre .env :

=> Pour la préprod/Prod :

#====================================== RETOUR CLIENT =======================================
EMAIL_CLIENT_RETOUR='test@test.fr'
SIREN_CLIENT='1245648'
LUCY_PROJET_TOKEN='dejodaejiodeaz'   # Jeton d'appairage généré par Lucy (fiche projet > Intégrations)
DATE_MISE_EN_PRODUCTION='2024-12-30'
DATE_FIN_GARANTIE='2024-12-30'

# Assistant IA - serveur vLLM Revolucy (optionnel)
IA_API_KEY='xxxxx'

# Intégration OpenHands - traitement auto des tickets + création de MR (optionnel)
OPENHANDS_FEATURE=True
OPENHANDS_API_KEY='xxxxx'                            # → en-tête X-Session-API-Key
OPENHANDS_MODE='manuel'   # 'auto' (envoi au save / passage en non résolu) ou 'manuel'

3 - Ajouter dans votre fichier settings.py :

INSTALLED_APPS = [
    'retour_client',
]
'context_processors': [
    'retour_client.context_processors.formulaire_retour_client',
]
########### Configuration RETOUR CLIENT.
EMAIL_CLIENT_RETOUR = env('EMAIL_CLIENT_RETOUR')
SIREN_CLIENT = env('SIREN_CLIENT')
LUCY_PROJET_TOKEN = env('LUCY_PROJET_TOKEN')
DATE_MISE_EN_PRODUCTION = env('DATE_MISE_EN_PRODUCTION')
DATE_FIN_GARANTIE = env('DATE_FIN_GARANTIE')

# Configuration Assistant IA (optionnel - pour le chatbot IA)
IA_API_KEY = env('IA_API_KEY', default=None)
IA_API_URL = 'https://api.revolucy.link/v1'  # Serveur vLLM Revolucy (défaut)
IA_MODEL = 'qwen3.6'  # Modèle par défaut

# Configuration OpenHands (optionnel - traitement auto des tickets + création de MR)
OPENHANDS_FEATURE = env.bool('OPENHANDS_FEATURE', default=False)
OPENHANDS_API_URL = env('OPENHANDS_API_URL', default='https://openhands.revolucy.link')
OPENHANDS_API_KEY = env('OPENHANDS_API_KEY', default=None)
OPENHANDS_AGENT_PROFILE_ID = env('OPENHANDS_AGENT_PROFILE_ID', default=None)
OPENHANDS_MODE = env('OPENHANDS_MODE', default='manuel')

À quoi sert LUCY_PROJET_TOKEN ? Jeton d'appairage du projet, généré par Lucy dans la configuration du projet (fiche projet > Intégrations). Il sert à deux choses :

  1. Authentifier les API du module côté Lucy (api/lucy/*) : le dashboard Lucy doit présenter ce jeton pour lire les données des tickets (repli transitoire sur SIREN_CLIENT tant que le jeton n'est pas configuré).
  2. Récupérer le token GitLab du projet depuis Lucy : le token GitLab utilisé par OpenHands est stocké chiffré dans la fiche projet Lucy et récupéré à la volée (cache 10 min). Il n'y a donc plus de secret GitLab à poser dans les settings de chaque déploiement (l'ancien OPENHANDS_GITLAB_TOKEN est supprimé).

4 - Ajouter dans votre fichier urls.py :

 path('retour-client/', include("retour_client.urls")),

5 - Ajouter dans le footer.html de votre base :

<!-- AJOUT POPUP RETOUR CLIENT -->
{% include 'retour_client.html' %}

6 - Ajouter un cron :

Journalier 09h00 sur le serveur pour envoi des mails en préprod

Commande : envoi_mail_retour_client_preprod

Mensuel 09h00 le premier jour du mois sur le serveur pour envoi des mails

Commande : envoi_mail_tickets_en_attente

Licence

Revolucy

Versionning

  • V1.0.0 | Création du module de retour
  • V1.0.1 | Modification des versions des requirements
  • V1.0.2 | Correction bug correspondance Python 3.9
  • V1.0.3 | Correction bug buttons admin
  • V1.0.4 | Correction bug date
  • V1.0.5 | Correction bug
  • V1.0.6 | Ajout d'un cockpit de gestion statistique
  • V1.0.7 | Amélioration CSS
  • V1.1.0 | Intégration de l'IA Claude pour aide à la rédaction et analyse des tickets via un chatbot
  • V1.1.4 | Correction bug
  • V1.1.5 | Ajout utilisateurs Is Staff sur l'accès au module en production
  • V1.1.6 | Correction bug
  • V1.1.7 | Correction bug Python > 3.11 pour capture d'écran
  • V1.1.8 | Correction bug Python > 3.11 pour capture d'écran
  • V1.1.9 | Amélioration d'affichage
  • V1.3.1 | Amélioration d'affichage
  • V1.3.2 | Ajout du temps facturé sur les stats
  • V1.3.4 | Ajout du temps facturé sur les stats
  • V1.3.5 | Ajout de la commande envoi_mail_tickets_en_attente
  • V1.3.6 | Correction des chemins de templates mails
  • V1.3.7 | Correction des filtres des retours à traiter
  • V1.3.8 | Ajout de btn de copie de numéro de ticket
  • V1.4.1 | Ajout de cahier de test en Préproduction
  • V1.4.2 | Ajout API Lucy Projet
  • V1.4.3 | Modification du front
  • V1.4.4 | Correction bug Ancienne Version Python
  • V1.4.5 | Correction du module de capture
  • V1.4.6 | Ajout de l'export Markdown des tickets en attente
  • V1.4.7 | Correction du responsive de la popup retour client
  • V1.5.0 | Pièce jointe image dans la popup, renommage des pièces jointes, rafraîchissement HTMX de la liste, assistant IA basculé sur le serveur vLLM Revolucy
  • V1.5.1 | Intégration OpenHands : envoi des tickets pour traitement automatique et création de MR (API push + serveur MCP retour), envoi auto ou manuel, boutons de relance
  • V1.5.2 | Adaptation à l'API OpenHands V1
  • V1.5.3 | Adaptation à l'API OpenHands V1
  • V1.5.4 | OpenHands : titre de conversation « NOM DU PROJET - Ticket n°XXX », convention de branche TICKET-XX_description, réponse client reprise dans la MR
  • V1.5.5 | Optimisation API Key Lucy Projet : appairage via LUCY_PROJET_TOKEN (authentification API + récupération du token GitLab depuis Lucy)

Fonctionnalités IA (V1.1.0+)

Chatbot Assistant IA

Accessible depuis la page /retour-client/pipeline-retours/ via un bouton fixe sur la droite.

Fonctionnalités :

  • Recherche de tickets par mots-clés, statut, type, priorité
  • Analyse statistique des tickets (tendances, pages problématiques, etc.)
  • Identification de patterns et bugs récurrents
  • Réponses contextuelles basées sur l'historique des tickets
  • Historique des conversations par utilisateur

Cahier de test

Cahier de test quand le projet est en Préproduction permettant au client d'avoir la liste de ce qu'il doit tester et de valider ou non chaque point

Fonctionnalités :

  • Import du cahier de test du dossier de conception et création automatique des "Todos"
  • Liste des tests à réaliser avec la possibilité de les valider ou non
  • Possibilité d'ajouter des scénarios de tests reliés aux tickets

Intégration OpenHand

Branche le module sur un serveur OpenHands (DGX / vLLM) pour que les tickets soient traités automatiquement et donnent lieu à une Merge Request.

Sens du flux

  • Push API (module → OpenHands) : à chaque ticket créé (ou repassé « non résolu »), le module envoie le contexte du ticket — identique à l'export Markdown — à l'API OpenHands qui corrige et ouvre la MR.
  • Chemin retour MCP (OpenHands → module) : OpenHands appelle le serveur MCP pour signaler la prise en charge (le ticket passe En cours), enregistrer l'URL de la MR et poster une réponse au client.

Modes d'envoi (OPENHANDS_MODE)

  • auto : envoi automatique à la création du ticket et au passage en « non résolu ».
  • manuel : envoi uniquement via les boutons (bouton global « OpenHands » à gauche du macaron pour relancer tous les tickets à traiter, et bouton « Envoyer à OpenHands » sur chaque ticket). Réservés aux admins Revolucy.

Serveur MCP (chemin retour)

Dépendance optionnelle (Python 3.10+) :

pip install "module-retour-client-revo[mcp]"

Démarrage (à faire tourner sur le serveur du client, accès réseau restreint) :

python manage.py openhands_mcp_server                                  # stdio
python manage.py openhands_mcp_server --transport sse --host 0.0.0.0 --port 8765

Outils exposés : lister_tickets_a_traiter, get_ticket, marquer_en_traitement (→ statut En cours), enregistrer_mr, poster_reponse.

Flux

PREPROD :

=> Module de retour visible pour tous les utilisateurs

1 - Création d'un ticket par le client :

  • Enregistrement du ticket sur le site
  • 2 Mails (Client / Chef de projet revo) journalier avec liste des tickets en attente de traitement avec les retours via un Batch

PRODUCTION - EN PERIODE DE GARANTIE :

=> Module de retour visible pour les administrateurs et les utilisateurs is_staff seulement => Affichage du compteur de jours restant de garantie

1 - Création d'un ticket par le client :

  • Enregistrement du ticket sur le site
  • 2 Mails (Client / Chef de projet revo) journalier avec liste des tickets en attente de traitement avec les retours via un Batch

PRODUCTION - HORS PERIODE DE GARANTIE :

=> Module de retour visible pour les administrateurs et les utilisateurs is_staff seulement => Affichage du compteur de nombre de crédit ticket restant => Si moins d’1H de crédit : Ajout d'un lien pour prendre un pack de crédit 5H ou 10H, puis création de la facture associée dans Lucy

1 - Création d'un ticket par le client :

  • Enregistrement du ticket sur le site
  • Mail Chef de projet revo à l'ajout du ticket

2 - Réponse par le chef de projet :

  • Indication du nombre d'heure passé
  • Déduction du crédit de temps dans Lucy par API
  • Mail Client à l'ajout d'une réponse au ticket

Lancement du mode test du module de retour

1. Appliquer les migrations (première fois ou après changement de modèles)

python testproject/manage.py makemigrations python testproject/manage.py migrate

2. Créer un superuser si besoin (pour accéder à l'admin)

python testproject/manage.py createsuperuser

3. Lancer le serveur

python testproject/manage.py runserver

Ensuite, accède à :

  • Page de test : http://localhost:8000/
  • Module retour client : http://localhost:8000/retour/
  • Admin Django : http://localhost:8000/admin/

Ce que fait le testproject

C'est un mini-projet Django autonome qui :

  • Utilise SQLite (pas besoin de PostgreSQL)
  • Importe directement le code source de retour_client via sys.path (pas besoin de pip install)
  • Est configuré en environnement "recette" (préprod)
  • Inclut déjà le context processor et les URLs du module

Etapes Déploiement Pypi

pip install build twine
python -m build
python -m twine upload dist/*
Indiquer le token présent dans 1Password

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

module_retour_client_revo-1.5.5.tar.gz (103.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

module_retour_client_revo-1.5.5-py3-none-any.whl (125.5 kB view details)

Uploaded Python 3

File details

Details for the file module_retour_client_revo-1.5.5.tar.gz.

File metadata

File hashes

Hashes for module_retour_client_revo-1.5.5.tar.gz
Algorithm Hash digest
SHA256 2be6fa46cdad22f1d84d234f7cceab3cb1fc9b18d5235e012cd21bd757d5f3c1
MD5 22af579862158ffe8aba748949ce0710
BLAKE2b-256 82adb227d931e1214c5fa9d8c295b6f564ec0613a451072f16e6f0fc10b49aac

See more details on using hashes here.

File details

Details for the file module_retour_client_revo-1.5.5-py3-none-any.whl.

File metadata

File hashes

Hashes for module_retour_client_revo-1.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 591550479bae14f9e00c36b6369452d47c42ce424ee18299b6740fa3b3a72108
MD5 9acd4a1c9003814f0305061c46da5bcf
BLAKE2b-256 62df2a95eb42e44dd6e9552437a69009ffca8339c17f6e4b20b0a5d87ee8311c

See more details on using hashes here.

Release history Release notifications | RSS feed

1.6.0

2 files

1.5.7

2 files

1.5.6

2 files

This release

1.5.5 This release

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.7

2 files

1.4.6

2 files

1.4.5

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.8

2 files

1.3.7

2 files

1.3.6

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.9

2 files

1.2.8

2 files

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.9

2 files

1.1.8

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page