Skip to main content

Demandes de prêt : chargement à la demande par type puis par agence, au lieu de tout charger d'un coup

Équipe Digitalisation UTB
Frontend, Backend & Backoffice

La page backoffice "Demandes de prêt" chargeait systématiquement l'intégralité des dossiers du périmètre de l'utilisateur en un seul appel, puis regroupait et filtrait tout côté client en mémoire. Elle affiche désormais uniquement des compteurs au chargement, et ne va chercher une liste réelle qu'au clic sur un type de prêt puis, si nécessaire, une agence.

Pourquoi

Sans conséquence visible avec le faible volume de données actuel, cette approche ne tient pas à l'échelle : charger l'intégralité des demandes de prêt à chaque ouverture de la page devient coûteux dès que le nombre de dossiers grandit. L'interface elle-même (des dossiers "Prêt Immobilier — 0 demande(s)" etc. tous dépliés en même temps) était aussi peu lisible.

Ce qui change

  • Nouvel endpoint GET /api/loan-requests/counts : renvoie uniquement des compteurs par type de prêt (et, pour chaque type, par agence) — jamais les dossiers eux-mêmes. C'est ce qui peuple les boutons "Prêt Scolaire — 1 demande(s)" etc. sans coût de chargement.
  • GET /api/loan-requests accepte désormais ?loan_type= et ?id_agence= (optionnels), appelé uniquement au clic. Le filtre id_agence est revérifié côté serveur — impossible d'obtenir les dossiers d'une agence hors de son périmètre en modifiant les paramètres de la requête.
  • Une seule agence concernée par un type ? Aucune étape intermédiaire : la liste se charge directement au clic sur le type. C'est systématiquement le cas pour un agent/chef d'agence (une seule agence possible), et parfois aussi pour un chef de zone ou un super admin si un type donné n'a de dossiers que dans une seule agence.
  • Chaque liste chargée est mise en cache — revenir sur un type/agence déjà consulté ne redéclenche pas d'appel réseau.
  • Recherche et filtre de statut limités à ce qui est déjà affiché à l'écran, plus de recherche globale cross-type/cross-agence (décision assumée, pas une limitation technique).
  • Le bouton "Statut" a été retiré des cartes de la liste — changer le statut d'un dossier n'est désormais possible que depuis sa fiche détail, pour éviter une action à fort impact accessible en un clic depuis une vue de survol.

Page de doc

Liste des demandes de prêt — détaille le format de réponse de /counts, le piège d'ordre des routes Express évité (/counts déclarée avant /:id), et la dépendance directe sur le filtrage par agence/zone.