From 7ef0f108b4fde4f94eadbfd8c51266f7fcfe6024 Mon Sep 17 00:00:00 2001 From: Iziram Date: Fri, 29 Mar 2024 16:17:40 +0100 Subject: [PATCH 1/9] =?UTF-8?q?Assiduit=C3=A9=20:=20ajout=20doc=20manquant?= =?UTF-8?q?e=20+=20mise=20=C3=A0=20jour=20samples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ScoDoc9API.md | 103 ++++++++++-- docs/samples/sample_assiduite.json.md | 26 +-- docs/samples/sample_assiduite_create.json.md | 41 +++-- docs/samples/sample_assiduite_delete.json.md | 36 ++-- docs/samples/sample_assiduite_edit.json.md | 34 ++-- docs/samples/sample_assiduites.json.md | 116 +++++++------ docs/samples/sample_assiduites_count.json.md | 78 +++++++-- docs/samples/sample_assiduites_create.json.md | 38 +++++ .../sample_assiduites_formsemestre.json.md | 154 ++++++++++++------ ...mple_assiduites_formsemestre_count.json.md | 24 ++- docs/samples/sample_assiduites_group.json.md | 62 +++++++ .../sample_assiduites_justificatifs.json.md | 32 ++++ docs/samples/sample_justificatif.json.md | 16 +- .../sample_justificatif_create.json.md | 26 +-- .../sample_justificatif_delete.json.md | 36 ++-- docs/samples/sample_justificatif_edit.json.md | 29 ++-- docs/samples/sample_justificatifs.json.md | 117 +++++++++++-- 17 files changed, 701 insertions(+), 267 deletions(-) create mode 100644 docs/samples/sample_assiduites_create.json.md create mode 100644 docs/samples/sample_assiduites_group.json.md create mode 100644 docs/samples/sample_assiduites_justificatifs.json.md diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index 100fb2c73..dcc7daa63 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -1715,10 +1715,15 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. | *user_name* | str ou null | login de l'utilisateur ayant créé l'assiduité | | *est_just* | boolean | l'assiduité est-elle justifiée | | *entry_date* | string | la date d'entrée de l'assiduité | +| *external_data* | objet ou null | un objet décrivant des actions non utilisée par ScoDoc | -> Rappel du format de date ISO : yyyy-mm-jjTHH:MM:SS +> Rappel du format de date ISO : yyyy-mm-ddTHH:MM:SS > Vous pouvez aussi spécifier le temps UTC en ajoutant '+HH:MM' à la fin +!!! warning + Le champs `external_data` est utilisé par ScoDoc pour déterminer les assiduités utilisant n'utilisant pas de module particulier (Tout module / Autre module dans ScoDoc). Il aura alors la forme suivante : `{"module": "Autre"}` + + #### **assiduite** * **Méthode:** GET @@ -1728,6 +1733,20 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * **Exemple d'utilisation:** `/api/assiduite/1` * **Résultat:** Retourne un objet assiduité ou une erreur si l'id n'est pas connu * **Exemple de résultat:** [assiduite.json](samples/sample_assiduite.json.md) +* +#### **assiduite-justificatifs[-long]** + +* **Méthode:** GET +* **Permission: `ScoView`** +* **Paramètres:** `assiduite_id` +* **Routes:** + * `/assiduite//justificatifs` + * `/assiduite//justificatifs/long` +* **Exemple d'utilisation:** + * `/api/assiduite/123/justificatifs` + * `/api/assiduite/123/justificatifs/long` +* **Résultat:** Retourne une liste de justificatifs. des objets en utilisant la route `long` sinon les justif_id +* **Exemple de résultat:** [assiduite-justificatifs.json](samples/sample_assiduite_justificatifs.json.md) #### **assiduites[-query]** @@ -1745,6 +1764,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * `formsemestre_id` (X : id du formsemestre) * `est_just` (v,t,f,vrai,faux,true,false) * `user_id` (X : id de l'utilisateur) + * `order` (retour ordoné par date de début décroisante) + * `courant` (retour restreint à l'année courante) + * `with_justifs` (ajoute un champs "justificatifs" aux assiduités) * **Routes:** * `/assiduites/` * `/assiduites//query?` @@ -1778,6 +1800,8 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * `est_just` (v,t,f,vrai,faux,true,false) * `user_id` (X : id de l'utilisateur) * `metric` ('compte', 'demi', 'journee', 'heure') + * `courant` (retour restreint à l'année courante) + * `split` (compte pour chaque état séparément) * **Routes:** * `/assiduites//count` * `/assiduites//count/query?` @@ -1807,6 +1831,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * `date_fin` (X : date format ISO) * `est_just` (v,t,f,vrai,faux,true,false) * `user_id` (X : id de l'utilisateur) + * `order` (retour ordoné par date de début décroisante) + * `courant` (retour restreint à l'année courante) + * `with_justifs` (ajoute un champs "justificatifs" aux assiduités) * **Routes:** * `/assiduites/formsemestre/` * `/assiduites/formsemestre//query?` @@ -1829,6 +1856,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * `date_fin` (X : date format ISO) * `est_just` (v,t,f,vrai,faux,true,false) * `user_id` (X : id de l'utilisateur) + * `metric` ('all', 'compte', 'heure', 'journee', 'demi') + * `courant` (retour restreint à l'année courante) + * `split` (compte pour chaque état séparément) * **Routes:** * `/assiduites/formsemestre//count` * `/assiduites/formsemestre//count/query?` @@ -1851,6 +1881,9 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * `date_fin` (X : date format ISO) * `est_just` (v,t,f,vrai,faux,true,false) * `user_id` (X : id de l'utilisateur) + * `order` (retour ordoné par date de début décroisante) + * `courant` (retour restreint à l'année courante) + * `with_justifs` (ajoute un champs "justificatifs" aux assiduités) * **Routes:** * `/assiduites/group/query?etudids=` * **Exemple d'utilisation:** @@ -1876,9 +1909,6 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. [ { "etudid":, - - "date_debut": , - "date_fin": , "etat": , "moduleimpl_id"?: , "desc"?:, @@ -1909,8 +1939,6 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. ```json [ { - "date_debut": , - "date_fin": , "etat": , "moduleimpl_id"?: , "desc"?: @@ -1951,9 +1979,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. > `{"etat": "absent"}` -* **Résultat:** Modifie l'assiduité désignée. Renvoie une erreur si la - modification rend incompatible la plage de l'assiduité par rapport aux autres - assiduités du même étudiant. +* **Résultat:** Modifie l'assiduité désignée. * **Exemple de résultat:** [assiduite_edit.json](samples/sample_assiduite_edit.json.md) #### **assiduites-edit** @@ -2041,6 +2067,11 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * `etat` ( attente, valide, non_valide, modifie) * `date_debut` (X : date format ISO) * `date_fin` (X : date format ISO) + * `user_id` (X : l'id de l'utilisateur ayant créé l'objet) + * `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre) + * `order` (retoure les justificatifs par ordre décroissant de date_debut) + * `courant` (restreint aux justificatifs de l'année courante) + * `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant) * **Routes:** * `/justificatifs/` * `/justificatifs//query` @@ -2057,6 +2088,58 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * **Résultat:** Liste de toutes les objets justificatifs qui correspondent aux critères sélectionnés * **Exemple de résultat:** [justificatifs.json](samples/sample_justificatifs.json.md) + +#### **justificatifs-dept[-query]** + +* **Méthode:** GET +* **Permission: `ScoView`** +* **Paramètres:** + * `dept_id` +* **Query string:** + * `etat` ( attente, valide, non_valide, modifie) + * `date_debut` (X : date format ISO) + * `date_fin` (X : date format ISO) + * `user_id` (X : l'id de l'utilisateur ayant créé l'objet) + * `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre) + * `order` (retoure les justificatifs par ordre décroissant de date_debut) + * `courant` (restreint aux justificatifs de l'année courante) + * `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant) +* **Routes:** + * `/justificatifs/dept/` + * `/justificatifs/dept//query` +* **Exemple d'utilisation:** + * `/api/justificatifs/dept/3` + * `/api/justificatifs/dept/3/query?etat=valide&courant` +* **Résultat:** Liste de toutes les objets justificatifs du département donné qui correspondent aux critères sélectionnés +* **Exemple de résultat:** [justificatifs-dept.json](samples/sample_justificatifs_dept.json.md) + + +#### **justificatifs-formsemestre[-query]** + +* **Méthode:** GET +* **Permission: `ScoView`** +* **Paramètres:** + * `formsemestre_id` +* **Query string:** + * `etat` ( attente, valide, non_valide, modifie) + * `date_debut` (X : date format ISO) + * `date_fin` (X : date format ISO) + * `user_id` (X : l'id de l'utilisateur ayant créé l'objet) + * `formsemestre_id` (X: l'id d'un formsemestre. restreint aux date du semestre) + * `order` (retoure les justificatifs par ordre décroissant de date_debut) + * `courant` (restreint aux justificatifs de l'année courante) + * `group_id` (X : id du groupe, restreint aux justificatifs d'un group d'étudiant) +* **Routes:** + * `/justificatifs/formsemestre/` + * `/justificatifs/formsemestre//query` +* **Exemple d'utilisation:** + * `/api/justificatifs/formsemestre/3` + * `/api/justificatifs/formsemestre/3/query?etat=valide&courant` +* **Résultat:** Liste de toutes les objets justificatifs du formsemestre donné qui correspondent aux critères sélectionnés +* **Exemple de résultat:** [justificatifs-formsemestre.json](samples/sample_justificatifs_formsemestre.json.md) + + + #### **justificatif-create** * **Méthode:** POST @@ -2168,7 +2251,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. #### **justificatif-export** * **Méthode:** POST -* **Permission: `AbsChange`** +* **Permission: `ScoView`** * **Paramètres:** * `justif_id` * `filename` diff --git a/docs/samples/sample_assiduite.json.md b/docs/samples/sample_assiduite.json.md index 78cae052b..a2d2c8d2f 100644 --- a/docs/samples/sample_assiduite.json.md +++ b/docs/samples/sample_assiduite.json.md @@ -1,18 +1,22 @@ ### assiduite #### GET /assiduite/1 - ```json { - "assiduite_id": 1, - "date_debut": "2022-09-25T08:00:00+0200", - "date_fin": "2022-09-25T08:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "PRESENT", - "etudid": 1, - "moduleimpl_id": 8, - "user_id": null + "assiduite_id": 1, + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "PRESENT", + "etudid": 1, + "external_data": null, + "moduleimpl_id": 12, + "user_id": null, + "user_name": null, + "user_nom_complet": null } ``` + diff --git a/docs/samples/sample_assiduite_create.json.md b/docs/samples/sample_assiduite_create.json.md index 1c4c89c2d..393a08708 100644 --- a/docs/samples/sample_assiduite_create.json.md +++ b/docs/samples/sample_assiduite_create.json.md @@ -1,21 +1,38 @@ ### assiduite_create #### POST /assiduite/1/create - > `Content-Type: application/json` -> -> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent"}]` +> +> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "absent"}]` ```json { - "errors": [], - "success": [ - { - "indice": 0, - "message": { - "assiduite_id": 60 - } - } - ] + "errors": [ + { + "indice": 0, + "message": "Duplication: la p\u00e9riode rentre en conflit avec une plage enregistr\u00e9e" + } + ], + "success": [] } ``` + +#### POST /assiduite/1/create +> `Content-Type: application/json` +> +> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "absent"}]` + +```json +{ + "errors": [], + "success": [ + { + "indice": 0, + "message": { + "assiduite_id": 49 + } + } + ] +} +``` + diff --git a/docs/samples/sample_assiduite_delete.json.md b/docs/samples/sample_assiduite_delete.json.md index 76764a78a..eb829d9c2 100644 --- a/docs/samples/sample_assiduite_delete.json.md +++ b/docs/samples/sample_assiduite_delete.json.md @@ -1,28 +1,28 @@ ### assiduite_delete #### POST /assiduite/delete - > `Content-Type: application/json` -> +> > `[2,2,3]` ```json { - "errors": [ - { - "indice": 1, - "message": "Assiduite non existante" - } - ], - "success": [ - { - "indice": 0, - "message": "OK" - }, - { - "indice": 2, - "message": "OK" - } - ] + "errors": [ + { + "indice": 1, + "message": "Assiduite non existante" + } + ], + "success": [ + { + "indice": 0, + "message": "OK" + }, + { + "indice": 2, + "message": "OK" + } + ] } ``` + diff --git a/docs/samples/sample_assiduite_edit.json.md b/docs/samples/sample_assiduite_edit.json.md index 007ec64b7..10bde351a 100644 --- a/docs/samples/sample_assiduite_edit.json.md +++ b/docs/samples/sample_assiduite_edit.json.md @@ -1,37 +1,35 @@ ### assiduite_edit #### POST /assiduite/1/edit - > `Content-Type: application/json` -> -> `{"moduleimpl_id":2}` - -```json -{ - "OK": true -} -``` - -#### POST /assiduite/1/edit - -> `Content-Type: application/json` -> +> > `{"etat": "retard","moduleimpl_id":3}` ```json { - "OK": true + "OK": true } ``` #### POST /assiduite/1/edit - > `Content-Type: application/json` -> +> +> `{"moduleimpl_id":2}` + +```json +{ + "OK": true +} +``` + +#### POST /assiduite/1/edit +> `Content-Type: application/json` +> > `{"etat":"absent"}` ```json { - "OK": true + "OK": true } ``` + diff --git a/docs/samples/sample_assiduites.json.md b/docs/samples/sample_assiduites.json.md index 6d148d9f4..13b4bd990 100644 --- a/docs/samples/sample_assiduites.json.md +++ b/docs/samples/sample_assiduites.json.md @@ -1,71 +1,79 @@ ### assiduites #### GET /assiduites/1 - ```json [ - { - "assiduite_id": 1, - "date_debut": "2022-09-25T08:00:00+0200", - "date_fin": "2022-09-25T08:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "PRESENT", - "etudid": 1, - "moduleimpl_id": 8, - "user_id": null - }, - { - "assiduite_id": 2, - "date_debut": "2022-09-26T08:00:00+0200", - "date_fin": "2022-09-26T09:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "RETARD", - "etudid": 1, - "moduleimpl_id": 13, - "user_id": null - }, - "..." + { + "assiduite_id": 1, + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "PRESENT", + "etudid": 1, + "external_data": null, + "moduleimpl_id": 12, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." ] ``` #### GET /assiduites/1/query?etat=retard - ```json [ - { - "assiduite_id": 2, - "date_debut": "2022-09-26T08:00:00+0200", - "date_fin": "2022-09-26T09:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "RETARD", - "etudid": 1, - "moduleimpl_id": 13, - "user_id": null - }, - { - "assiduite_id": 3, - "date_debut": "2022-09-27T08:00:00+0200", - "date_fin": "2022-09-27T10:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "RETARD", - "etudid": 1, - "moduleimpl_id": 14, - "user_id": null - }, - "..." + "..." ] ``` #### GET /assiduites/1/query?moduleimpl_id=1 - ```json -["..."] +[ + "..." +] ``` + +#### GET /assiduites/1/query?with_justifs= +```json +[ + { + "assiduite_id": 1, + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "PRESENT", + "etudid": 1, + "external_data": null, + "justificatifs": [ + { + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "MODIFIE", + "etudid": 1, + "external_data": null, + "fichier": null, + "justif_id": 1, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + } + ], + "moduleimpl_id": 12, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." +] +``` + diff --git a/docs/samples/sample_assiduites_count.json.md b/docs/samples/sample_assiduites_count.json.md index e02320d9d..204ebee01 100644 --- a/docs/samples/sample_assiduites_count.json.md +++ b/docs/samples/sample_assiduites_count.json.md @@ -1,32 +1,84 @@ ### assiduites_count #### GET /assiduites/1/count - ```json { - "compte": 4, - "demi": 3, - "heure": 6.0, - "journee": 4 + "compte": 1, + "demi": 0, + "heure": 0.0, + "journee": 1 } ``` #### GET /assiduites/1/count/query?etat=present,retard&metric=compte,heure - ```json { - "compte": 4, - "heure": 6.0 + "compte": 1, + "heure": 0.0 } ``` #### GET /assiduites/1/count/query?etat=retard - ```json { - "compte": 3, - "demi": 3, - "heure": 6.0, - "journee": 3 + "compte": 0, + "demi": 0, + "heure": 0, + "journee": 0 } ``` + +#### GET /assiduites/1/count/query?split +```json +{ + "absent": { + "compte": 0, + "demi": 0, + "heure": 0, + "journee": 0, + "justifie": { + "compte": 0, + "demi": 0, + "heure": 0, + "journee": 0 + }, + "non_justifie": { + "compte": 0, + "demi": 0, + "heure": 0, + "journee": 0 + } + }, + "present": { + "compte": 1, + "demi": 0, + "heure": 0.0, + "journee": 1 + }, + "retard": { + "compte": 0, + "demi": 0, + "heure": 0, + "journee": 0, + "justifie": { + "compte": 0, + "demi": 0, + "heure": 0, + "journee": 0 + }, + "non_justifie": { + "compte": 0, + "demi": 0, + "heure": 0, + "journee": 0 + } + }, + "total": { + "compte": 1, + "demi": 0, + "heure": 0.0, + "journee": 1 + } +} +``` + diff --git a/docs/samples/sample_assiduites_create.json.md b/docs/samples/sample_assiduites_create.json.md new file mode 100644 index 000000000..2b663f83d --- /dev/null +++ b/docs/samples/sample_assiduites_create.json.md @@ -0,0 +1,38 @@ +### assiduites_create + +#### POST /assiduites/create +> `Content-Type: application/json` +> +> `[{"etudid":-1,"date_debut": "2023-10-26T08:00","date_fin": "2023-10-26T10:00","etat": "absent"}]` + +```json +{ + "errors": [ + { + "indice": 0, + "message": "Cet \u00e9tudiant n'existe pas." + } + ], + "success": [] +} +``` + +#### POST /assiduites/create +> `Content-Type: application/json` +> +> `[{"etudid":1,"date_debut": "2023-10-26T08:00","date_fin": "2023-10-26T10:00","etat": "absent"}]` + +```json +{ + "errors": [], + "success": [ + { + "indice": 0, + "message": { + "assiduite_id": 50 + } + } + ] +} +``` + diff --git a/docs/samples/sample_assiduites_formsemestre.json.md b/docs/samples/sample_assiduites_formsemestre.json.md index d51e41305..01b2c03b1 100644 --- a/docs/samples/sample_assiduites_formsemestre.json.md +++ b/docs/samples/sample_assiduites_formsemestre.json.md @@ -1,73 +1,119 @@ ### assiduites_formsemestre #### GET /assiduites/formsemestre/1 - ```json [ - { - "assiduite_id": 1, - "date_debut": "2022-09-25T08:00:00+0200", - "date_fin": "2022-09-25T08:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "PRESENT", - "etudid": 1, - "moduleimpl_id": 8, - "user_id": null - }, - { - "assiduite_id": 2, - "date_debut": "2022-09-26T08:00:00+0200", - "date_fin": "2022-09-26T09:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "RETARD", - "etudid": 1, - "moduleimpl_id": 13, - "user_id": null - }, - "..." + { + "assiduite_id": 1, + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "PRESENT", + "etudid": 1, + "external_data": null, + "moduleimpl_id": 12, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + { + "assiduite_id": 2, + "code_nip": "NIP2", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "RETARD", + "etudid": 2, + "external_data": null, + "moduleimpl_id": 4, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." ] ``` #### GET /assiduites/formsemestre/1/query?etat=retard - ```json [ - { - "assiduite_id": 2, - "date_debut": "2022-09-26T08:00:00+0200", - "date_fin": "2022-09-26T09:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "RETARD", - "etudid": 1, - "moduleimpl_id": 13, - "user_id": null - }, - "..." + { + "assiduite_id": 2, + "code_nip": "NIP2", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "RETARD", + "etudid": 2, + "external_data": null, + "moduleimpl_id": 4, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + { + "assiduite_id": 7, + "code_nip": "NIP4", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "RETARD", + "etudid": 4, + "external_data": null, + "moduleimpl_id": 6, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." ] ``` #### GET /assiduites/formsemestre/1/query?moduleimpl_id=1 - ```json [ - { - "assiduite_id": 3, - "date_debut": "2022-09-27T08:00:00+0200", - "date_fin": "2022-09-27T08:00:00+0200", - "desc": null, - "entry_date": "2023-07-28T11:13:45+0200", - "est_just": false, - "etat": "PRESENT", - "etudid": 1, - "moduleimpl_id": 1, - "user_id": null - }, - "..." + { + "assiduite_id": 27, + "code_nip": "NIP10", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "PRESENT", + "etudid": 10, + "external_data": null, + "moduleimpl_id": 1, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + { + "assiduite_id": 43, + "code_nip": "NIP14", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "RETARD", + "etudid": 14, + "external_data": null, + "moduleimpl_id": 1, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." ] ``` + diff --git a/docs/samples/sample_assiduites_formsemestre_count.json.md b/docs/samples/sample_assiduites_formsemestre_count.json.md index 5e139064d..c1ce3308e 100644 --- a/docs/samples/sample_assiduites_formsemestre_count.json.md +++ b/docs/samples/sample_assiduites_formsemestre_count.json.md @@ -1,32 +1,30 @@ ### assiduites_formsemestre_count #### GET /assiduites/formsemestre/1/count - ```json { - "compte": 0, - "demi": 0, - "heure": 0.0, - "journee": 0 + "compte": 48, + "demi": 14, + "heure": 65.0, + "journee": 18 } ``` #### GET /assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure - ```json { - "compte": 0, - "heure": 0.0 + "compte": 29, + "heure": 35.0 } ``` #### GET /assiduites/formsemestre/1/count/query?etat=retard - ```json { - "compte": 0, - "demi": 0, - "heure": 0.0, - "journee": 0 + "compte": 14, + "demi": 8, + "heure": 19.0, + "journee": 11 } ``` + diff --git a/docs/samples/sample_assiduites_group.json.md b/docs/samples/sample_assiduites_group.json.md new file mode 100644 index 000000000..38143f5a7 --- /dev/null +++ b/docs/samples/sample_assiduites_group.json.md @@ -0,0 +1,62 @@ +### assiduites_group + +#### GET /assiduites/group/query?etudids=1,2,3 +```json +{ + "1": [ + { + "assiduite_id": 1, + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "PRESENT", + "etudid": 1, + "external_data": null, + "moduleimpl_id": 12, + "user_id": null, + "user_name": null, + "user_nom_complet": null + } + ], + "2": [ + { + "assiduite_id": 2, + "code_nip": "NIP2", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "RETARD", + "etudid": 2, + "external_data": null, + "moduleimpl_id": 4, + "user_id": null, + "user_name": null, + "user_nom_complet": null + } + ], + "3": [ + { + "assiduite_id": 3, + "code_nip": "3", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "desc": null, + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "est_just": false, + "etat": "PRESENT", + "etudid": 3, + "external_data": null, + "moduleimpl_id": 18, + "user_id": null, + "user_name": null, + "user_nom_complet": null + } + ] +} +``` + diff --git a/docs/samples/sample_assiduites_justificatifs.json.md b/docs/samples/sample_assiduites_justificatifs.json.md new file mode 100644 index 000000000..16b83c970 --- /dev/null +++ b/docs/samples/sample_assiduites_justificatifs.json.md @@ -0,0 +1,32 @@ +### assiduites_justificatifs + +#### GET /assiduite/1/justificatifs +```json +[ + 1, + "..." +] +``` + +#### GET /assiduite/1/justificatifs/long +```json +[ + { + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "MODIFIE", + "etudid": 1, + "external_data": null, + "fichier": null, + "justif_id": 1, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." +] +``` + diff --git a/docs/samples/sample_justificatif.json.md b/docs/samples/sample_justificatif.json.md index 249fb6bc5..c7bb71654 100644 --- a/docs/samples/sample_justificatif.json.md +++ b/docs/samples/sample_justificatif.json.md @@ -3,15 +3,19 @@ #### GET /justificatif/1 ```json { - "date_debut": "2022-09-25T08:00:00+0200", - "date_fin": "2022-09-25T16:00:00+0200", - "entry_date": "2023-07-28T11:13:45+0200", - "etat": "VALIDE", + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "MODIFIE", "etudid": 1, + "external_data": null, "fichier": null, "justif_id": 1, - "raison": "raison", - "user_id": null + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null } ``` diff --git a/docs/samples/sample_justificatif_create.json.md b/docs/samples/sample_justificatif_create.json.md index b748642ed..87f6bfc7f 100644 --- a/docs/samples/sample_justificatif_create.json.md +++ b/docs/samples/sample_justificatif_create.json.md @@ -1,22 +1,22 @@ ### justificatif_create #### POST /justificatif/1/create - > `Content-Type: application/json` -> -> `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "attente"}]` +> +> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "attente"}]` ```json { - "errors": [], - "success": [ - { - "indice": 0, - "message": { - "couverture": [], - "justif_id": 12 - } - } - ] + "errors": [], + "success": [ + { + "indice": 0, + "message": { + "couverture": [], + "justif_id": 25 + } + } + ] } ``` + diff --git a/docs/samples/sample_justificatif_delete.json.md b/docs/samples/sample_justificatif_delete.json.md index 06c4e3230..bfdbde407 100644 --- a/docs/samples/sample_justificatif_delete.json.md +++ b/docs/samples/sample_justificatif_delete.json.md @@ -1,28 +1,28 @@ ### justificatif_delete #### POST /justificatif/delete - > `Content-Type: application/json` -> +> > `[2,2,3]` ```json { - "errors": [ - { - "indice": 1, - "message": "Justificatif non existant" - } - ], - "success": [ - { - "indice": 0, - "message": "OK" - }, - { - "indice": 2, - "message": "OK" - } - ] + "errors": [ + { + "indice": 1, + "message": "Justificatif non existant" + } + ], + "success": [ + { + "indice": 0, + "message": "OK" + }, + { + "indice": 2, + "message": "OK" + } + ] } ``` + diff --git a/docs/samples/sample_justificatif_edit.json.md b/docs/samples/sample_justificatif_edit.json.md index 6c14f8b73..656837649 100644 --- a/docs/samples/sample_justificatif_edit.json.md +++ b/docs/samples/sample_justificatif_edit.json.md @@ -1,31 +1,36 @@ ### justificatif_edit #### POST /justificatif/1/edit - > `Content-Type: application/json` -> +> > `{"etat":"valide"}` ```json { - "couverture": { - "apr\u00e8s": [26], - "avant": [1, 26, 38] - } + "couverture": { + "apres": [ + 1 + ], + "avant": [] + } } ``` #### POST /justificatif/1/edit - > `Content-Type: application/json` -> +> > `{"raison":"MEDIC"}` ```json { - "couverture": { - "apr\u00e8s": [26], - "avant": [1, 26, 38] - } + "couverture": { + "apres": [ + 1 + ], + "avant": [ + 1 + ] + } } ``` + diff --git a/docs/samples/sample_justificatifs.json.md b/docs/samples/sample_justificatifs.json.md index b81078818..bedea3e79 100644 --- a/docs/samples/sample_justificatifs.json.md +++ b/docs/samples/sample_justificatifs.json.md @@ -1,26 +1,113 @@ ### justificatifs #### GET /justificatifs/1 - ```json [ - { - "date_debut": "2022-09-25T08:00:00+0200", - "date_fin": "2022-09-25T16:00:00+0200", - "entry_date": "2023-07-28T11:13:45+0200", - "etat": "VALIDE", - "etudid": 1, - "fichier": null, - "justif_id": 1, - "raison": "raison", - "user_id": null - }, - "..." + { + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "MODIFIE", + "etudid": 1, + "external_data": null, + "fichier": null, + "justif_id": 1, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." ] ``` #### GET /justificatifs/1/query?etat=attente - ```json -["..."] +[ + "..." +] ``` + +#### GET /justificatifs/dept/1 +```json +[ + { + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "MODIFIE", + "etudid": 1, + "external_data": null, + "fichier": null, + "formsemestre": { + "id": 1, + "title": "TAPI-BUT-FI-S1-2021" + }, + "justif_id": 1, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + { + "code_nip": "NIP2", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "NON_VALIDE", + "etudid": 2, + "external_data": null, + "fichier": null, + "formsemestre": { + "id": 1, + "title": "TAPI-BUT-FI-S1-2021" + }, + "justif_id": 2, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." +] +``` + +#### GET /justificatifs/formsemestre/1 +```json +[ + { + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "MODIFIE", + "etudid": 1, + "external_data": null, + "fichier": null, + "justif_id": 1, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + { + "code_nip": "NIP2", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "NON_VALIDE", + "etudid": 2, + "external_data": null, + "fichier": null, + "justif_id": 2, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." +] +``` + From 58e3ee950056918646909298cd8ceadf04a53c9d Mon Sep 17 00:00:00 2001 From: Iziram Date: Fri, 29 Mar 2024 16:37:43 +0100 Subject: [PATCH 2/9] =?UTF-8?q?Assiduit=C3=A9=20:=20Docs=20:=20erratum=20+?= =?UTF-8?q?=20oublie=20samples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ScoDoc9API.md | 27 ++++++----- ...=> sample_assiduite_justificatifs.json.md} | 2 +- .../samples/sample_justificatifs_dept.json.md | 47 +++++++++++++++++++ .../sample_justificatifs_formsemestre.json.md | 39 +++++++++++++++ 4 files changed, 102 insertions(+), 13 deletions(-) rename docs/samples/{sample_assiduites_justificatifs.json.md => sample_assiduite_justificatifs.json.md} (95%) create mode 100644 docs/samples/sample_justificatifs_dept.json.md create mode 100644 docs/samples/sample_justificatifs_formsemestre.json.md diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index dcc7daa63..b910e6880 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -1898,6 +1898,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. etudid3 : [{assiduité...}], } ``` +* **Exemple de résultat:** [assiduites-group.json](samples/sample_assiduites_group.json.md) #### **assiduites-create** @@ -1924,6 +1925,7 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. > `[{"date_debut": "2022-10-27T08:00","date_fin": "2022-10-27T10:00","etat": "absent","etudid":1}]` * **Résultat:** Retourne un objet en deux parties (errors et success) contenant le retour de chaque objet donné dans la requête POST. +* **Exemple de résultat:** [assiduites-create.json](samples/sample_assiduites_create.json.md) #### **assiduite-create** @@ -2032,18 +2034,19 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. #### Structure Justificatif -| attribut | type | commentaire | -| :----------- | :------------- | :------------------------------------------------------------ | -| *justif_id* | int | identifiant unique | -| *etudid* | int | identifiant unique de l'étudiant concerné par le justificatif | -| *date_debut* | string | date ISO du début de la période du justificatif | -| *date_fin* | string | date ISO de la fin de la période du justificatif | -| *etat* | string | état du justificatif ( attente, valide, non_valide, modifie) | -| *raison* | string ou null | explication du justificatif si présente | -| *fichier* | string | identifiant de l'archivage des fichiers | -| *user_id* | int or null | id de l'utilisateur ayant créé le justificatif | -| *user_name* | str ou null | login de l'utilisateur ayant créé le justificatif | -| *entry_date* | string | date ISO de l'entrée du justificatif | +| attribut | type | commentaire | +| :-------------- | :------------- | :------------------------------------------------------------ | +| *justif_id* | int | identifiant unique | +| *etudid* | int | identifiant unique de l'étudiant concerné par le justificatif | +| *date_debut* | string | date ISO du début de la période du justificatif | +| *date_fin* | string | date ISO de la fin de la période du justificatif | +| *etat* | string | état du justificatif ( attente, valide, non_valide, modifie) | +| *raison* | string ou null | explication du justificatif si présente | +| *fichier* | string | identifiant de l'archivage des fichiers | +| *user_id* | int or null | id de l'utilisateur ayant créé le justificatif | +| *user_name* | str ou null | login de l'utilisateur ayant créé le justificatif | +| *entry_date* | string | date ISO de l'entrée du justificatif | +| *external_data* | objet ou null | un objet décrivant des actions non utilisée par ScoDoc | #### **justificatif** diff --git a/docs/samples/sample_assiduites_justificatifs.json.md b/docs/samples/sample_assiduite_justificatifs.json.md similarity index 95% rename from docs/samples/sample_assiduites_justificatifs.json.md rename to docs/samples/sample_assiduite_justificatifs.json.md index 16b83c970..15532f251 100644 --- a/docs/samples/sample_assiduites_justificatifs.json.md +++ b/docs/samples/sample_assiduite_justificatifs.json.md @@ -1,4 +1,4 @@ -### assiduites_justificatifs +### assiduite_justificatifs #### GET /assiduite/1/justificatifs ```json diff --git a/docs/samples/sample_justificatifs_dept.json.md b/docs/samples/sample_justificatifs_dept.json.md new file mode 100644 index 000000000..a9299c457 --- /dev/null +++ b/docs/samples/sample_justificatifs_dept.json.md @@ -0,0 +1,47 @@ +### justificatifs_dept + +#### GET /justificatifs/dept/1 +```json +[ + { + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "MODIFIE", + "etudid": 1, + "external_data": null, + "fichier": null, + "formsemestre": { + "id": 1, + "title": "TAPI-BUT-FI-S1-2021" + }, + "justif_id": 1, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + { + "code_nip": "NIP2", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "NON_VALIDE", + "etudid": 2, + "external_data": null, + "fichier": null, + "formsemestre": { + "id": 1, + "title": "TAPI-BUT-FI-S1-2021" + }, + "justif_id": 2, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." +] +``` + diff --git a/docs/samples/sample_justificatifs_formsemestre.json.md b/docs/samples/sample_justificatifs_formsemestre.json.md new file mode 100644 index 000000000..72c1a7b5f --- /dev/null +++ b/docs/samples/sample_justificatifs_formsemestre.json.md @@ -0,0 +1,39 @@ +### justificatifs_formsemestre + +#### GET /justificatifs/formsemestre/1 +```json +[ + { + "code_nip": "1", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "MODIFIE", + "etudid": 1, + "external_data": null, + "fichier": null, + "justif_id": 1, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + { + "code_nip": "NIP2", + "date_debut": "2022-08-20T12:00:00.000000+02:00", + "date_fin": "2022-08-20T12:00:00.000000+02:00", + "entry_date": "2022-08-20T12:00:00.000000+02:00", + "etat": "NON_VALIDE", + "etudid": 2, + "external_data": null, + "fichier": null, + "justif_id": 2, + "raison": null, + "user_id": null, + "user_name": null, + "user_nom_complet": null + }, + "..." +] +``` + From 833a35a037274321a705c89f945a602f3ba9d6cc Mon Sep 17 00:00:00 2001 From: viennet Date: Fri, 29 Mar 2024 16:52:20 +0100 Subject: [PATCH 3/9] misc --- docs/BUTJurys.md | 21 +++- docs/Evaluation.md | 29 ++++- docs/NomsPreferences.md | 108 +++++++++--------- docs/TransitionSemestre.md | 96 ++++++++-------- .../sample_formsemestre-resultats.json.md | 4 +- 5 files changed, 153 insertions(+), 105 deletions(-) diff --git a/docs/BUTJurys.md b/docs/BUTJurys.md index dd8a2a267..e564491d1 100644 --- a/docs/BUTJurys.md +++ b/docs/BUTJurys.md @@ -1,3 +1,22 @@ # Les jurys de BUT -Page à rédiger. +!!! warning Travaux en cours + Cette page est en cours de rédaction. + +Le Bachelor Universitaire de Technologie (BUT) institue des règles de +progression et de validation spécifiques dont ScoDoc tient compte. + +## Décisions de jury en BUT + +*décrire sur quoi portent les décisions (UE, ) + +Voir détail des codes [Codes de jurys BUT](BUTCodesJury.md). + + +!!! note "Voir aussi" + + - [Récapitulatif des opérations en fin de semestre](TransitionSemestre.md) + - [Codes de jurys BUT](BUTCodesJury.md) + - [Calculs spécifiques en BUT](BUT.md) + - [FAQ](FAQ.md) + - [Contacts](Contact.md) \ No newline at end of file diff --git a/docs/Evaluation.md b/docs/Evaluation.md index ee8d35dc8..aa36c55ba 100644 --- a/docs/Evaluation.md +++ b/docs/Evaluation.md @@ -19,9 +19,25 @@ qui peuvent être négatives). compte dans les moyennes même si l'évaluation n'est pas affichée. - **Prise en compte immédiate**: si coché, les notes saisies dans l'évaluation seront prises en compte dans le calcul des moyennes avant même que les notes - de tous les étudiants ne soit saisies. Ce réglage peut-être dangereux car les - notes sont montrées aux étudiants avant qu'elles soient définitives et devrait - rester réservé à des cas particuliers. + de tous les étudiants ne soit saisies. + +### Pourquoi éviter d'utiliser "prise en compte immédiate" ? + +Il est tentant de positionner toutes les évaluations en "*prise en compte +immédiate*", parce que cela permet de communiquer leurs résultats aux étudiants +sans attendre. Ce n'est pourtant pas une bonne idée, car: + +- cela complique l'harmonisation: si on a plusieurs correcteurs, et que le second + se rend compte d'une erreur de barème, il sera trop tard pour corriger sans + informer les étudiants; +- cela augmente le risque d'oubli ou de négligence (tout devrait être fait pour + que les collègues corrigent et saisissent leurs notes rapidement); +- en note manquante dans une évaluation "immédiate" est considérée comme "en + attente": cela bloque la tenue du jury pour ces étudiants. + +Ce réglage peut-être être contre-productif, voire nuisible si les notes sont +montrées aux étudiants avant qu'elles soient définitives: il devrait rester +réservé à des cas particuliers. ## Coefficient et poids @@ -67,7 +83,12 @@ Les évaluations bonus sont particulières: Ceci permet d'empêcher la prise en compte (et éventuellement la publication) de l'évaluation, même si ses notes sont complètes, ou bien de la différer jusqu'à -la date indiquée. +la date indiquée. Cette fonctionnalité peut être utilisée + +- temporairement pour ne pas communiquer trop tôt un résultat aux étudiants (on + peut alors programmer la date de déblocage); +- définitivement parce qu'on décide de ne pas tenir compte d'une évaluation, + mais de garder ses résultats saisis. !!! note "Voir aussi" diff --git a/docs/NomsPreferences.md b/docs/NomsPreferences.md index 47f886559..f3107fdee 100644 --- a/docs/NomsPreferences.md +++ b/docs/NomsPreferences.md @@ -1,15 +1,18 @@ +# Préférences de ScoDoc -## Préférences de ScoDoc -Ces variables sont modifiables globalement ou seulement pour un semestre spécifique (sauf pour certaines d'entre elles, qui n'ont de sens que globalement). Si un semestre défini une variable (via la page "Préférences du semestre" accessible dans le menu "Semestre"), sa valeur remplace, pour lui seulement, celle définie globalement (via la page "Paramétrage"). +Ces variables sont modifiables globalement ou seulement pour un semestre +spécifique (sauf pour certaines d'entre elles, qui n'ont de sens que +globalement). Si un semestre défini une variable (via la page "Préférences du +semestre" accessible dans le menu "Semestre"), sa valeur remplace, pour lui +seulement, celle définie globalement (via la page "Paramétrage"). *Page générée à l'aide de la méthode* `doc_preferences` - ## Générales Nom |   |   ---- | ---- | ---- -`DeptName` | Nom abrégé du département | +`DeptName` | Nom abrégé du département | `DeptFullName` | Nom complet du département | inutilisé par défaut `UnivName` | Nom de l'Université | apparait sur les bulletins et PV de jury `InstituteName` | Nom de l'Institut | exemple "IUT de Villetaneuse". Peut être utilisé sur les bulletins. @@ -29,7 +32,7 @@ Nom |   |   Nom |   |   ---- | ---- | ---- `email_chefdpt` | e-mail chef du département | utilisé pour envoi mail notification absences -`work_saturday` | Considérer le samedi comme travaillé | +`work_saturday` | Considérer le samedi comme travaillé | `handle_billets_abs` | Gestion de "billets" d'absence | fonctions pour traiter les "billets" déclarés par les étudiants sur un portail externe `abs_notify_chief` | Notifier les absences au chef | Envoyer un mail au chef si un étudiant a beaucoup d'absences `abs_notify_respsem` | Notifier les absences au dir. des études | Envoyer un mail au responsable du semestre si un étudiant a beaucoup d'absences @@ -45,9 +48,9 @@ Nom |   |   Nom |   |   ---- | ---- | ---- -`portal_url` | URL du portail | +`portal_url` | URL du portail | `portal_timeout` | timeout | secondes -`portal_dept_name` | Code du département sur le portail | +`portal_dept_name` | Code du département sur le portail | `etapes_url` | URL listant les étapes Apogée | par defaut, selon l'api, getEtapes ou scodocEtapes sur l'URL du portail `maquette_url` | URL maquettes Apogee | par defaut, scodocMaquette sur l'URL du portail `portal_api` | Version de l'API | 1 ou 2 @@ -71,8 +74,8 @@ Nom |   |   `SCOLAR_FONT` | Police de caractère principale | pour les pdf `SCOLAR_FONT_SIZE` | Taille des caractères | pour les pdf `SCOLAR_FONT_SIZE_FOOT` | Taille des caractères pied de page | pour les pdf -`pdf_footer_x` | Position horizontale du pied de page pdf (en mm) | -`pdf_footer_y` | Position verticale du pied de page pdf (en mm) | +`pdf_footer_x` | Position horizontale du pied de page pdf (en mm) | +`pdf_footer_y` | Position verticale du pied de page pdf (en mm) | ## Procès verbaux de jury (documents PDF) @@ -84,21 +87,21 @@ Nom |   |   `INSTITUTION_NAME` | Nom institution sur pied de pages PV | (pdf, balises <b> interprétées) `INSTITUTION_ADDRESS` | Adresse institution sur pied de pages PV | (pdf, balises <b> interprétées) `INSTITUTION_CITY` | Ville de l'institution | pour les lettres individuelles -`PV_INTRO` | Paragraphe d'introduction sur le PV | Balises remplacées: %(Univname)s = nom de l'université, %(DecNum)s = numéro de l'arrêté, %(Date)s = date de la commission, %(Type)s = type de commission (passage ou délivrance) -`PV_WITH_BACKGROUND` | Mettre l'image de fond sur les PV de jury (paysage) | -`PV_WITH_HEADER` | Ajouter l'en-tête sur les PV (paysage) | -`PV_WITH_FOOTER` | Ajouter le pied de page sur les PV (paysage) | -`pv_left_margin` | Marge gauche PV en mm | -`pv_top_margin` | Marge haute PV | -`pv_right_margin` | Marge droite PV | -`pv_bottom_margin` | Marge basse PV | +`PV_INTRO` | Paragraphe d'introduction sur le PV | Balises remplacées: %(Univname)s = nom de l'université, %(DecNum)s = numéro de l'arrêté, %(Date)s = date de la commission, %(Type)s = type de commission (passage ou délivrance) +`PV_WITH_BACKGROUND` | Mettre l'image de fond sur les PV de jury (paysage) | +`PV_WITH_HEADER` | Ajouter l'en-tête sur les PV (paysage) | +`PV_WITH_FOOTER` | Ajouter le pied de page sur les PV (paysage) | +`pv_left_margin` | Marge gauche PV en mm | +`pv_top_margin` | Marge haute PV | +`pv_right_margin` | Marge droite PV | +`pv_bottom_margin` | Marge basse PV | `PV_LETTER_DIPLOMA_SIGNATURE` | Signature des lettres individuelles de diplôme | %(DirectorName)s et %(DirectorTitle)s remplacés `PV_LETTER_PASSAGE_SIGNATURE` | Signature des lettres individuelles de passage d'un semestre à l'autre | %(DirectorName)s et %(DirectorTitle)s remplacés `pv_sig_image_height` | Hauteur de l'image de la signature | Lorsqu'on donne une image de signature, elle est redimensionnée à cette taille (en millimètres) `PV_LETTER_TEMPLATE` | Lettre individuelle | Balises remplacées et balisage XML, voir la documentation -`PV_LETTER_WITH_BACKGROUND` | Mettre l'image de fond sur les lettres individuelles de décision | -`PV_LETTER_WITH_HEADER` | Ajouter l'en-tête sur les lettres individuelles de décision | -`PV_LETTER_WITH_FOOTER` | Ajouter le pied de page sur les lettres individuelles de décision | +`PV_LETTER_WITH_BACKGROUND` | Mettre l'image de fond sur les lettres individuelles de décision | +`PV_LETTER_WITH_HEADER` | Ajouter l'en-tête sur les lettres individuelles de décision | +`PV_LETTER_WITH_FOOTER` | Ajouter le pied de page sur les lettres individuelles de décision | `pv_htab1` | marge colonne droite lettre | pour les courriers pdf `pv_htab2` | marge colonne gauche lettre | pour les courriers pdf `PV_FONTNAME` | Police de caractère pour les PV | pour les pdf @@ -109,32 +112,31 @@ Nom |   |   ---- | ---- | ---- `bul_title` | Titre des bulletins | %(DeptName)s est remplacé par le nom du département `bul_class_name` | Format des bulletins | format de présentation des bulletins de note (web et pdf) -`bul_show_abs` | Indiquer les absences sous les bulletins | -`bul_show_abs_modules` | Indiquer les absences dans chaque module | -`bul_show_decision` | Faire figurer les décisions sur les bulletins | +`bul_show_abs` | Indiquer les absences sous les bulletins | +`bul_show_abs_modules` | Indiquer les absences dans chaque module | +`bul_show_decision` | Faire figurer les décisions sur les bulletins | `bul_show_ects` | Faire figurer les ECTS sur les bulletins | crédits associés aux UE ou aux modules, selon réglage -`bul_show_codemodules` | Afficher codes des modules sur les bulletins | -`bul_show_matieres` | Afficher les matières sur les bulletins | +`bul_show_codemodules` | Afficher codes des modules sur les bulletins | +`bul_show_matieres` | Afficher les matières sur les bulletins | `bul_show_all_evals` | Afficher toutes les évaluations sur les bulletins | y compris incomplètes ou futures -`bul_show_rangs` | Afficher le classement sur les bulletins | -`bul_show_ue_rangs` | Afficher le classement dans chaque UE sur les bulletins | -`bul_show_mod_rangs` | Afficher le classement dans chaque module sur les bulletins | -`bul_show_moypromo` | Afficher moyennes de la promotion sur les bulletins | -`bul_show_minmax` | Afficher min/max moyennes sur les bulletins | -`bul_show_minmax_mod` | Afficher min/max moyennes des modules sur les bulletins | -`bul_show_minmax_eval` | Afficher min/max moyennes des évaluations sur les bulletins | -`bul_show_coef` | Afficher coefficient des ue/modules sur les bulletins | -`bul_show_ue_cap_details` | Afficher détail des notes des UE capitalisées sur les bulletins | -`bul_show_ue_cap_current` | Afficher les UE en cours mais capitalisées sur les bulletins | -`bul_show_temporary_forced` | Bannière "provisoire" sur les bulletins | -`bul_show_temporary` | Bannière "provisoire" si pas de décision de jury | -`bul_temporary_txt` | Texte de la bannière "provisoire | -`bul_show_uevalid` | Faire figurer les UE validées sur les bulletins | -`bul_show_mention` | Faire figurer les mentions sur les bulletins et les PV | -`bul_show_date_inscr` | Faire figurer la date d'inscription sur les bulletins | -`bul_show_sig_left` | Faire figurer le pied de page de gauche (ex.: nom du directeur) sur les bulletins | -`bul_show_sig_right` | Faire figurer le pied de page de droite (ex.: nom du chef de département) sur les bulletins | -`bul_display_publication` | Indique si les bulletins sont publiés | décocher si vous n'avez pas de portal étudiant publiant les bulletins +`bul_show_rangs` | Afficher le classement sur les bulletins | +`bul_show_ue_rangs` | Afficher le classement dans chaque UE sur les bulletins | +`bul_show_mod_rangs` | Afficher le classement dans chaque module sur les bulletins | +`bul_show_moypromo` | Afficher moyennes de la promotion sur les bulletins | +`bul_show_minmax` | Afficher min/max moyennes sur les bulletins | +`bul_show_minmax_mod` | Afficher min/max moyennes des modules sur les bulletins | +`bul_show_minmax_eval` | Afficher min/max moyennes des évaluations sur les bulletins | +`bul_show_coef` | Afficher coefficient des ue/modules sur les bulletins | +`bul_show_ue_cap_details` | Afficher détail des notes des UE capitalisées sur les bulletins | +`bul_show_ue_cap_current` | Afficher les UE en cours mais capitalisées sur les bulletins | +`bul_show_temporary_forced` | Bannière "provisoire" sur les bulletins | +`bul_show_temporary` | Bannière "provisoire" si pas de décision de jury | +`bul_temporary_txt` | Texte de la bannière "provisoire | +`bul_show_uevalid` | Faire figurer les UE validées sur les bulletins | +`bul_show_mention` | Faire figurer les mentions sur les bulletins et les PV | +`bul_show_date_inscr` | Faire figurer la date d'inscription sur les bulletins | +`bul_show_sig_left` | Faire figurer le pied de page de gauche (ex.: nom du directeur) sur les bulletins | +`bul_show_sig_right` | Faire figurer le pied de page de droite (ex.: nom du chef de département) sur les bulletins | `bul_pdf_title` | Bulletins PDF: paragraphe de titre | (balises interprétées, voir documentation) `bul_pdf_caption` | Bulletins PDF: paragraphe sous table note | (visible seulement si "Faire figurer les décision" est coché) `bul_pdf_sig_left` | Bulletins PDF: signature gauche | (balises interprétées, voir documentation) @@ -146,10 +148,10 @@ Nom |   |   Nom |   |   ---- | ---- | ---- -`left_margin` | Marge gauche | -`top_margin` | Marge haute | -`right_margin` | Marge droite | -`bottom_margin` | Marge basse | +`left_margin` | Marge gauche | +`top_margin` | Marge haute | +`right_margin` | Marge droite | +`bottom_margin` | Marge basse | ## Envoi des bulletins par e-mail @@ -160,7 +162,7 @@ Nom |   |   `bul_intro_mail` | Message d'accompagnement | %(DeptName)s est remplacé par le nom du département, %(nomprenom)s par les noms et prénoms de l'étudiant, %(dept)s par le nom du département, et %(webmaster)s par l'adresse mail du Webmaster. `bul_mail_list_abs` | Indiquer la liste des dates d'absences par mail | dans le mail envoyant le bulletin de notes `bul_mail_contact_addr` | Adresse mail contact "webmaster" | apparait dans le mail accompagnant le bulletin, voir balise "webmaster" ci-dessus. -`bul_mail_allowed_for_all` | Autoriser tous les utilisateurs à expédier des bulletins par mail | +`bul_mail_allowed_for_all` | Autoriser tous les utilisateurs à expédier des bulletins par mail | ## Mise en forme des feuilles (Absences, Trombinoscopes, ...) @@ -168,13 +170,13 @@ Nom |   |   ---- | ---- | ---- `feuille_releve_abs_taille` | Taille feuille relevé absences | Dimensions du papier pour les feuilles de relevés d'absences hebdomadaire `feuille_releve_abs_format` | Format feuille relevé absences | Format du papier pour les feuilles de relevés d'absences hebdomadaire -`feuille_releve_abs_samedi` | Samedi travaillé | +`feuille_releve_abs_samedi` | Samedi travaillé | `feuille_releve_abs_AM` | Créneaux cours matin | Nombre de créneaux de cours le matin `feuille_releve_abs_PM` | Créneaux cours après-midi | Nombre de créneaux de cours l'après-midi `feuille_placement_emargement` | Feuille d'émargement des contrôles - Signature étudiant | Hauteur de l'espace pour signer `feuille_placement_positions` | Feuille des places lors des contrôles | Nombre maximum de lignes par colonne -`prepa_jury_nip` | Code NIP sur la feuille préparation jury | -`prepa_jury_ine` | Code INE sur la feuille préparation jury | +`prepa_jury_nip` | Code NIP sur la feuille préparation jury | +`prepa_jury_ine` | Code INE sur la feuille préparation jury | `anonymous_lst_code` | Code pour listes anonymes | à défaut, un code interne sera utilisé ## Avis de poursuites d'études @@ -183,7 +185,7 @@ Nom |   |   ---- | ---- | ---- `NomResponsablePE` | Nom du responsable des poursuites d'études | pour les avis pdf de poursuite `pe_avis_latex_tmpl` | Template LaTeX des avis | préparez-le dans un éditeur de texte puis copier le contenu ici (en utf8). Sinon, le fichier un_avis.tex du serveur sera utilisé. -`pe_avis_latex_footer` | Code LaTeX en fin d'avis | +`pe_avis_latex_footer` | Code LaTeX en fin d'avis | `pe_tag_annotation_avis_latex` | Tag désignant l'avis PE | ajoutez une annotation aux étudiants précédée du tag désigné ici pour qu'elle soit interprétée comme un avis de poursuites d'études et ajoutée aux avis LaTeX. ## Connexion avec le logiciel d'emplois du temps diff --git a/docs/TransitionSemestre.md b/docs/TransitionSemestre.md index 223b685aa..9dd51df4a 100644 --- a/docs/TransitionSemestre.md +++ b/docs/TransitionSemestre.md @@ -1,55 +1,60 @@ # Récapitulatif des opérations en fin de semestre (et début du suivant) -Cette page récapitule les opérations typiquement effectuées par un chef de -département en IUT à la fin d'un semestre. Selon les cas, certaines opérations -peuvent être effectuées par les directeurs des études. La plupart des étapes -mentionnées ici sont aussi applicables pour d'autres types de formation. +Cette page récapitule les opérations typiquement effectuées par le ou la +responsable de formation (par ex. une cheffe de département en IUT) à la fin +d'un semestre. Selon les cas, certaines opérations peuvent être effectuées par +les directeurs des études. -Voir aussi le [Guide pour la cheffe ou le chef de -département](GuideAdminFormation.md). +Voir aussi le [Guide pour la cheffe ou le chef de département](GuideAdminFormation.md). ## À la fin d'un semestre - 1. Vérifier que les réglages de votre semestre correspondent bien à ce que vous - voulez. En particulier, les options comme *proposer compensation* et *jurys - avec semestres décalés* (accessibles via *Modifier le semestre*, voir - figure). - ![reglages-semestres-check.png](screens/reglages-semestres-check.png) +1. Vérifier que les réglages de votre semestre correspondent bien à ce que vous + voulez. En particulier, surtout pour les DUT, les options comme *proposer + compensation* et *jurys avec semestres décalés* (accessibles via *Modifier + le semestre*, voir figure). + ![reglages-semestres-check.png](screens/reglages-semestres-check.png) - 2. Vérifier que le cursus choisi est correct (menu *Semestre* / *Voir la - formation*): ainsi, le parcours affiché doit être "DUT selon l'arrêté d'août - 2005" pour le DUT. +2. Vérifier que la formation (menu **Semestre / Voir la formation**) est + correcte et, s'il y a des messages d'avertissement dans la formation ou sur + le tableau de bord du semestre, que vous les avez pris en compte ou + comprenez la situation. - 3. Vérifier que toutes les notes ont été saisies: regarder le tableau de bord, - qui affiche dans chaque module les évaluations et indique si des notes - manquent ou sont en attente. +3. Vérifier que toutes les notes ont été saisies: regarder le tableau de bord, + qui affiche dans chaque module les évaluations et indique si des notes + manquent ou sont en attente. Le tenue d'un jury exige que toutes les notes + sont à jour. - 4. (optionnel) Vérifier les absences si cela n'a pas déjà été fait. Dans le - menu *Semestre* du tableau de bord, suivre *Vérifier les absences aux - évaluations*. - Attention, actuellement ScoDoc enregistre les absences par demi-journées, ce - qui fait qu'un étudiant peut être noté absent alors qu'il a assisté à un - examen sur une partie de la demi-journée et sèché le cours suivant. +4. (optionnel) En BUT, sur un semestre impair (S1, S3, S5), si les étudiants ont + déjà commencé le semestre suivant (par exemple si le S2 a commencé avant que + le jury de S1 ait été enregistré), prendre soin de bloquer la prise en compte + des moyennes du semestre pair: sur celui là, via **Semestre / Modifier le + semestre**, cocher *empêcher le calcul des moyennes d'UE*. Sinon, les + décisions annuelles BUT seraient calculées ! - 5. Réunir la commission (ou le jury): +5. (optionnel) Vérifier les absences si cela n'a pas déjà été fait. Dans le + menu *Semestre* du tableau de bord, suivre *Vérifier les absences aux + évaluations*. - a. Il peut être utile de préparer des documents pour les membres de la - commission: suivre *Générer feuille préparation Jury* dans le menu *Jury*. +6. Réunir la commission (ou le jury): - b. Durant la commission, nous recommandons de saisir en temps réel les - décisions (menu *Jury / Saisie des décisions*). **Pour éviter que les - étudiants n'aient accès aux décisions pendant le jury, décocher l'option - *publier le bulletin sur le portail* ** (menu *Semestre / Options du - semestre*). + a. Il peut être utile de préparer des documents pour les membres de la + commission: suivre *Générer feuille préparation Jury* dans le menu *Jury*. - 6. Édition du procès-verbal: menu *Jury / Voir les décisions du jury*. + b. Durant la commission, nous recommandons de saisir en temps réel les + décisions (menu *Jury / Saisie des décisions*). **Pour éviter que les + étudiants n'aient accès aux décisions pendant le jury, décocher l'option + *publier le bulletin sur la passerelle* ** (menu *Semestre / Options du + semestre*). - 1. En bas de la page, un lien *Courriers individuels (classeur pdf)* permet - de générer les courriers à adresser aux étudiants (penser à vérifier - leurs adresses postales au préalable sur leurs fiches). +7. Édition du procès-verbal: menu *Jury / Voir les décisions du jury*. - 2. Le lien *PV officiel (pdf)* permet de générer le procès verbal avec la - liste des décisions pour chaque étudiant. + a. En bas de la page, un lien *Courriers individuels (classeur pdf)* permet + de générer les courriers à adresser aux étudiants (penser à vérifier + leurs adresses postales au préalable sur leurs fiches). + + b. Le lien *PV officiel (pdf)* permet de générer le procès verbal avec la + liste des décisions pour chaque étudiant. A ce stade, le semestre est terminé. Il est recommandé de le **verrouiller** après les prises de décisions définitives. @@ -59,11 +64,11 @@ après les prises de décisions définitives. 1. **Créer une instance du semestre suivant** (par exemple un S2 après un S1). Pour cela, aller sur la page *Programmes*, choisir la formation (rappelons que ScoDoc appelle "formation" la définition d'un programme pédagogique) et - suivre le lien *UE, modules, semestres*. + suivre le lien *UE, modules, semestres*. 2. En bas de la page qui détaille le programme, suivre le lien *Mettre en place un nouveau semestre de formation* et remplissez le formulaire. - + Une autre approche, souvent plus rapide, consiste à créer un semestre en utilisant un semestre existant comme modèle: on reprend la même liste de modules; pour cela, se placer sur le semestre modèle, et utiliser le menu ** @@ -74,14 +79,14 @@ après les prises de décisions définitives. doit commencer quelques jours (ou semaines) après le précédent !) 2. Désignez le responsable (directeur des études en DUT). - + 3. Si vous êtes interfacé à Apogée (via un portail), indiquez le code étape Apogée correspondant à votre nouveau semestre. - + 4. Cocher les modules de votre semestre, et associez leur un enseignant responsable (ce dernier pourra créer des évaluations dans ce module et déclarer des collègues pouvant saisir les notes). - + 5. Après relecture, cliquez sur le bouton *Créer ce semestre de formation*. NB: toutes ces informations pourront être ultérieurement modifiées via le lien *Semestre / Modifer le semestre* du tableau de bord. @@ -114,10 +119,10 @@ C'est prêt. Les enseignants autorisés peuvent créer des évaluations et saisi ## Problèmes couramment rencontrés -- **Etudiants en doubles**: ceci arrive lorsqu'on crée manuellement les +- **Etudiants en double**: ceci arrive lorsqu'on crée manuellement les étudiants. Il faut absolument éviter de créer un étudiant qui existe déjà, sinon on perd la possibilité de suivre le parcours de chacun. Le respect de la - procédure ci-dessus garanti normalement que les étudiants restent uniques. + procédure ci-dessus garanti que les étudiants restent uniques. N'utiliser *créer un nouvel étudiant* qu'après vous être assuré qu'il n'était pas déjà inscrit dans un autre semestre, et que l'on sait que l'on ne va pas l'importer depuis Apogée. @@ -138,5 +143,6 @@ Pour toute question, n'hésitez pas à nous contacter ([contacts](Contact.md)). - [Vérifier les codes NIP](VerifCodeNIP.md) - [Guide pour le ou la responsable de formation](GuideAdminFormation.md) + - [Les jurys de BUT](BUTJurys.md) - [FAQ](FAQ.md) - - [Contacts](Contact.md) \ No newline at end of file + - [Contacts](Contact.md) diff --git a/docs/samples/sample_formsemestre-resultats.json.md b/docs/samples/sample_formsemestre-resultats.json.md index 624e53a36..558528786 100644 --- a/docs/samples/sample_formsemestre-resultats.json.md +++ b/docs/samples/sample_formsemestre-resultats.json.md @@ -51,12 +51,12 @@ "nbabs": 5, "nbabsjust": 1, "nom_disp": "FLEURY", - "nom_short": "FLEURY Ma.", "partitions": { "1": 1 }, "prenom": "MADELEINE", "rang": "1", + "sort_key":"fleury;madeleine", "specialite": "", "type_admission": "", "ues_validables": "3/3" @@ -109,12 +109,12 @@ "nbabs": 3, "nbabsjust": 1, "nom_disp": "SAUNIER", - "nom_short": "SAUNIER Ja.", "partitions": { "1": 1 }, "prenom": "JACQUES", "rang": "2", + "sort_key":"fleury;madeleine", "specialite": "", "type_admission": "", "ues_validables": "3/3" From f9caeb90f3de59e2a407b9423e03dfc7bf538e13 Mon Sep 17 00:00:00 2001 From: viennet Date: Mon, 27 May 2024 12:58:01 +0200 Subject: [PATCH 4/9] Modif URL gitea: git.scodoc.org --- docs/Contact.md | 2 +- docs/Contribuer.md | 6 +++--- docs/DevGit.md | 24 ++++++++++++------------ docs/DevInternals.md | 2 +- docs/Evaluation.md | 16 +++++++++++----- docs/FAQ.md | 2 +- docs/GuideDeveloppeurs.md | 4 ++-- docs/GuideUtilisateur.md | 9 ++++++--- docs/IntroObjetsScoDoc.md | 4 ++-- docs/ScoDoc9API.md | 14 ++++++-------- mkdocs.yml | 2 +- 11 files changed, 46 insertions(+), 39 deletions(-) diff --git a/docs/Contact.md b/docs/Contact.md index 8053aa6a1..b3591c1b2 100644 --- a/docs/Contact.md +++ b/docs/Contact.md @@ -33,7 +33,7 @@ permet d'indiquer le semestre et l'étudiant à regarder. Vous trouverez les sources du projet, les tickets (*issues*) et autres outils sur -* [gitea](https://scodoc.org/git/) +* [gitea](https://git.scodoc.org) Vous pouvez demander un compte sur cette plate-forme pour ajouter des tickets, proposer votre code (*pull requests*). diff --git a/docs/Contribuer.md b/docs/Contribuer.md index 6023830cc..8d104d2e3 100644 --- a/docs/Contribuer.md +++ b/docs/Contribuer.md @@ -7,7 +7,7 @@ collègues, ou en développant ou testant le logiciel. Les canaux de communication entre développeurs sont [indiqués sur cette page](Contact.md). Vous pouvez demander un compte sur le [git du - projet](https://scodoc.org/git), consulter/ajouter des tickets, proposer votre + projet](https://git.scodoc.org), consulter/ajouter des tickets, proposer votre code (*pull requests*). ## Contribuer à la documentation @@ -21,11 +21,11 @@ La documentation est constituée de deux parties: - Les pages Web comme celle que vous lisez actuellement. La documentation est générée via `MkDocs`, un système très simple basé sur le format [Markdown](https://www.markdownguide.org/basic-syntax/). Toutes les sources - sont sur le [dépôt git DocScoDoc](https://scodoc.org/git/viennet/DocScoDoc). + sont sur le [dépôt git DocScoDoc](https://git.scodoc.org/viennet/DocScoDoc). ## Contribuer au logiciel -Le [dépôt principal](https://scodoc.org/git/viennet/ScoDoc) comporte plusieurs +Le [dépôt principal](https://git.scodoc.org/viennet/ScoDoc) comporte plusieurs branches. Voir le [guide pour les développeurs](GuideDeveloppeurs.md). diff --git a/docs/DevGit.md b/docs/DevGit.md index cd1feaed9..93094859c 100644 --- a/docs/DevGit.md +++ b/docs/DevGit.md @@ -1,6 +1,6 @@ # Utilisation de git pour ScoDoc -Le dépôt est +Le dépôt est La branche `master` est celle de ScoDoc 9, d'où sont issues les paquets distribués (*releases*). Les développements ont lieu sur d'autres branches @@ -48,7 +48,7 @@ mises à jour de `master` (remote), faire: Vous travaillez sur un clone du dépôt principal ("origin"), obtenu par exemple via ```bash -git clone https://scodoc.org/git/ScoDoc/ScoDoc.git +git clone https://git.scodoc.org/ScoDoc/ScoDoc.git ``` remplacer par l'URL de votre dépôt sur gitea au besoin. Si vous avez votre @@ -57,12 +57,12 @@ nommé `mon_origin`), l'autre pour le dépôt principal ScoDoc (ici nommé `origin`). ```bash -git remote add origin https://scodoc.org/git/viennet/ScoDoc.git +git remote add origin https://git.scodoc.org/viennet/ScoDoc.git git remote -v mon_origin https://xxx.xxx (fetch) mon_origin https://xxx.xxx (push) -origin https://scodoc.org/git/viennet/ScoDoc.git (fetch) -origin https://scodoc.org/git/viennet/ScoDoc.git (push) +origin https://git.scodoc.org/viennet/ScoDoc.git (fetch) +origin https://git.scodoc.org/viennet/ScoDoc.git (push) ``` Ensuite, tout est prêt, vous créez votre branche: @@ -103,7 +103,7 @@ Lint tous les fichiers modifiés: Affiche les variables non définies dans un fichier: ```bash - pylint --disable=all -e E sco_parcours_dut.py | grep undefined-variable | awk '{print $4;}' | sort | uniq | tr -d \' + pylint --disable=all -e E sco_parcours_dut.py | grep undefined-variable | awk '{print $4;}' | sort | uniq | tr -d \' ``` Prépare un sed pour renommer les variables non définies: @@ -154,14 +154,14 @@ la mise en place, le suivi et la livraison. #### L'installation Il est pratique d'avoir en ligne les deux dépôts git distants que vous pouvez -utiliser : votre dépôt personnel (`https://scodoc.org/git//.git`) et -le dépôt officiel (`https://scodoc.org/git/ScoDoc/ScoDoc.git`). +utiliser : votre dépôt personnel (`https://git.scodoc.org//.git`) et +le dépôt officiel (`https://git.scodoc.org/ScoDoc/ScoDoc.git`). pour ajouter une référence (et lui donner un nom) vers un dépôt distant, entrez la commande: ```bash - git remote add nom_remote https://scodoc.org/git/ScoDoc/.git + git remote add nom_remote https://git.scodoc.org/ScoDoc/.git ``` Par la suite vous aurez donc une référence vers votre dépôt personnel (`perso`) @@ -186,7 +186,7 @@ suivantes par `git stash` (avant) et `git stash apply` (après) : ```bash git reset --hard officiel/master - git checkout -b ma_modif + git checkout -b ma_modif ``` À partir de là, vous pouvez modifier, tester, développer et commit votre travail. @@ -249,7 +249,7 @@ l'équivalent sous *pyCharm*). for fn in $(git diff --name-only officiel/master) do python3 -m black $fn - done + done ``` Faire une première lecture rapide pour vérifier qu'il ne reste pas de fichiers @@ -384,7 +384,7 @@ soit refusé (car le rebase a modifié des commits qui avaient déjà été pous Dans ce cas l'option `--force` du push vous permette de passer outre, mais assurez-vous avant d'être le seul à travailler sur cette branche. -#### Etape 5 : La dernière étape se passe sur le site [scodoc.org/git](https://scodoc.org/git/) +#### Etape 5 : La dernière étape se passe sur le site [git.scodoc.org](https://git.scodoc.org/) - Identifiez-vous diff --git a/docs/DevInternals.md b/docs/DevInternals.md index 41f97a488..36ea9f380 100644 --- a/docs/DevInternals.md +++ b/docs/DevInternals.md @@ -132,7 +132,7 @@ http GET http://localhost:5000/ScoDoc/api/formsemestres/query "Authorization:Bea ### Côté programmation serveur Reprenons le même exemple (voir `app/api/formsemestres.py`` ligne 91, -): +): ```py @bp.route("/formsemestres/query") diff --git a/docs/Evaluation.md b/docs/Evaluation.md index aa36c55ba..8561f10e1 100644 --- a/docs/Evaluation.md +++ b/docs/Evaluation.md @@ -19,7 +19,9 @@ qui peuvent être négatives). compte dans les moyennes même si l'évaluation n'est pas affichée. - **Prise en compte immédiate**: si coché, les notes saisies dans l'évaluation seront prises en compte dans le calcul des moyennes avant même que les notes - de tous les étudiants ne soit saisies. + de tous les étudiants ne soit saisies. Ne pas utiliser pour les évaluations de + rattrapage ou de deuxième session (qui sont prises en compte quand elles + existent). ### Pourquoi éviter d'utiliser "prise en compte immédiate" ? @@ -61,12 +63,13 @@ l'évaluation est dite *en attente*. Elle est prise en compte. ## Modalité d'une évaluation - **Normale**: produit une note utilisée dans le calcul des moyennes du module. -- **Rattrapage**: la note d'une évaluation de "rattrapage" remplacera la moyenne - du module de l'étudiant *si et seulement si elle est meilleures que celles - calculées*. - **Deuxième session**: la note remplace, lorsqu'elle est saisie, la moyenne de l'étudiant à ce module, même si sa note de deuxième session est plus faible que sa moyenne normale. +- **Rattrapage**: la note d'une évaluation de "rattrapage" remplacera la moyenne + du module de l'étudiant *si et seulement si elle est meilleure que celles + calculées*. S'il y a des évaluations de deuxième session, celles de + rattrapage sont ignorées. - **Bonus**: la valeur est ajoutée à la moyenne du module, voir détail ci-dessous. ### Évaluations de "bonus" @@ -75,10 +78,13 @@ Les évaluations bonus sont particulières: - la valeur est ajoutée à la moyenne du module; - le bonus peut être négatif (malus); -- le bonus ne s'applique pas aux notes de rattrapage et deuxième session; +- le bonus s'applique après utilisation des notes de rattrapage ou de deuxième session; - le coefficient est ignoré, mais en BUT le bonus vers une UE est multiplié par le poids correspondant (par défaut égal à 1); - les notes de bonus sont prises en compte même si incomplètes. +Note 1: la conformité des évaluations au programme (coefficients vers les UEs) ne +prend pas en compte les évaluations bonus. + ## Bloquage et date de prise en compte Ceci permet d'empêcher la prise en compte (et éventuellement la publication) de diff --git a/docs/FAQ.md b/docs/FAQ.md index f511e0bd4..8fb1cf408 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -6,7 +6,7 @@ ScoDoc a été conçu et développé par Emmanuel Viennet, puis complété par plusieurs contributeurs, enseignants ou BIATSS dans les IUT et universités. Son -développement est toujours actif, voir le dépôt git . +développement est toujours actif, voir la plateforme gitea . En 2020, une association a été créée pour soutenir et pérenniser le projet: par exemple pour acquérir services et équipements pour le développement diff --git a/docs/GuideDeveloppeurs.md b/docs/GuideDeveloppeurs.md index a2e07d00e..63e3a8f79 100644 --- a/docs/GuideDeveloppeurs.md +++ b/docs/GuideDeveloppeurs.md @@ -4,7 +4,7 @@ Informations pour les développeurs souhaitant étendre ou modifier ScoDoc. Pour le développement de logiciels externes, [utiliser l'API](ScoDoc9API.md). -Accès à la [plate-forme Gitea](https://scodoc.org/git). +Accès à la [plate-forme Gitea](https://git.scodoc.org). ## Informations générales @@ -146,7 +146,7 @@ Note: la mise à jour par `apt` recrée le virtualenv à chaque fois. ## Roadmap - * [voir les tickets](https://scodoc.org/git/viennet/ScoDoc/issues) + * [voir les tickets](https://git.scodoc.org/viennet/ScoDoc/issues) !!! note "Voir aussi" diff --git a/docs/GuideUtilisateur.md b/docs/GuideUtilisateur.md index 8a538824c..94ba599f4 100644 --- a/docs/GuideUtilisateur.md +++ b/docs/GuideUtilisateur.md @@ -1,5 +1,8 @@ # Utilisation de ScoDoc +Les [principaux objets de ScoDoc](IntroObjetsScoDoc.md) sont présentés sur +[cette page](IntroObjetsScoDoc.md). + ScoDoc contrôle les opérations via un mécanisme de permissions facile à mettre en œuvre et permettant de bien répartir les rôles entre les utilisateurs: responsables, enseignants, secrétariats. @@ -13,9 +16,9 @@ département. * [Guide pour le responsable de formation](GuideAdminFormation.md) * [Modification d'un programme pédagogique et versions](Formations.md) * [Exemples et partages de programmes pédagogiques entre établissements](ExemplesProgrammesPedagogiques.md) - + * [Importation des étudiants](ImportationEtuds.md) - + * [Synchronisation des inscrits avec Apogée](SynchroApogee.md) * [Procédure d'inscription des étudiants via Apogée](InscriptionsEtudApogee.md) * [Données sur l'origine des étudiants](DonneesAdmissions.md) @@ -30,7 +33,7 @@ département. * [Édition des bulletins de notes](BulletinsNotes.md) * [paramétrage des bulletins pdf](ParametrageBulletins.md) - + * [Édition des PV de jury](ParametragePV.md) * Comment sont calculées les moyennes : [Calcul des notes](CalculNotes.md) diff --git a/docs/IntroObjetsScoDoc.md b/docs/IntroObjetsScoDoc.md index d999f7da6..7e46d74c9 100644 --- a/docs/IntroObjetsScoDoc.md +++ b/docs/IntroObjetsScoDoc.md @@ -25,7 +25,7 @@ une action de formation continue d'une semaine que d'une formation sur un an. Saisie des dates de début et fin d'un semestre: ![sco-dates-semestre.png](screens/sco-dates-semestre.png) -Les semestre a un ou plusieurs (co)responsables, utilisateurs ayant des droits +Chaque semestre a un ou plusieurs (co)responsables, utilisateurs ayant des droits particuliers, dont ceux de modifier la liste des modules d'enseignement à suivre, de nommer les enseignants, etc. Les responsables de semestres sont souvent appelés *directeurs ou directrices des études*. @@ -103,7 +103,7 @@ Exemple: extrait de la fiche d'un étudiant Les étudiants d'un semestre peuvent être répartis dans des groupes. -Chaque *partition* d'un semestre défini un ensemble de groupes: par exemple, les +Chaque *partition* d'un semestre défini un ensemble de groupes: par exemple, la partition des groupes de TD, ou la partition des projets tuteurés. On peut à tout moment créer une partition, y créer des groupes, y placer ou diff --git a/docs/ScoDoc9API.md b/docs/ScoDoc9API.md index b910e6880..e79190c03 100644 --- a/docs/ScoDoc9API.md +++ b/docs/ScoDoc9API.md @@ -1546,16 +1546,14 @@ mais pas JSON compliant à cause des `NaN`. * **Permission: `ScoView`** * **Paramètres:** `formsemestre_id` * **Query string**: `format` -* **Route:** `/formsemestres/resultats` +* **Route:** `/formsemestre//resultats` * **Exemple d'utilisation:** `/api/formsemestre/1/resultats` -* **Résultat:** [formsemestre-resultats.json](samples/sample_formsemestre-resultats.json.md) - -Récapitulatif par étudiant (état, groupe(s), moyennes d'UEs et de modules) +* **Résultat:** Récapitulatif par étudiant (état, groupe(s), moyennes d'UEs et de modules) pour un formsemestre spécifié par son id. Par défaut les valeurs numériques sont formatées en chaînes. Si format=raw, valeurs numériques mais pas JSON compliant à cause des `NaN`. -* **Exemple de résultat:** +* **Exemple de résultat:** [formsemestre-resultats.json](samples/sample_formsemestre-resultats.json.md) #### **`moduleimpl-evaluations`** @@ -1733,16 +1731,16 @@ Cette API est disponible à partir de ScoDoc 9.6 et remplace les absences. * **Exemple d'utilisation:** `/api/assiduite/1` * **Résultat:** Retourne un objet assiduité ou une erreur si l'id n'est pas connu * **Exemple de résultat:** [assiduite.json](samples/sample_assiduite.json.md) -* +* #### **assiduite-justificatifs[-long]** * **Méthode:** GET * **Permission: `ScoView`** * **Paramètres:** `assiduite_id` -* **Routes:** +* **Routes:** * `/assiduite//justificatifs` * `/assiduite//justificatifs/long` -* **Exemple d'utilisation:** +* **Exemple d'utilisation:** * `/api/assiduite/123/justificatifs` * `/api/assiduite/123/justificatifs/long` * **Résultat:** Retourne une liste de justificatifs. des objets en utilisant la route `long` sinon les justif_id diff --git a/mkdocs.yml b/mkdocs.yml index 0715533e6..c977c620b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -62,7 +62,7 @@ nav: - "Utilisateurs": UtilisateursScoDoc.md - Développement: - "Guide Développeurs": GuideDeveloppeurs.md - - "Gitea": https://scodoc.org/git + - "Gitea": https://git.scodoc.org - "API": ScoDoc9API.md - "Introduction": DevInternals.md - "Utiliser Git": DevGit.md From c687db297c635e15154f25d7d07a8e0ae48a8325 Mon Sep 17 00:00:00 2001 From: viennet Date: Thu, 30 May 2024 15:26:44 +0200 Subject: [PATCH 5/9] Liens vers install Debian 12 --- docs/ConfigEmail.md | 4 ++-- docs/ConseilServeurDev.md | 10 +++++----- docs/FAQ.md | 2 +- docs/GuideAdminSys.md | 8 ++++---- docs/GuideConfig.md | 20 ++++++++++---------- docs/GuideDeveloppeurs.md | 2 +- docs/GuideInstallDebian12.md | 12 ++++++------ docs/MigrationDonneesScoDoc.md | 14 +++++++------- docs/MigrationScoDoc7a9.md | 25 ++++++++++++------------- docs/SauvegardesBases.md | 5 +++-- mkdocs.yml | 2 +- 11 files changed, 52 insertions(+), 52 deletions(-) diff --git a/docs/ConfigEmail.md b/docs/ConfigEmail.md index b39083e5f..89edf8ad9 100644 --- a/docs/ConfigEmail.md +++ b/docs/ConfigEmail.md @@ -35,8 +35,8 @@ réglées via via la page **Paramétrage** de chaque département: ![Réglage des notifications](fig/config-dept-abs.png) !!! note "Voir aussi" - + - Configuration système: [Envoi des courriers électroniques](ProblemesMail.md) - - Installation, flux réseaux et configuration: [Guide d'installation](GuideInstallDebian11.md) + - Installation, flux réseaux et configuration: [Guide d'installation](GuideInstallDebian12.md) - [Contacts](Contact.md) diff --git a/docs/ConseilServeurDev.md b/docs/ConseilServeurDev.md index 3c6edfb09..9374f893f 100644 --- a/docs/ConseilServeurDev.md +++ b/docs/ConseilServeurDev.md @@ -13,8 +13,8 @@ aussi bien l'affaire). ### Conseils pour la machine virtuelle [VirtualBox](https://www.virtualbox.org/) est facile à installer sur Linux ou -Windows. Créer une VM avec Debian 10, et suivre la -[procédure habituelle d'installation de ScoDoc](GuideInstallDebian11.md). +Windows. Créer une VM avec Debian 12, et suivre la +[procédure habituelle d'installation de ScoDoc](GuideInstallDebian12.md). Sur les Macs anciens (processeurs Intel), VirtualBox fonctionne bien. Sur les modèles "M1" (Apple Silicon), je conseille d'utiliser @@ -70,7 +70,7 @@ la VM: ici `enp0s8` correspond à l'`Adapter 2`. Si vous travaillez sur une machine fixe avec connexion permanente, vous pouvez dans Debian activer cette interface -constamment (modifier `/etc/network/interfaces`). +constamment (modifier `/etc/network/interfaces`). ### Noms des machines @@ -91,9 +91,9 @@ type `sshfs`peut aussi faire l'affaire). - [Conventions de codage](DevConventions.md) - [API ScoDoc 9](ScoDoc9API.md) - - [Guide installation](GuideInstallDebian11.md) + - [Guide installation](GuideInstallDebian12.md) - [Gestion des utilisateurs](AdminUsers.md) - [Guide administrateur ScoDoc](GuideAdminSys.md) - [FAQ](FAQ.md) - [Contacts](Contact.md) -- \ No newline at end of file +- \ No newline at end of file diff --git a/docs/FAQ.md b/docs/FAQ.md index 8fb1cf408..ca6c5f4d0 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -135,7 +135,7 @@ Voir [la page sur la gestion des logos et images](GestionLogos.md). ScoDoc est accessible depuis n'importe quel navigateur Web (Firefox, Chrome, ...). Le serveur ScoDoc fonctionne sous Linux. Il n'est testé qu'avec Debian (stable). -Le script d'installation ([GuideInstallDebian11](GuideInstallDebian11.md)) +Le script d'installation ([GuideInstall12](GuideInstallDebian12.md)) assure l'installation de tout les éléments nécessaires au bon fonctionnement de ScoDoc. diff --git a/docs/GuideAdminSys.md b/docs/GuideAdminSys.md index b5cdf3d80..6656661f6 100644 --- a/docs/GuideAdminSys.md +++ b/docs/GuideAdminSys.md @@ -1,12 +1,12 @@ # Guide pour les administrateurs système de ScoDoc -ScoDoc 9 est prévu pour fonctionner sur un serveur **Linux Debian 11 (Bullseye)**. -L'installation sur tout autre système n'est **pas supportée**. +ScoDoc 9 est prévu pour fonctionner sur un serveur **Linux Debian 12 (Bookworm)**. +L'installation sur tout autre système n'est **pas supportée**. Utilisez un **serveur virtuel** ou un container Docker si vous n'avez pas de machine Debian dédiée. ## Installation -* Installation de ScoDoc: [GuideInstallDebian11](GuideInstallDebian11.md) +* Installation de ScoDoc: [GuideInstallDebian12](GuideInstallDebian12.md) * Migration d'un serveur ScoDoc 7 vers la nouvelle version Scodoc 9: [MigrationScoDoc7a9](MigrationScoDoc7a9.md) @@ -36,7 +36,7 @@ Utilisez un **serveur virtuel** ou un container Docker si vous n'avez pas de mac !!! note "Voir aussi" - + - [Guide pour les développeurs](GuideDeveloppeurs.md) - [FAQ](FAQ.md) - [Contacts](Contact.md) diff --git a/docs/GuideConfig.md b/docs/GuideConfig.md index a94d3fbac..20ff13aee 100644 --- a/docs/GuideConfig.md +++ b/docs/GuideConfig.md @@ -1,7 +1,7 @@ # Prise en main et paramétrage de ScoDoc 9 -Ce document suppose que le logiciel a été installé suivant la procédure décrite dans -[GuideInstallDebian11](GuideInstallDebian11.md). +Ce document suppose que le logiciel a été installé suivant la procédure décrite dans +[GuideInstallDebian12](GuideInstallDebian12.md). ## Administration en ligne de commande @@ -10,15 +10,15 @@ création d'utilisateurs "super admin", c'est à dire admin pour tous les départements. Le reste des paramétrages (création de comptes, de formations, import d'étudiants, etc) se fait à partir du logiciel (web). -L'administration se fait dans un terminal connecté au serveur (en général via +L'administration se fait dans un terminal connecté au serveur (en général via ssh), en tant qu'utilisateur `scodoc` (*et non* `root`). Se connecter et initialiser la session ainsi: ssh votre.serveur # si nécessaire - su scodoc # idem, + su scodoc # idem, # ou tout autre moyen d'ouvrir un shell comme scodoc - + cd /opt/scodoc source venv/bin/activate @@ -64,12 +64,12 @@ où `admin2` est ici le pseudo du nouvel admin. ### Changement du mot de passe d'un utilisateur Cette opération peut s'effectuer via la page de gestion web des -utilisateurs, mais il est parfois commode de le faire depuis la +utilisateurs, mais il est parfois commode de le faire depuis la console: flask user-password LOGIN -où `LOGIN` est le pseudo de l'utilisateur. Le mot de passe est demandé +où `LOGIN` est le pseudo de l'utilisateur. Le mot de passe est demandé sur la ligne de commande. ### Création d'un nouveau rôle @@ -96,7 +96,7 @@ Ajoute ou retire une permission. Exemples: - flask user-role dupont + flask user-role dupont affiche les rôles de l'utilisateur `dupont`. @@ -122,7 +122,7 @@ Ces commandes sont utilisées par le script de migration de ScoDoc 7 à ScoDoc 9 #### Comptes utilisateurs -Toujours migrer les comptes utilisateurs avant d'importer les +Toujours migrer les comptes utilisateurs avant d'importer les départements. flask import-scodoc7-users @@ -353,7 +353,7 @@ département, qui à son tour peut déléguer des droits. !!! note "Voir aussi" - - [Guide installation](GuideInstallDebian11.md) + - [Guide installation](GuideInstallDebian12.md) - [Gestion des utilisateurs](AdminUsers.md) - [Rôles et permissions](ConfigPermissionsDept.md) - [Configuration des envois d'emails](ConfigEmail.md) diff --git a/docs/GuideDeveloppeurs.md b/docs/GuideDeveloppeurs.md index 63e3a8f79..3fdb06260 100644 --- a/docs/GuideDeveloppeurs.md +++ b/docs/GuideDeveloppeurs.md @@ -153,7 +153,7 @@ Note: la mise à jour par `apt` recrée le virtualenv à chaque fois. - [Conventions de codage](DevConventions.md) - [API ScoDoc 9](ScoDoc9API.md) - - [Guide installation](GuideInstallDebian11.md) + - [Guide installation](GuideInstallDebian12.md) - [Gestion des utilisateurs](AdminUsers.md) - [Guide administrateur ScoDoc](GuideAdminSys.md) - [FAQ](FAQ.md) diff --git a/docs/GuideInstallDebian12.md b/docs/GuideInstallDebian12.md index 516108c74..db06872e4 100644 --- a/docs/GuideInstallDebian12.md +++ b/docs/GuideInstallDebian12.md @@ -17,7 +17,7 @@ donc installer et configurer ScoDoc avec des connaissances réduites sur le système Linux. Cette documentation est prévue pour installer ScoDoc version 9 sur un système -[Debian](http://www.debian.org) 12 (Bullseye, stable) s'exécutant sur une +[Debian](http://www.debian.org) 12 (Bookworm, stable) s'exécutant sur une machine intel-like **64bits** (architecture **AMD64** sur Intel/AMD, ou **aarch64** sur Apple ARM). Debian s'installe facilement en cinq minutes, sur une machine normale ou un serveur virtualisé. Il est **vivement déconseillé** de @@ -38,7 +38,7 @@ VirtualBox ou VMWare, ou UTM sur Mac). L'installation de ScoDoc va en effet modifier de nombreux paramètres de votre système Linux (serveur web, firewall, serveur SQL, messagerie, ...). -## 1) Préalable: configurer un serveur linux +## 1) Préalable: configurer un serveur Linux Le serveur devrait être accessible depuis Internet. @@ -108,7 +108,7 @@ Checklist minimale de votre système Linux Debian: changer leurs mots de passe (bien d'autres fonctions dépendent des mails). Au besoin, revoir la configuration avec `dpkg-reconfigure postfix` (voir aussi [envoi des courriers électroniques](ProblemesMail.md)). - + 1. Vérifiez que votre serveur est accessible depuis une autre machine de votre réseau (voire d'Internet): par exemple `ping serveur.exemple.fr`. 1. Date et heure: vérifier que les dates et heure sont correctes, même après @@ -162,7 +162,7 @@ redémarrer le service: Dans les cas compliqués, il est possible qu'il vous faille configurer d'autres éléments, voir par exemple [ce post sur Stack Overflow](https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy). - + #### Note sur l'install dans un container LXC Il y a deux possibilités : @@ -262,7 +262,7 @@ ou bien le créer afin qu'il contienne juste cette ligne: apt-get install nginx ``` S'assurer que le logiciel `nginx` s'est bien installé. En cas de problème se - référer à sa doc (par exemple, si + référer à sa doc (par exemple, si [votre serveur ne supporte pas IPv6](https://techglimpse.com/nginx-error-address-family-solution/)). @@ -282,7 +282,7 @@ utilisateur `scodoc` qui sera utilisé par le serveur. ``` ### 2.2) Configuration des logiciels et des données - + Lancer le script suivant en tant que `root` sur votre serveur nouvellement installé: ```bash diff --git a/docs/MigrationDonneesScoDoc.md b/docs/MigrationDonneesScoDoc.md index d22e727fc..47f6834db 100644 --- a/docs/MigrationDonneesScoDoc.md +++ b/docs/MigrationDonneesScoDoc.md @@ -1,5 +1,5 @@ -# Migration d'une installation existante de ScoDoc +# Migration d'une installation existante de ScoDoc Marche à suivre pour transférer les données d'un serveur ScoDoc déjà existant vers un autre. Cas d'usage typiques: * changement de machine physique @@ -10,8 +10,8 @@ Marche à suivre pour transférer les données d'un serveur ScoDoc déjà exista Toutes les données seront copiées: bases SQL, configurations, photos, archives, logs. -## Principe -Au lieu de mettre à jour le système Debian, il est préférable de **réinstaller complètement un nouveau serveur**. En effet, ScoDoc utilise certains composants qui ne sont pas fournis dans les versions adéquates par Debian. +## Principe +Au lieu de mettre à jour le système Debian, il est préférable de **réinstaller complètement un nouveau serveur**. En effet, ScoDoc utilise certains composants qui ne sont pas fournis dans les versions adéquates par Debian. L'expérience montre qu'il est plus rapide de **tout réinstaller** sans se poser de questions. D'ailleurs, la plupart des installations étant sur des serveurs virtualisés, cette méthode est souvent plus simple et évite de toucher au serveur en production. J'insiste : **ne tentez pas de mettre à jour le système Debian de votre ancien serveur**, c'est une perte de temps. @@ -22,14 +22,14 @@ Le principe est donc: 3. Copier les données d'un serveur à l'autre (scripts fournis); 4. Tester, puis le cas échéant couper l'ancien serveur et le remplacer par le nouveau. +## Marche à suivre détaillée -## Marche à suivre détaillée -### Installation de Debian et ScoDoc - Voir les instructions ici: [GuideInstallDebian11](GuideInstallDebian11.md). +### Installation de Debian et ScoDoc + Voir les instructions ici: [GuideInstallDebian12](GuideInstallDebian12.md). +### Copie des données d'un serveur à l'autre -### Copie des données d'un serveur à l'autre Il est important de suivre rigoureusement et pas à pas cette procédure: 1. S'assurer que le serveur de départ est à jour (pour avoir le bon script de sauvegarde!): voir [MisesAJour](MisesAJour.md) diff --git a/docs/MigrationScoDoc7a9.md b/docs/MigrationScoDoc7a9.md index 4022b1a72..557107dec 100644 --- a/docs/MigrationScoDoc7a9.md +++ b/docs/MigrationScoDoc7a9.md @@ -1,7 +1,7 @@ # Migration des données ScoDoc 7 vers ScoDoc 9 -On peut installer à partir de zéro (cas 1), ou sur une machine ayant déjà un ScoDoc 7 -et migrer les données (cas 2). +On peut installer à partir de zéro (cas 1), ou sur une machine ayant déjà un ScoDoc 7 +et migrer les données (cas 2). ## Cas 1: Migration d'une installation ScoDoc 7 sur un nouveau serveur @@ -12,7 +12,7 @@ basculer d'une version à l'autre. Dans ce cas, la migration va se faire en suivant les étapes, détaillées plus loin: 1. installer le nouveau serveur Linux Debian 11 et ScoDoc 9; - + 2. sauvegarder les données de ScoDoc7 depuis le serveur de production **et l'arrêter**; 3. charger les données ScoDoc 7 sur le nouveau serveur; @@ -23,9 +23,9 @@ Si vous venez d'installer ScoDoc 9, passez directement à l'**étape 3**. ### Étape 1: Installer le nouveau serveur -Installer le nouveau serveur avec Debian 11 et ScoDoc 9. +Installer le nouveau serveur avec Debian 12 et ScoDoc 9. -Voir [GuideInstallDebian11](GuideInstallDebian11.md). +Voir [GuideInstallDebian12](GuideInstallDebian12.md). Vérifier que tout fonctionne avant d'aller plus loin. @@ -41,7 +41,7 @@ Ouvrir un terminal en tant que `root`sur l'ancien serveur ScoDoc 7. # Export des données ./save_scodoc7_data.sh /tmp/sauvegarde-scodoc7 -Attention à l'espace disque: au besoin, faire le ménage ou montez un disque supplémentaire. +Attention à l'espace disque: au besoin, faire le ménage ou montez un disque supplémentaire. Notez que cette migration ne fonctionne qu'à partir de la dernière version de ScoDoc 7. Si vous avez une version plus ancienne, mettez-la d'abord à jour. @@ -140,24 +140,25 @@ officielle](https://www.debian.org/releases/bullseye/mips64el/release-notes/ch-u est longue, mais en réalité c'est très simple et prends moins de 10 minutes, sauf si vous avez configuré votre système de façon exotique. Nombreux tutos disponibles, voir [par exemple -celui-ci](https://www.cyberciti.biz/faq/update-upgrade-debian-10-to-debian-11-bullseye/). +celui-ci](https://www.cyberciti.biz/faq/update-upgrade-debian-10-to-debian-11-bullseye/). Attention, il faut désinstaller Apache (avant ou après upgrade Linux), car ScoDoc 9 utilise un autre serveur web (nginx) qui serait en conflit: # peut être utile pour récuperer vos certificats SSL ? - mv /etc/apache2 /etc/apache2.old + mv /etc/apache2 /etc/apache2.old apt-get remove --purge apache2 - + ### 3. Installer ScoDoc 9 -Voir [la section 2 du guide d'installation](GuideInstallDebian11.md#2-installation-de-scodoc-sur-debian). + +Voir [la section 2 du guide d'installation](GuideInstallDebian1é.md#2-installation-de-scodoc-sur-debian). Vérifier que tout fonctionne avant d'aller plus loin. ### 4. Migrer vos données ScoDoc 7 -Les données sont restées dans /opt/scodoc7. +Les données sont restées dans `/opt/scodoc7`. Lancer le script suivant en tant que `root`: @@ -186,5 +187,3 @@ Au besoin, réglez la fonction de calcul du **bonus sport&culture** via la page "configuration" accessible depuis la page d'accueil en tant qu'admin uniquement. Célébrez ! - - diff --git a/docs/SauvegardesBases.md b/docs/SauvegardesBases.md index dec216ddc..a87fae620 100644 --- a/docs/SauvegardesBases.md +++ b/docs/SauvegardesBases.md @@ -86,7 +86,8 @@ comptes utilisateurs. # en tant que root... systemctl stop scodoc9 # arret du serveur su - scodoc -dropdb SCODOC # <<< votre base production +cd /opt/scodoc +dropdb SCODOC # <<< votre base production createdb -E UTF-8 SCODOC pg_restore -d SCODOC /tmp/SCODOC_pgdump # (nom du fichier dump) source venv/bin/activate @@ -111,7 +112,7 @@ script Ce script va générer une archive (`tar`, format `.tgz`) contenant non seulement la base de données SQL mais aussi tous les fichiers générés par votre ScoDoc: photos, configurations locales, archives, PV de jurys, logos, etc (tout ceci -étant stocké sous `/opt/scodoc-data`). +étant stocké sous `/opt/scodoc-data`). Attention à l'espace disque: le répertoire destination (`/tmp`dans l'exemple ci-dessus) doit avoir de l'espace (sinon utilisez un autre répertoire dans diff --git a/mkdocs.yml b/mkdocs.yml index c977c620b..b859887af 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -52,7 +52,7 @@ nav: - "FAQ": FAQ.md - Installation: - "Guide administration": GuideAdminSys.md - - "Installation": GuideInstallDebian11.md + - "Installation": GuideInstall12.md - "Mises à jour": MisesAJour.md - "Interfaces SI": InterrogationPortail.md - "Publication des notes": PublicationEtudiants.md From d651b3e2d79e78bf7feb9a9d9857d3e7b4b8238e Mon Sep 17 00:00:00 2001 From: viennet Date: Thu, 30 May 2024 15:32:10 +0200 Subject: [PATCH 6/9] Liens vers install Debian 12 --- docs/FAQ.md | 2 +- docs/GuideInstallDebian11.md | 19 ++++++++++++------- docs/MigrationScoDoc7a9.md | 2 +- mkdocs.yml | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/docs/FAQ.md b/docs/FAQ.md index ca6c5f4d0..127725a0c 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -135,7 +135,7 @@ Voir [la page sur la gestion des logos et images](GestionLogos.md). ScoDoc est accessible depuis n'importe quel navigateur Web (Firefox, Chrome, ...). Le serveur ScoDoc fonctionne sous Linux. Il n'est testé qu'avec Debian (stable). -Le script d'installation ([GuideInstall12](GuideInstallDebian12.md)) +Le script d'installation ([GuideInstallDebian12](GuideInstallDebian12.md)) assure l'installation de tout les éléments nécessaires au bon fonctionnement de ScoDoc. diff --git a/docs/GuideInstallDebian11.md b/docs/GuideInstallDebian11.md index 2573785ce..a3af1247d 100644 --- a/docs/GuideInstallDebian11.md +++ b/docs/GuideInstallDebian11.md @@ -1,6 +1,11 @@ # Installation de ScoDoc 9 sur Debian 11 (Bullseye) + +!!! warning "Nouvelle version" + La version actuelle de Linux est Debian 12: + [voir le guide d'installation à jour](GuideInstallDebian12.md) + Ce document décrit la procédure d'installation et de configuration de ScoDoc 9. Cette procédure doit être effectué sur la machine serveur avec un accès administrateur (root). @@ -102,7 +107,7 @@ Checklist minimale de votre système Linux Debian: changer leurs mots de passe (bien d'autres fonctions dépendent des mails). Au besoin, revoir la configuration avec `dpkg-reconfigure postfix` (voir aussi [envoi des courriers électroniques](ProblemesMail.md)). - + 1. Vérifiez que votre serveur est accessible depuis une autre machine de votre réseau (voire d'Internet): par exemple `ping serveur.exemple.fr`. 1. Date et heure: vérifier que les dates et heure sont correctes, même après @@ -117,8 +122,8 @@ Checklist minimale de votre système Linux Debian: #### Configuration si utilisation d'un proxy Si votre accès à Internet passe par un proxy, l'indiquer au moment de - l'installation Debian. - + l'installation Debian. + Ensuite, dans ScoDoc, indiquer votre proxy: pour cela, éditer le fichier ```/opt/scodoc/.env``` et ajouter les variables d'environnement nécessaires. Typiquement, il s'agit de : @@ -152,7 +157,7 @@ redémarrer le service: éléments, voir par exemple [ce post sur Stack Overflow]( https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy). - + #### Note sur l'install dans un container LXC Il y a deux possibilités : @@ -250,7 +255,7 @@ ou le créer contenant juste cette ligne: apt-get install nginx ``` S'assurer que le logiciel `nginx` s'est bien installé. En cas de problème se - référer à sa doc (par exemple, si + référer à sa doc (par exemple, si [votre serveur ne supporte pas IPv6](https://techglimpse.com/nginx-error-address-family-solution/)). @@ -269,7 +274,7 @@ ou le créer contenant juste cette ligne: ``` ### 2.2) Configuration des logiciels et des données - + Lancer le script suivant en tant que `root` sur votre serveur nouvellement installé: ```bash @@ -308,7 +313,7 @@ Ne pas hésiter à nous contacter (voir [contacts](Contact.md)). Nota: sur certains réseaux, l'autoconfiguration IPv6 pose problème (par exemple: bloquage des envois de mails). Au besoin, il est possible de désactiver IPv6 -(voir par exemple [ici](https://wiki.debian-fr.xyz/D%C3%A9sactiver_l%27IPv6)). +(voir par exemple [ici](https://wiki.debian-fr.xyz/D%C3%A9sactiver_l%27IPv6)). ## Ensuite... diff --git a/docs/MigrationScoDoc7a9.md b/docs/MigrationScoDoc7a9.md index 557107dec..b3ed5738c 100644 --- a/docs/MigrationScoDoc7a9.md +++ b/docs/MigrationScoDoc7a9.md @@ -152,7 +152,7 @@ ScoDoc 9 utilise un autre serveur web (nginx) qui serait en conflit: ### 3. Installer ScoDoc 9 -Voir [la section 2 du guide d'installation](GuideInstallDebian1é.md#2-installation-de-scodoc-sur-debian). +Voir [la section 2 du guide d'installation](GuideInstallDebian12.md#2-installation-de-scodoc-sur-debian). Vérifier que tout fonctionne avant d'aller plus loin. diff --git a/mkdocs.yml b/mkdocs.yml index b859887af..a6b53b03b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -52,7 +52,7 @@ nav: - "FAQ": FAQ.md - Installation: - "Guide administration": GuideAdminSys.md - - "Installation": GuideInstall12.md + - "Installation": GuideInstallDebian12.md - "Mises à jour": MisesAJour.md - "Interfaces SI": InterrogationPortail.md - "Publication des notes": PublicationEtudiants.md From f97d117211ac671ea521a6a64f7551b8d62c279a Mon Sep 17 00:00:00 2001 From: viennet Date: Mon, 17 Jun 2024 08:09:22 -0500 Subject: [PATCH 7/9] balises mail notif abs --- docs/GestionAbsences.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/GestionAbsences.md b/docs/GestionAbsences.md index ca68a3620..8dbc1a2d2 100644 --- a/docs/GestionAbsences.md +++ b/docs/GestionAbsences.md @@ -54,11 +54,24 @@ Pour éviter d'inonder les utilisateurs de messages, plusieurs paramètres sont de notification (comptées en demi-journées); * seuil notifications suivantes: une notifications toutes les *N* absences, après le premier seuil; -* message notification e-mail (template modifiable). +* message notification e-mail (template modifiable, voir ci-dessous). Ces paramètres peuvent être spécifiés globalement ou par semestre (comme pour la plupart des paramètres ScoDoc, voir [PreferencesScoDoc](PreferencesScoDoc.md)). +### Contenu du mail de notification + +Le contenu du mail de notification envoyé est défini par la préférence *Message +notification e-mail*, qui peut contenir des balises remplacées, suivant +l'ancienne syntaxe python `%(nom-balise)s`. + +- `nbabs`: nombre d'absences +- `nbabsjust`: nombre d'absences justifiées +- `nbabsnonjust`: nombre d'absences non justifiées +- `url_ficheetud`: URL de la fiche de l'étudiant (accessible seulement avec authentification) +- `titre_mois`: titre et dates du semestre concerné (ex: "BUT R&T semestre 1 FI (Sept 2022 - Jan 2023)") + + *Absences aux évaluations*: lorsqu'une absence concerne potentiellement une évaluation, le responsable du module concerné peut être prévenu. Limitations: la résolution temporelle de l'absence est la demi-journée, une évaluation peut être From 843a566ed90f53b75704c644c56ce2d5c38773a3 Mon Sep 17 00:00:00 2001 From: viennet Date: Mon, 17 Jun 2024 08:10:12 -0500 Subject: [PATCH 8/9] supr. deb 11 --- docs/MigrationScoDoc7a9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MigrationScoDoc7a9.md b/docs/MigrationScoDoc7a9.md index b3ed5738c..01ca68912 100644 --- a/docs/MigrationScoDoc7a9.md +++ b/docs/MigrationScoDoc7a9.md @@ -11,7 +11,7 @@ basculer d'une version à l'autre. Dans ce cas, la migration va se faire en suivant les étapes, détaillées plus loin: - 1. installer le nouveau serveur Linux Debian 11 et ScoDoc 9; + 1. installer le nouveau serveur Linux Debian et ScoDoc 9; 2. sauvegarder les données de ScoDoc7 depuis le serveur de production **et l'arrêter**; From 8180bae87f49d3d7294221f136c9b4a72ba93b41 Mon Sep 17 00:00:00 2001 From: viennet Date: Mon, 17 Jun 2024 08:10:36 -0500 Subject: [PATCH 9/9] footer --- docs/ScoDocApogee.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/ScoDocApogee.md b/docs/ScoDocApogee.md index 5d1592914..0fd509927 100644 --- a/docs/ScoDocApogee.md +++ b/docs/ScoDocApogee.md @@ -130,3 +130,11 @@ Apogée. - jury de fin de S1: si le S2 est validé; - jury de fin de S3: si le S4 est validé. + + +!!! note "Voir aussi" + + - [Inscription des étudiants via Apogée](InscriptionsEtudApogee.md) + - [Exports des résultats BUT vers Apogée](BUTApogee.md) + - [Guide du responsable de formation](GuideAdminFormation.md) + - [Contacts](Contact.md)