Develop#256
Conversation
**🚀 Nouveautés** - [Observabilité] Ajout d'une couche d'observabilité centralisée Flask avec `X-Request-ID`, logs de fin de requête, logs de requêtes lentes et logs SQL lents. - [Erreurs] Mise en place de handlers globaux pour les erreurs SQLAlchemy et les erreurs applicatives avec messages HTML plus explicites et traces corrélées par `request_id`. - [Utilisateurs] Passage de `/users/list` en pagination, tri et recherche côté serveur tout en conservant la route et l'écran fonctionnel existants. - [Organismes] Passage de `/organisms/list` en pagination, tri et recherche côté serveur tout en conservant la route et l'écran fonctionnel existants. - [Groupes] Passage de `/group/members/<id_groupe>` en pagination serveur pour les membres disponibles et sélectionnés. - [Listes] Passage de `/list/members/<id_liste>` en pagination serveur pour les membres disponibles et sélectionnés. - [Utilisateurs] Ajout d'un filtre activable `Tous / Actifs / Inactifs` sur la liste des utilisateurs, avec valeur par défaut `Tous`. - [Formulaire utilisateur] Remplacement du sélecteur d'organisme par une autocomplétion distante sur `user/add` et `user/update`. - [Formulaire utilisateur] Remplacement du sélecteur de groupes par une liste de cases à cocher plus lisible, avec tri alphabétique des groupes. - [API] Ajout d'une route d'autocomplétion pour les organismes utilisée par le formulaire utilisateur. - [Fiches] Affichage générique des champs additionnels dans les fiches utilisateur et organisme, y compris pour des structures variables et imbriquées. **🐛 Corrections** - [Fiches utilisateur] Correction des accès fragiles aux champs additionnels, notamment lorsque `champs_addi` est absent, vide ou partiellement renseigné. - [Fiches organisme] Ajout d'un affichage optionnel des champs additionnels liés aux organismes, sans dépendre d'une colonne `additional_data` présente sur tous les schémas. - [Membres groupes/listes] Conservation des rôles inactifs dans les écrans d'affectation des groupes et des listes. **🧪 Tests** - Ajout d'un socle de tests d'intégration sur l'application principale UsersHub. - Ajout de tests de non-régression sur le login, la redirection des routes protégées, les contrats utilisés par GeoNature et les listes paginées. - Ajout de tests sur l'observabilité, la présence de `X-Request-ID`, les erreurs SQL capturées, l'autocomplétion organisme, le filtre de statut utilisateur, les champs additionnels et les écrans membres paginés.
prise en compte du patch
|
Bonjour @camillemonchicourt @jacquesfize @bouttier Errors
Champs additionnels
Update User
Mais le changement principal, c'est la vitesse de chargement qui est passé de parfois plusieurs minutes à quelques secondes |
|
OK, merci pour cette contribution conséquente, et pour avoir bien précisé le contexte et l'utilisation d'IA. De nombreux projets open source voient le rythme des contributions augmenter/exploser et les mainteneurs ne peuvent pas suivre le rythme. Car à chaque fois, il faut relire tout le code, le tester, vérifier sa cohérence, qu'il est factorisé et ne va pas trop alourdir la maintenance globale du projet. Mais l'IA peut aussi aider et améliorer certaines choses. En s'appuyant que ce qu'a fait récemment la DINUM (https://www.ouvert.numerique.gouv.fr/actualites/atelier-ia-et-contributions-open-source/), j'ai proposé une première base de guide de contribution dans GeoNature (https://github.com/PnX-SI/GeoNature/pull/4199/changes#diff-b2496e80299b8c3150b1944450bd81c622e04e13d15c411d291db0927d75fd6bR24). Là pour cette PR, il y a beaucoup de choses mélangées, donc je pense que cela va être compliqué et difficile de pouvoir la relire et tester en l'état. Donc c'est très intéressant, merci pour le partage, ce sont des évolutions très utiles et certaines attendues comme la pagination, mais là je ne sais pas si on pourra débloquer le temps nécessaire pour relire et analyser cette grosse PR qui regroupe plusieurs sujets, sans les distinguer. Dans tous les cas, ça alimente aussi le débat sur les contributions et confirme qu'il faut qu'on clarifie des choses sur la manière de contribuer, comme commencé au niveau de GeoNature. Merci ! |
|
Merci @camillemonchicourt pour le retour. Je comprends tout à fait les problématiques, et effectivement la contrib est assez massive. Pour le test, voilà a quoi ressemblerait la PR template Checklist
Utilisation de l'IAIgnorez les cases à cocher ci-dessous 👇 si vous n'avez pas utilisé d'IA pour votre contribution.
|
|
OK trop bien. Pour la PR, je ne sais pas si et quand on pourra la relire, tester et intégrer en l'état, d'autant que UsersHub est en fin de vie. Et pour les sujets plus globaux sur la contribution, l'IA, etc... Ça amène de la matière qu'on discutera certainement aux prochaines rencontres GeoNature. Merci. |





Bonjour,
J'ai fait des modifications sur usershub que je mets a dispo.
Nous avons atteint les +20k comptes avec l'intégration des données/comptes de faune-france.
La pagination était nécessaire pour rendre l'application utilisable chez nous et les collègues ont menacés d'abandonner l'outil car chaque chargement/modification demandait plusieurs minutes et tapait des timeout, désormais ça prend a peine quelques secondes.
J'en ai profité pour répondre aux demandes des collègues et améliorer 2/3 trucs en reprenant les bonnes idées présentes dans les PR.
En intégrant/modifiant le travail de :
#241
#185
(merci pour le travail)
Le dev a été fait en bonne partie avec codex et ça tourne en prod depuis 1 mois sans soucis
Aucune route essentielle n'a été modifiée, ce sont les mm lib, j'ai essayé de faire le moins de changements de fond possible mais quand même pas mal de petites améliorations qui était obligatoire pour mon install.
En espérant que ça serve
🚀 Nouveautés
X-Request-ID, logs de fin de requête, logs de requêtes lentes et logs SQL lents.request_id./users/listen pagination, tri et recherche côté serveur tout en conservant la route et l'écran fonctionnel existants./organisms/listen pagination, tri et recherche côté serveur tout en conservant la route et l'écran fonctionnel existants./group/members/<id_groupe>en pagination serveur pour les membres disponibles et sélectionnés./list/members/<id_liste>en pagination serveur pour les membres disponibles et sélectionnés.Tous / Actifs / Inactifssur la liste des utilisateurs, avec valeur par défautTous.user/addetuser/update.🐛 Corrections
champs_addiest absent, vide ou partiellement renseigné.additional_dataprésente sur tous les schémas.🧪 Tests
X-Request-ID, les erreurs SQL capturées, l'autocomplétion organisme, le filtre de statut utilisateur, les champs additionnels et les écrans membres paginés.