Skip to content

#1440 [Perf] add: saturne_select_users() with per-request cached user list#1441

Merged
nicolas-eoxia merged 1 commit into
Evarisk:developfrom
nicolas-eoxia:feat/1440-saturne-select-users
Jul 6, 2026
Merged

#1440 [Perf] add: saturne_select_users() with per-request cached user list#1441
nicolas-eoxia merged 1 commit into
Evarisk:developfrom
nicolas-eoxia:feat/1440-saturne-select-users

Conversation

@nicolas-eoxia

Copy link
Copy Markdown
Contributor

Closes #1440

Problème

Form::select_dolusers() réexécute sa requête « liste des utilisateurs » à chaque appel. Une page avec beaucoup de sélecteurs utilisateur relance la même requête des dizaines de fois.

Solution

saturne_select_users($htmlName, $selected, $showEmpty, $morecss) dans lib/saturne_functions.lib.php :

  • liste récupérée une fois par requête via select_dolusers(..., outputmode=1) (mise en static) ;
  • rendu de chaque <select> via selectarray(), nom + classes CSS conservés (sélecteurs JS inchangés), select2 préservé.

Vérification

Premier usage sur la liste des risques Digirisk (PR digirisk associée à #4888) : requête select_dolusers 18 → 1. Sélecteur vérifié en live (Playwright) : 63 utilisateurs, combo select2, présélection correcte, aucune régression.

Réutilisable par tous les modules Saturne.

🤖 Generated with Claude Code

…ed user list

Form::select_dolusers() runs its user-list query on every call. Add a helper
that fetches the list once per request (select_dolusers outputmode=1) and
renders each dropdown with selectarray(), keeping the same name/css so JS
selectors still match. Lets pages with many user dropdowns avoid the N queries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@nicolas-eoxia nicolas-eoxia merged commit 507dbad into Evarisk:develop Jul 6, 2026
1 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant