diff --git a/docs/FAQ.md b/docs/FAQ.md
index c2c78f5c1..5382b65fa 100644
--- a/docs/FAQ.md
+++ b/docs/FAQ.md
@@ -119,6 +119,16 @@ Les ECTS sont attribués (ou pas) au moment de la saisie de la décision de jury
sur les UEs. Avant le jury, l'étudiant n'a jamais d'ECTS, quelles que soient ses
notes.
+### Comment identifier les ECTS ?
+
+Les ECTS sont toujours liés aux Unités d'Enseignement (UE). Toute validation
+d'UE apporte à l'étudiant son quota d'ECTS. Cette quantité est définie dans le
+programme de la formation.
+
+Les UEs peuvent être validées par le jury d'un semestre: le compte est affiché
+sur une colonne à droite du tableau **Jury / Voir les décisions de jury**.
+
+
### L'étudiant n'est pas diplômé
@@ -126,6 +136,17 @@ Vérifiez qu'il a bien obtenu tous ces ECTS.
Si ce n'est pas le cas, vérifiez qu'il a bien validé toutes les UEs de son
parcours de formation (BUT), ou un nombre suffisant de celles ci.
+### Comment voir toutes les validations de jury d'un étudiant ?
+
+Dans certains cas, on souhaite vérifier tout le détail des validations de jury
+enregistrées pour un étudiant. Pour cela, aller sur sa fiche et suivre le lien
+*Éditer toutes décisions de jury*. Vous aurez le détail de tous les éléments
+validés (UE, RCUEs du BUT, semestres des formations LMD, années du BUT, ...) et
+pourrez même les supprimer une à une (si vous disposez des droits d'accès nécessaires.)
+
+Voir aussi [guide du responsable de formation](GuideAdminFormation.md#jurys)
+et [les jurys de BUT](BUTJurys.md).
+
## Administration système
### Mes données sont erronées, que faire ?
diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md
index e229f9496..d5dcf19b6 100644
--- a/docs/ScoDoc9API.md
+++ b/docs/ScoDoc9API.md
@@ -1341,7 +1341,7 @@ utilisateur pourra être associé à un ou plusieurs rôles dans chaque départe
(ainsi, il ou elle peut enseigner dans un département et être administrateur
d'un autre).
-#### **roles**
+#### **list-roles**
* **Méthode:** GET
* **Permission: `UsersView`**
@@ -1350,7 +1350,7 @@ d'un autre).
* **Résultat:** Liste de tous les rôles.
* **Exemple de résultat:** [roles.json](samples/sample_roles.json.md)
-#### **role**
+#### **list-role**
* **Méthode:** GET
* **Permission: `UsersView`**
@@ -1359,7 +1359,7 @@ d'un autre).
* **Résultat:** Liste le rôle indiqué. 404 si inexistant.
* **Exemple de résultat:** [role.json](samples/sample_role.json.md)
-#### **role-add_permission**
+#### **role-permission-add**
* **Méthode: POST**
* **Permission: `ScoSuperAdmin`**
@@ -1369,7 +1369,7 @@ d'un autre).
Note: la liste des permissions est donnée sur [ConfigPermissions](ConfigPermissions.md).
* **Exemple de résultat:** [role-add_permission.json](samples/sample_role-add_permission.json.md)
-#### **role-remove_permission**
+#### **role-permission-remove**
* **Méthode: POST**
* **Permission: `ScoSuperAdmin`**
@@ -1416,7 +1416,7 @@ d'un autre).
### **API User, Permissions**
-#### **user**
+#### **user-info**
* **Méthode:** GET
* **Permission: `UsersView`**
@@ -1448,7 +1448,7 @@ d'un autre).
si est "super-administrateur".
* **Exemple de résultat:** [user-create.json](samples/sample_user-create.json.md)
-#### **`users-query`**
+#### **`users-info-query`**
* **Méthode:** GET
* **Permission: `UsersView`**
@@ -1521,7 +1521,7 @@ d'un autre).
* **Résultat:** Retire le rôle à l'utilisateur.
* **Exemple de résultat:** [user-role-remove.json](samples/sample_user-role-remove.json.md)
-#### **`permissions`**
+#### **`list-permissions`**
* **Méthode:** GET
* **Permission: `UsersView`**
diff --git a/docs/img/API_Chart.svg b/docs/img/API_Chart.svg
index a6c558bf7..93c17ea53 100644
--- a/docs/img/API_Chart.svg
+++ b/docs/img/API_Chart.svg
@@ -1,2 +1,2 @@
-/ ScoDoc / api / tokens ? assiduite / <int:assiduite_id> / justificatifs / long ? edit ? ? ine / <ine> / create ? nip / <nip> / create ? etudid / <int:etudid> / create ? <int:etudid> / create ? delete ? assiduites / ine / <ine> / count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & ? evaluations ? nip / <nip> / count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & ? evaluations ? etudid / <int:etudid> / count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & ? evaluations ? <int:etudid> / count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & ? evaluations ? group / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & ? formsemestre / <int:formsemestre_id> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & ? count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? create ? edit ? evaluation / <int:evaluation_id> / assiduites ? notes / set ? ? delete ? billets_absence / etudiant / <int:etudid> ? create ? <int:billet_id> / delete ? departements ? departements_ids ? departement / <string:acronym> / edit ? delete ? etudiants ? formsemestres_ids ? formsemestres_courants ? date_courante = <string:date_courante> ? ? id / <int:dept_id> / etudiants ? formsemestres_ids ? formsemestres_courants ? date_courante = <string:date_courante> ? logos ? logo / <string:logoname> ? ? create ? <string:departement> / logos ? logo / <string:logoname> ? etudiants / courants / long ? date_courante = <string:date_courante> ? ine / <string:ine> ? nip / <string:nip> ? etudid / <int:etudid> ? name / <string:start> ? etudiant / ine / <string:ine> / photo ? size = <string:size> ? formsemestres ? ? nip / <string:nip> / photo ? size = <string:size> ? formsemestres ? ? etudid / <int:etudid> / photo ? size = <string:size> ? formsemestres ? formsemestre / <int:formsemestre_id> / groups ? ? <string:code_type> / <string:code> / formsemestre / <int:formsemestre_id> / bulletin / <string:version> / pdf / nosig ? edit ? annotation / <int:annotation_id> / delete ? ? create / force ? <int:etudid> / jury / validation_ue / <int:validation_id> / delete ? validation_formsemestre / <int:validation_id> / delete ? autorisation_inscription / <int:validation_id> / delete ? validation_rcue / record ? <int:validation_id> / delete ? validation_annee_but / <int:validation_id> / delete ? moduleimpl / <int:moduleimpl_id> / evaluations ? evaluation / create ? inscriptions ? notes ? formations ? formations_ids ? formation / <int:formation_id> / export_with_ids ? export ? referentiel_competences ? ? ue / <int:ue_id> / set_parcours ? assoc_niveau / <int:niveau_id> ? desassoc_niveau ? set_code_apogee / <string:code_apogee> ? ? set_code_apogee_rcue / <string:code_apogee> ? ? edit ? set_code_apogee ? module / <int:module_id> / set_code_apogee / <string:code_apogee> ? ? edit ? ? set_code_apogee ? formsemestre / <int:formsemestre_id> / edit ? bulletins / <string:version> ? programme ? etudiants / long / query ? etat = <string:etat> ? query ? etat = <string:etat> ? etat_evals ? resultats ? format = <string:format> ? get_groups_auto_assignment ? save_groups_auto_assignment ? edt ? group_ids = <string:group_ids> & show_modules_titles = <bool:show_modules_titles> & ? decisions_jury ? partitions / order ? ? partition / create ? ? apo / set_etapes ? set_elt_sem ? set_elt_annee ? set_elt_passage ? formsemestres / query ? etape_apo = <string:etape_apo> & annee_scolaire = <string:annee_scolaire> & dept_acronym = <string:dept_acronym> & dept_id = <int:dept_id> & etat = <int:etat> & nip = <string:nip> & ine = <string:ine> & ? justificatif / <int:justif_id> / edit ? import ? export / <filename> ? remove ? list ? justifies ? ? ine / <ine> / create ? nip / <nip> / create ? etudid / <int:etudid> / create ? <int:etudid> / create ? delete ? justificatifs / ine / <ine> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? nip / <nip> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? etudid / <int:etudid> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? <int:etudid> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? dept / <int:dept_id> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? formsemestre / <int:formsemestre_id> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? logos ? logo / <string:logoname> ? partition / <int:partition_id> / remove_etudiant / <int:etudid> ? group / create ? groups / order ? edit ? delete ? ? group / <int:group_id> / etudiants / query ? etat = <string:etat> ? ? set_etudiant / <int:etudid> ? remove_etudiant / <int:etudid> ? delete ? edit ? set_edt_id / <string:edt_id> ? user / <int:uid> / edit ? password ? role / <string:role_name> / add / departement / <string:dept> ? remove / departement / <string:dept> ? ? create ? users / query ? active = <bool:active> & departement = <string:departement> & starts_with = <string:starts_with> & ? permissions ? role / <string:role_name> / add_permission / <string:perm_name> ? remove_permission / <string:perm_name> ? edit ? delete ? ? create / <string:role_name> ? roles ?
\ No newline at end of file
+/ ScoDoc / api / tokens ? assiduite / <int:assiduite_id> / justificatifs / long ? edit ? ? ine / <ine> / create ? nip / <nip> / create ? etudid / <int:etudid> / create ? <int:etudid> / create ? delete ? assiduites / ine / <ine> / count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & ? evaluations ? nip / <nip> / count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & ? evaluations ? etudid / <int:etudid> / count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & ? evaluations ? <int:etudid> / count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & ? evaluations ? group / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & ? formsemestre / <int:formsemestre_id> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & ? count / query ? user_id = <int:user_id> & est_just = <bool:est_just> & moduleimpl_id = <int:moduleimpl_id> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & formsemestre_id = <int:formsemestre_id> & metric = <array[string]:metric> & split = <bool:split> & ? create ? edit ? evaluation / <int:evaluation_id> / assiduites ? notes / set ? ? delete ? billets_absence / etudiant / <int:etudid> ? create ? <int:billet_id> / delete ? departements ? departements_ids ? departement / <string:acronym> / edit ? delete ? etudiants ? formsemestres_ids ? formsemestres_courants ? date_courante = <string:date_courante> ? ? id / <int:dept_id> / etudiants ? formsemestres_ids ? formsemestres_courants ? date_courante = <string:date_courante> ? logos ? logo / <string:logoname> ? ? create ? <string:departement> / logos ? logo / <string:logoname> ? etudiants / courants / long ? date_courante = <string:date_courante> ? ine / <string:ine> ? nip / <string:nip> ? etudid / <int:etudid> ? name / <string:start> ? etudiant / ine / <string:ine> / photo ? size = <string:size> ? formsemestres ? ? nip / <string:nip> / photo ? size = <string:size> ? formsemestres ? ? etudid / <int:etudid> / photo ? size = <string:size> ? formsemestres ? formsemestre / <int:formsemestre_id> / groups ? ? <string:code_type> / <string:code> / formsemestre / <int:formsemestre_id> / bulletin / <string:version> / pdf / nosig ? edit ? annotation / <int:annotation_id> / delete ? ? create / force ? <int:etudid> / jury / validation_ue / <int:validation_id> / delete ? validation_formsemestre / <int:validation_id> / delete ? autorisation_inscription / <int:validation_id> / delete ? validation_rcue / record ? <int:validation_id> / delete ? validation_annee_but / <int:validation_id> / delete ? validation_dut120 / <int:validation_id> / delete ? moduleimpl / <int:moduleimpl_id> / evaluations ? evaluation / create ? inscriptions ? notes ? formations ? formations_ids ? formation / <int:formation_id> / export_with_ids ? export ? referentiel_competences ? ? ue / <int:ue_id> / set_parcours ? assoc_niveau / <int:niveau_id> ? desassoc_niveau ? set_code_apogee / <string:code_apogee> ? ? set_code_apogee_rcue / <string:code_apogee> ? ? edit ? set_code_apogee ? module / <int:module_id> / set_code_apogee / <string:code_apogee> ? ? edit ? ? set_code_apogee ? formsemestre / <int:formsemestre_id> / edit ? bulletins / <string:version> ? programme ? etudiants / long / query ? etat = <string:etat> ? query ? etat = <string:etat> ? etat_evals ? resultats ? format = <string:format> ? get_groups_auto_assignment ? save_groups_auto_assignment ? edt ? group_ids = <string:group_ids> & show_modules_titles = <bool:show_modules_titles> & ? decisions_jury ? partitions / order ? ? partition / create ? ? apo / set_etapes ? set_elt_sem ? set_elt_annee ? set_elt_passage ? formsemestres / query ? etape_apo = <string:etape_apo> & annee_scolaire = <string:annee_scolaire> & dept_acronym = <string:dept_acronym> & dept_id = <int:dept_id> & etat = <int:etat> & nip = <string:nip> & ine = <string:ine> & ? justificatif / <int:justif_id> / edit ? import ? export / <filename> ? remove ? list ? justifies ? ? ine / <ine> / create ? nip / <nip> / create ? etudid / <int:etudid> / create ? <int:etudid> / create ? delete ? justificatifs / ine / <ine> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? nip / <nip> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? etudid / <int:etudid> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? <int:etudid> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? dept / <int:dept_id> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? formsemestre / <int:formsemestre_id> / query ? user_id = <int:user_id> & est_just = <bool:est_just> & date_debut = <string:date_debut_iso> & date_fin = <string:date_fin_iso> & etat = <array[string]:etat> & order = <bool:order> & courant = <bool:courant> & group_id = <int:group_id> & ? logos ? logo / <string:logoname> ? partition / <int:partition_id> / remove_etudiant / <int:etudid> ? group / create ? groups / order ? edit ? delete ? ? group / <int:group_id> / etudiants / query ? etat = <string:etat> ? ? set_etudiant / <int:etudid> ? remove_etudiant / <int:etudid> ? delete ? edit ? set_edt_id / <string:edt_id> ? user / <int:uid> / edit ? password ? role / <string:role_name> / add / departement / <string:dept> ? remove / departement / <string:dept> ? ? create ? users / query ? active = <bool:active> & departement = <string:departement> & starts_with = <string:starts_with> & ? permissions ? role / <string:role_name> / add_permission / <string:perm_name> ? remove_permission / <string:perm_name> ? edit ? delete ? ? create / <string:role_name> ? roles ?
\ No newline at end of file