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 + }, + "..." +] +``` +