Compare commits

..

No commits in common. "master" and "modif" have entirely different histories.

122 changed files with 11121 additions and 7430 deletions

View File

@ -1,375 +0,0 @@
# Module Assiduité
!!! warning
Attention vous vous trouvez sur la documentation **_Développeur_** du module Assiduité.
La documentation utilisateur est [ici](Assiduites.md).
Le module Assiduité est le nouveau module introduit en 9.6 permettant la saisie précise de l'assiduité des étudiants et étudiantes.
Ce module a été développé par Matthias HARTMANN, pendant son alternance entre 2022 et 2024 (alternance financée par l'association ScoDoc) et remplace l'ancien module _Absence_.
## Représentation en BDD
Le module Assiduité introduit deux nouveaux objets à la base ScoDoc :
- `Assiduite` : l'objet représentant une assiduité (absent,retard,present)
- `Justificatif` : l'objet représentant un justificatif (permet de justifier ou non une assiduité / plusieurs assiduités)
La modélisation est gérée dans le fichier [app/models/assiduites.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/models/assiduites.py).
### Représentation de l'Assiduité
Le tableau si dessous reprend la représation des données d'une assiduité.
!!! warning
Dans ScoDoc, l'heure affichée doit être celle affichée sur la montre des étudiants.
Assurez vous que la **timezone** du serveur soit la bonne.
| champs | type | commentaire |
| ----------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------- |
| id / assiduite_id | Integer | L'identifiant de l'assiduité |
| date_debut | DateTimeTZ | La date (+heure) de début de l'assiduité. Doit avoir une TIMEZONE |
| date_fin | DateTimeTZ | La date (+heure) de fin de l'assiduité. Doit avoir une TIMEZONE |
| etudid | Integer | L'identifiant de l'étudiant concerné par l'assiduité **(clé externe)** |
| moduleimpl_id | Integer | L'identifiant du moduleimpl concerné par l'assiduité. ([plus d'infos](#moduleimpl)) **Peut être None** **(clé externe)** |
| etat | Integer | L'état de l'assiduité ([plus d'infos](#etats-dassiduite)) |
| description | Text | La description de l'assiduité **Peut être None** |
| entry_date | DateTimeTZ | La date (+heure) de saisie de l'assiduité. Doit avoir une TIMEZONE. Par défaut à la date actuelle |
| user_id | Integer | L'identifiant de l'utilisateur qui a saisie l'assiduité. **Peut être None** **(clé externe)** |
| est_just | Boolean | Indique si l'assiduité est justifiée |
| external_data | JSON | Champs de données JSON peu utilisées dans ScoDoc même mais facilite la vie aux utilisateurs de l'API **Peut être None** |
!!! tip
Il est conseillé d'utiliser les méthodes du modèle Assiduité afin de créer / éditer / supprimer une assiduité.
#### Etats d'assiduité
!!! info
Une classe EtatAssiduite simplifiant la traduction ETAT ↔ VALEUR est disponible dans [app/scodoc/sco_utils.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_utils.py)
| état | valeur |
| ------- | ------ |
| PRESENT | 0 |
| RETARD | 1 |
| ABSENT | 2 |
!!! warning
Seules les assiduités `RETARD` et `ABSENT` peuvent être justifiées.
#### Etudiants
Chaque assiduité est obligatoirement associée à un étudiant (Identite).
Il est possible de récupérer toutes les assiduités d'un étudiant en utilisant la relation à partir du modèle Identite.
```py
etudiant : Identite = Identite.get_etud(1234)
assiduites_etud : Query = etudiant.assiduites
# Identite.assiduites est une query et permet donc les filtrages etc.
# Première absence
prem_abs: Assiduite = assiduites_etud.filter(
Assiduite.etat == scu.EtatAssiduite.ABSENT
).first()
```
#### ModuleImpl
Une assiduité peut être reliée à un ModuleImpl à l'aide du `moduleimpl_id`.
Cependant suite à une demande des utilisateurs, il existe un **FAUX** module nommé `autre`. Ce module permet de contourner la sécurité de la préférence `forcer la saisie d'un module` dans le cas où la saisie d'assiduité n'est pas directement en lien avec un module enregistré dans ScoDoc.
!!! warning
Ce **FAUX** module n'est pas inscrit dans le `moduleimpl_id` mais dans `external_data`.
Voici le format de `external_data` :
```json
{
"module":"Autre",
"cle-non-scodoc" : "valeur-non-scodoc"
}
```
Des fonctions ont été rédigées pour faciliter la gestion de ce **FAUX** module. Elles sont toutes disponibles dans la classe de l'objet Assiduité. ([voir le code](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/models/assiduites.py))
- `get_module` : récupère (si existant) le module associé à l'assiduité
- Si module `ScoDoc` : renvoie l'objet Module (ou le titre du module si la traduction est active)
- Si module `external_data:Autre` : renvoie la chaîne `Autre module (pas dans la liste)`
- Si module `external_data:?` : renvoie la valeur liée à la clé "module" de external_data
- Si pas de module : renvoie None (ou `Module non spécifié` si la traduction est active)
- `get_moduleimpl_id` : récupère (si existant) le moduleimpl_id associé à l'assiduité (comprend le module autre)
- Si moduleimpl `ScoDoc` : renvoie l'id du moduleimpl
- Si module dans `external_data` : renvoie la valeur liée à la clé "module" de external_data
- Si pas de module : renvoie None
- `set_moduleimpl_id` : permet de mettre à jour le moduleimpl_id (prend en compte le module autre)
On peut donner :
- `<int/str:moduleimpl_id>` : l'identifiant d'un moduleimpl
- `"autre"` : le module autre
- `""` : pas de module
### Représentation du Justificatif
Le tableau si dessous reprend la représation des données d'un justificatif.
!!! warning
Dans ScoDoc, l'heure affichée doit être celle affichée sur la montre des étudiants.
Assurez vous que la **timezone** du serveur soit la bonne.
| champs | type | commentaire | |
| -------------- | ---------- | ---------------------------------------------------------------------------------------------------------------- | - |
| id / justif_id | Integer | L'identifiant du justificatif | |
| date_debut | DateTimeTZ | La date (+heure) de début du justificatif. Doit avoir une TIMEZONE | |
| date_fin | DateTimeTZ | La date (+heure) de fin du justificatif. Doit avoir une TIMEZONE | |
| etudid | Integer | L'identifiant de l'étudiant concerné par le justificatif **(clé externe)** | |
| etat | Integer | L'état du justificatif([plus d'infos](#etats-de-justificatif)) | |
| raison | Text | La raison du justificatif**Peut être None** | |
| entry_date | DateTimeTZ | La date (+heure) de saisie du justificatif. Doit avoir une TIMEZONE. Par défaut à la date actuelle | |
| user_id | Integer | L'identifiant de l'utilisateur qui a saisie le justificatif. **Peut être None** **(clé externe)** | |
| fichier | Text | l'identifiant de l'archive justificatif si existante ([plus d'infos](#gestion-des-archives-justificatives)) | |
| external_data | JSON | Champs de données JSON non utilisé dans ScoDoc mais facilite la vie aux utilisateurs de l'API **Peut être None** | |
!!! tip
Il est conseillé d'utiliser les méthodes du modèle Justificatif afin de créer / éditer / supprimer un justificatif.
#### Etats de Justificatif
!!! info
Une classe EtatJustificatif simplifiant la traduction ETAT &leftrightarrow; VALEUR est disponible dans [app/scodoc/sco_utils.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_utils.py)
| état | valeur |
| ---------- | ------ |
| VALIDE | 0 |
| NON_VALIDE | 1 |
| ATTENTE | 2 |
| MODIFIE | 3 |
!!! warning
Seul l'état `VALIDE` permet de justifier des assiduités. Les autres états permettent d'organiser le travail administratif.
#### Etudiants
Chaque justificatif est obligatoirement associé à un étudiant (Identite).
Il est possible de récupérer tous les justificatifs d'un étudiant en utilisant la relation à partir du modèle Identite.
```py
etudiant : Identite = Identite.get_etud(1234)
justificatifs_etud : Query = etudiant.justificatifs
# Identite.justificatifs est une query et permet donc les filtrages etc.
# Première justificatif valide
prem_abs: Justificatif = justificatifs_etud.filter(
Justificatif.etat == scu.EtatJustificatif.VALIDE
).first()
```
## Fonctionnements des Assiduités
### Métriques
Les métriques d'assiduités permettent le suivi de l'assiduité d'un étudiant avec plusieurs niveaux de précisions.
Il existe 4 métriques :
- `compte` : un simple comptage du nombre d'assiduités sans autre calcul
- `journee` : le calcul du nombre de journées concernées par les assiduités (chaque journée n'est comptée qu'une fois)
- `demi` : le calcul du nombre de demi-journées concernées par les assiduités (chaque demi-journée n'est comptée qu'une fois)
- `heure` : le calcul du nombre d'heures concernées par les assiduités.
Ces calculs sont réalisés grâce à la classe `CountCalculator` trouvable dans [app/scodoc/sco_assiduites.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_assiduites.py).
Il n'est pas nécessaire de créer un objet CountCalculator à chaque fois que vous voulez un calcul. Vous pouvez utiliser directement la fonction `sco_assiduites.py#get_assiduites_stats`.
!!! warning
Les métriques sont utilisées dans les bulletins, sidebar et bilan.
Ces valeurs utilisent le [cache](#cache).
### Permissions
Les fonctions relatives aux assiduités utilisent les permissions suivantes :
- `AbsChange` : permet de créer / éditer / supprimer les assiduités
- `AbsJustifView` : permet de voir les informations (descriptions) des assiduités (données personnelles cachées par défaut)
## Fonctionnements des Justificatifs
### Permissions
Les fonctions relatives aux justificatifs utilisent les permissions suivantes :
- `AbsChange` : permet de créer / éditer / supprimer les justificatifs
- `AbsJustifView` : permet de voir les informations (raison, fichiers) des justificatifs (données personnelles cachées par défaut)
- `JustifValidate` : permet de changer l'état d'un justificatif de `Attente` à `Valide` / `Non Valide` / `Modifie`
### Gestion des archives justificatives
L'ensemble des fonctionnalités relatives aux archives justificatives (fichiers importés) est disponible dans le fichier [app/scodoc/sco_archives_justificatifs.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_archives_justificatifs.py)
!!! note
Le système global d'archive est disponible [ici](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_archives.py)
Les archives sont enregistrées dans le dossier `/opt/scodoc-data/archives/`.
Voici la représentation de l'arborescence des fichiers justificatifs:
```text
justificatif/
└── <dept_id>/
└── <etudid/oid>/
└── <archive_id>/
├── [_description.txt]
├── [<filename.ext>]
└── [_trace.csv]
```
Les archives sont organisées par département, puis par étudiant.
#### Archive
L'`archive_id` est une chaîne de caractère générée à l'importation d'un fichier. Il s'agit de la date courante au format `yyyy-mm-dd-hh-MM-ss`.
!!! info
Il existe une archive par justificatif (ayant au moins un fichier importé).
Une archive peut contenir plusieurs fichiers. Chaque fichier est renommé de façon à avoir un nom `serveur` (ascii sans espacement).
##### _description.txt
Le fichier `_description.txt` est généré par l'archiveur global mais n'est pas utilisé ici. (le fichier est vide)
##### _traces.csv
Le fichier `_trace.csv` est un fichier de log généré par l'archiveur. Il permet de tenir un registre des actions qui ont été effectuées sur l'archive. (Il est géré par sa propre classe `Trace` dans [app/scodoc/sco_archives_justificatifs.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_archives_justificatifs.py))
Son contenu est un CSV de la forme :
```csv
nom_fichier_srv,datetime_depot,datetime_suppr,user_id
```
- `nom_fichier_srv` : nom du fichier tel qu'il est enregistré sur le serveur
- `datetime_depot` : datetime au format iso indiquant la date de dépot du fichier
- `datetime_suppr` : datetime au format iso indiquant la date de suppression du fichier **(par défaut None)**
- `user_id` : identifiant de l'utilisateur ayant déposé le fichier.
!!! info
le champs `user_id` est utilisé par ScoDoc pour afficher au non le fichier aux utilisateurs.
Seuls l'utilisateur qui a importé le fichier et ceux ayant la permission `JustifView` peuvent voir le fichier.
#### Gestion des fichiers
La classe `JustificatifArchiver` possède plusieurs fonctions pour simplifier la gestion des fichiers.
- `save_justificatif` : enregistre un fichier pour un étudiant. Génère l'archive si elle n'existe pas. Génère le fichier trace s'il n'existe pas et log le fichier. Renvoie le nom de l'archive et le nom du fichier (traduit en nom serveur).
- `delete_justificatif` : supprime un fichier d'une archive d'un étudiant. (Ajoute à la trace l'action). Si on ne donne pas de nom de fichier, supprime l'archive (et donc tous ses fichiers).
- `list_justificatifs` : retourne la liste des fichiers avec l'user_id de l'importateur.
- `get_justificatif_file` : renvoie une réponse de téléchargement (pour les vues) du fichier demandé.
- `remove_dept_archive` : supprime toutes les archives d'un département, supprime aussi toutes les traces
## Cache
Le module assiduité utilise le cache pour stocker temporairement certaines informations qui demandent des calculs importants.
### Classes liées
Il y a deux classes concernant les caches du module :
- `RequeteTableauAssiduiteCache` qui gère les caches liés aux calendrier et tableaux d'assiduité.
- `AbsSemEtudCache` qui gère les caches liés aux comptes d'absences (nonjust et just) utilisées dans les semestres
!!! info
Les classes liées aux caches se retrouvent dans le fichier [app/scodoc/sco_cache.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_cache.py)
### Fonctions liées
Des fonctions simplifiant la gestion des caches sont disponibles dans [app/scodoc/sco_assiduites.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_assiduites.py) (aussi appelé `scass`)
#### Récupération de valeurs
- `get_assiduites_count(etudid: int, sem: dict)` : retourne le nombre d'absences de l'étudiant dans le semestre donné.
- `formsemestre_get_assiduites_count(etudid: int, formsemestre: FormSemestre, moduleimpl_id: int = None)` : retourne le nombre d'absences de l'étudiant dans le semestre donné. (filtrage avec un moduleimpl possible)
- `get_assiduites_count_in_interval` : fonction utilisée par les deux fonctions du dessus (et par d'autres) qui s'occupe du calcul et de la mise en cache.
!!! info
Les valeurs des tableaux sont directement calculés dans la génération des tableaux. Plus d'informations dans la partie dédiée aux [tableaux](#tableaux)
#### Invalidations
- `simple_invalidate_cache(obj: dict, etudid: str | int = None)` : invalide le cache à partir d'un objet et d'un etudiant. Permet d'invalider tous les caches (semestre **et** tableaux).
- `invalidate_assiduites_count(etudid: int, sem: dict)` : invalide les calculs d'absences (nb just/njust) pour un semestre
- `invalidate_assiduites_etud_date(etudid: int, the_date: datetime)` : invalide les cache de semestre,bulletin et absence (calcul nb just, njust)
!!! tip
Le plus simple pour invalider le cache est d'utiliser la fonction `simple_invalidate_cache` car elle invalide tous les caches en utilisant les autres fonctions d'invalidation.
C'est la fonction la plus sûre concernant l'invalidation des caches du module Assiduité.
## Vues
Le module Assiduité propose des éléments variés pour les pages.
Ces éléments sont ensuite utilisés dans le script de vue du module ([app/views/assiduites.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/views/assiduites.py))
### Calendriers
Le module assiduité propose un calendrier pour voir l'assiduité d'un étudiant sur une année.
La vue se nomme `calendrier_assi_etud` et peut servir d'exemple sur l'utilisation du générateur de calendrier (les classes `JourAssi` et `CalendrierAssi` sont définies en bas du script de la vue)
La génération des calendriers utilise le script [app/scodoc/sco_gen_cal.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/scodoc/sco_gen_cal.py)
!!! tip
Ce même script possède la fonction `calendrier_choix_date` permettant d'afficher un calendrier pour choisir un jour ou une semaine entre deux dates données.
### Formulaires
Les formulaires sont une partie importante des UI du module Assiduité.
L'ensemble des formulaires du module peut se trouver dans les fichiers suivants :
- [app/forms/assiduite/ajout_assiduite_etud.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/forms/assiduite/ajout_assiduite_etud.py) : Formulaires d'ajout d'une assiduité, d'ajout d'un justificatif et de modification d'un justificatif
- [app/forms/assiduite/edit_assiduite_etud.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/forms/assiduite/edit_assiduite_etud.py) : Formulaire de modification d'une assiduité
Ces formulaires (basés sur Flask-WTF) sont ensuite utilisés dans les [templates jinja](#templates).
### Tableaux
Il y a 2 type de tableaux d'assiduité. Le tableau simple utilisé dans la page `visu_assi_group` et les tableaux complexes qui sont présentés dans les pages suivantes :
- `bilan_dept`
- `bilan_etud`
- `ajout_assiduite_etud`
- `ajout_justificatif_etud`
- `recup_assiduites_plage`
Les tableaux simples sont gérés par le fichier [app/tables/visu_assiduites.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/tables/visu_assiduites.py)
Les tableaux complexes sont gérés par le fichier [app/tables/liste_assiduites.py](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/tables/liste_assiduites.py). Ceux-ci sont plus polyvalents et utilise le système de cache.
!!! info
Une fonction a été écrite pour faciliter la préparation des tableaux complexes, elle se nomme `_prepare_tableau` et se trouve dans le fichier de [vues](#vues).
La vue `recup_assiduites_plage` est un bon exemple d'utilisation des tableaux complexes.
### Templates
L'ensemble des templates du module assiduité est organisé dans le dossier [app/templates/assiduites](https://git.scodoc.org/ScoDoc/ScoDoc/src/branch/master/app/templates/assiduites)
On y retrouvera les `pages` (l'organisation des éléments de UI/UX et des scripts de fonctionnement) et les `widgets` (Des éléments d'UI/UX qui seront intégrés dans une page)
Les templates liés aux pages ont le même nom que la vue qui l'utilise.
Exemple : `ajout_assiduite_etud` &rightarrow; `ajout_assiduite_etud.j2`

View File

@ -40,7 +40,6 @@ L'architecture d'une formation BUT est définie par un *référentiel de
compétence* définissant notamment les éléments suivants: compétence* définissant notamment les éléments suivants:
- **Compétence** - **Compétence**
- Niveau - Niveau
- Composantes essentielles ("En respectant les règles métiers...") - Composantes essentielles ("En respectant les règles métiers...")
- Situations professionnelles ("Surveillance de la qualité de la - Situations professionnelles ("Surveillance de la qualité de la
@ -49,7 +48,6 @@ compétence* définissant notamment les éléments suivants:
- **Niveaux de compétence**: la compétence est divisée en niveaux, associés à - **Niveaux de compétence**: la compétence est divisée en niveaux, associés à
une année de la formation. Le premier niveau 1 commence souvent en première une année de la formation. Le premier niveau 1 commence souvent en première
année (BUT1), mais parfois en deuxième année (BUT2). Le niveau est défini par année (BUT1), mais parfois en deuxième année (BUT2). Le niveau est défini par
- Numéro (1, 2, 3) - Numéro (1, 2, 3)
- Titre - Titre
- Apprentissages critiques (AC): "Identifier les dysfonctionnements du réseau local..." - Apprentissages critiques (AC): "Identifier les dysfonctionnements du réseau local..."
@ -150,23 +148,6 @@ Dans ScoDoc, on va éditer les coefficients des modules sur cette page
(voir [l'exemple complet du paramétrage d'un BUT](BUTExempleInfo.md)). (voir [l'exemple complet du paramétrage d'un BUT](BUTExempleInfo.md)).
#### Note: calcul des coefficients lorsqu'on sépare ressources et SAÉs
Certaines formations souhaitent fixer explicitement les parts respectives des ressources et SAÉs au sein d'une UE.
Par exemple, 60% pour les ressources et 40% pour les SAÉs.
Supposons que l'on ait deux ressources de coefficients $r_1=2$ et $r_2=3$, et
deux SAÉs de coefficients $s_1=4$ et $s_2=5$. Dans cet exemple, la somme des
coefficients est de 14, et la part des ressources est de $5 / 14 = 35,7$%. Pour
obtenir l'équilibre souhaité, il faut diviser les coefficients des ressources
par leur somme et les multiplier 60. Ici la somem des coefficients des ressources est de 5, et celle des SAÉs est de 9.
On aura donc dans cet exemple:
- $r_1 = 2 / 5 \times 60 = 24$
- $r_2 = 3 / 5 \times 60 = 36$
- $s_1 = 4 / 9 \times 40 = 17,8$
- $s_2 = 5 / 9 \times 40 = 22,2$
### Validation d'une UE ### Validation d'une UE
La validation ou non d'une UE dépend uniquement de la moyenne générale (et des La validation ou non d'une UE dépend uniquement de la moyenne générale (et des

View File

@ -195,40 +195,6 @@ Dans chaque module, on peut régler les inscriptions:
<img src="/screens/but-info-inscr-module.png" width="30%"> <img src="/screens/but-info-inscr-module.png" width="30%">
## Cas particulier: coefficients variables d'un parcours à l'autre
Dans certains, cas, les coefficients d'une ressource ou SAÉ ne sont pas les
mêmes dans tous les parcours, ou bien diffèrent d'une modalité à l'autre
(formation initiale et apprentissage). Il est possible de traiter cela en créant
différentes copies de la ressource, par exemple
- Anglais_A
- Anglais_B
<img src="/screens/formation-ressources-AB.png" width="30%">
Les deux vont apparaitre dans le tableau de coefficients où il sera possible de
les différencier:
<img src="/screens/formation-coefs-AB.png" width="30%">
Ensuite, suivant les cas:
- si vos parcours ou modalité sont dans des *formsemestres* différents, choisir
dans chacun la (ou les) ressources adaptées. Dans l'exemple ci-dessous, ce
semestre n'utilise que les modules du parcours A et ceux de tronc commun
(comme le stage):
<img src="/screens/formsemestre-choix-modules-parcours-A.png" width="50%">
- si le *formsemestre* regroupe des étudiants de parcours différents, cocher les
modules des parcours concernés, et inscrire sélectivement les étudiants.
Dans l'exemple ci-dessous on a inscrit les étudiants du groupe de parcours A
au module "A", et B au module "B".
<img src="/screens/formsemestre-choix-modules-parcours.png" width="50%">
!!! note "Voir aussi" !!! note "Voir aussi"
- [Le BUT: détails et calculs](BUT.md) - [Le BUT: détails et calculs](BUT.md)

View File

@ -69,8 +69,8 @@ Les options sont:
* *faire figurer les UE validées sur les bulletins* : code jury des UE * *faire figurer les UE validées sur les bulletins* : code jury des UE
* *publier le bulletin sur le passerelle étudiants*: contrôle l'export XML des * *publier le bulletin sur le portail étudiants*: contrôle l'export XML des
bulletins, utilisé par la passerelle étudiant. Désactiver si vous ne voulez pas bulletins, utilisé par le portail étudiant. Désactiver si vous ne voulez pas
que les étudiants puisse lire leurs bulletins. que les étudiants puisse lire leurs bulletins.
* *Bannière "provisoire" sur les bulletins*: affiche la mention "Provisoire" (ou * *Bannière "provisoire" sur les bulletins*: affiche la mention "Provisoire" (ou

View File

@ -77,13 +77,12 @@ Ici trois champs nous intéressent:
- **Identifiant CAS**: nécessaire - **Identifiant CAS**: nécessaire
- **Autorise connexion via CAS**: spécifie si ce compte peut ou non se connecter via CAS. - **Autorise connexion via CAS**: spécifie si ce compte peut ou non se connecter via CAS.
- **Autorise connexion via ScoDoc**: spécifie si cet utilisateur peut se connecter via - **Autorise connexion via ScoDoc**: spécifie si cet utilisateur peut se connecter via
ScoDoc, sans CAS, lorsque le CAS est activé. Ceci est nécessaire par ScoDoc, sans CAS, lorsque le CAS est activé et forcé. Ceci est nécessaire par
exemple pour des comptes utilisés pour l'API, ou bien pour des personnes exemple pour des comptes utilisés pour l'API, ou bien pour des personnes
extérieures à l'établissement et qui ne seraient pas (encore) dans le CAS. extérieures à l'établissement et qui ne seraient pas (encore) dans le CAS.
En cas de besoin, les comptes "super-admin" peuvent toujours se connecter à En cas de besoin, les comptes "super-admin" peuvent toujours se connecter à ScoDoc sans CAS: si le
ScoDoc sans CAS: si le forçage est activé, il leur faut passer par une adresse forçage est activé, il leur faut passer par une adresse spéciale:
spéciale:
```text ```text
https://votre.serveur.scodoc.fr/auth/login_scodoc https://votre.serveur.scodoc.fr/auth/login_scodoc
@ -96,34 +95,6 @@ spéciale:
le CAS, pensez à autoriser les comptes de l'API à se connecter sur ScoDoc sans le CAS, pensez à autoriser les comptes de l'API à se connecter sur ScoDoc sans
CAS. CAS.
### Règles de connexion
Résumé pour s'y retrouver dans les paramètres:
- Au niveau de la config globale de ScoDoc:
- CAS peut être *activé* ou non.
- S'il est activé, il peut être *forcé* ou non.
- Au niveau de chaque compte utilisateur:
- on a (ou non) un "Identifiant CAS" (`cas_id`);
- on autorise ou non la connexion via CAS (`cas_allow_login`)
- on autorise ou non la connexion via l'identifiant ScoDoc quand CAS est activé (`cas_allow_scodoc_login`)
L'utilisateur pourra se connecter **via un identifiant ScoDoc** (rappel: *c'est
nécessaire pour les comptes API*), si et seulement si:
- CAS non activé
- ou compte super-admin
- ou `cas_allow_scodoc_login` et pas (`cas_id` renseigné et `cas_allow_login` et CAS forcé)
(donc si il a `cas_allow_scodoc_login` mais pas de `cas_id`, il pourra se
connecter via ScoDoc même si on a *forcé* le CAS).
L'utilisateur pourra se connecter **en CAS** si et seulement si:
- CAS activé et `cas_id` renseigné (ou règle de config. automatique)
## Sécurité: permissions et informations ## Sécurité: permissions et informations
L'utilisateur connecté via CAS a exactement les mêmes permissions que s'il L'utilisateur connecté via CAS a exactement les mêmes permissions que s'il
@ -180,10 +151,9 @@ INFO: CAS login denied for cas_id=prenom.nom (unknown or inactive)
L'authentification des clients de l'API utilise un jeton (*token*), qui est L'authentification des clients de l'API utilise un jeton (*token*), qui est
demandé par l'appel `/ScoDoc/api/tokens` (qui lui même appelle demandé par l'appel `/ScoDoc/api/tokens` (qui lui même appelle
`User.get_token()`). Ce mécanisme ne passe jamais par le CAS, à condition que le `User.get_token()`). Ce mécanisme ne passe jamais par le CAS, à condition que le
compte utilisateur utilisé par l'API soit "*Autorisé à se connecter via compte utilisateur utilisé par l'API soit "*Autorisé à se connecter via ScoDoc*"
ScoDoc*", et pas autorisé à utiliser le CAS (`cas_allow_login` faux). (voir le (voir le formulaire plus haut, [configuration des
formulaire plus haut, [configuration des utilisateurs](#configuration-des-utilisateurs)).
utilisateurs](#configuration-des-utilisateurs))
!!! note "Voir aussi" !!! note "Voir aussi"

View File

@ -1,7 +1,7 @@
# Conventions de codage pour ScoDoc # Conventions de codage pour ScoDoc
Le projet étant très ancien, le code est passé par différentes conventions et Le projet étant très ancien, le code est passé par différentes conventions et
frameworks. Le style de python et celui du _frontend_ web ont considérablement frameworks. Le style de python et celui du *frontend* web ont considérablement
évolués ces dernières décennies. évolués ces dernières décennies.
Pour les nouveaux codes, respecter les principes suivants: Pour les nouveaux codes, respecter les principes suivants:
@ -16,22 +16,20 @@ Pour les nouveaux codes, respecter les principes suivants:
conduit à dupliquer du code (qui existe en général dans le serveur) et conduit à dupliquer du code (qui existe en général dans le serveur) et
augmente les coûts de maintenance. augmente les coûts de maintenance.
## Conventions de codage ## Formatage du code
### Formatage du code
- l'usage de **[black](https://black.readthedocs.io/en/stable/)** est obligatoire - l'usage de **[black](https://black.readthedocs.io/en/stable/)** est obligatoire
- l'usage de pylint et mypy est fortement recommandé - l'usage de pylint et mypy est fortement recommandé
- Pour le code JS, indentation avec 2 espaces (sous VS Code, utiliser _Prettier_). - Pour le code JS, indentation avec 2 espaces (sous VS Code, utiliser *Prettier*).
### Conventions standard Python ## Conventions standard Python
On se tient à la PEP8, c'est à dire en résumé: On se tient à la PEP8, c'est à dire en résumé:
`UneClasse`, `une_fonction`, `_une_fonction_privee`, `une_variable`, `UNE_CONSTANTE_GLOBALE`. `UneClasse`, `une_fonction`, `_une_fonction_privee`, `une_variable`, `UNE_CONSTANTE_GLOBALE`.
Les noms de fichiers sont en minuscules sans accents ni espaces, `comme_ceci.py`. Les noms de fichiers sont en minuscules sans accents ni espaces, `comme_ceci.py`.
### Annotations de type (typehints) ## Annotations de type
On annote les paramètres et résultats des fonctions. On annote les paramètres et résultats des fonctions.
@ -42,9 +40,9 @@ def _upload_justificatif_files(
... ...
``` ```
## Pages et templates ## Vues et templates
Les vues utilisent un template _Jinja2_, fichier avec extension j2. Les vues utilisent un template *Jinja*, fichier avec extension j2.
On s'astreint, sauf cas particulier, à un nommage identique de la route, la vue et du template. On s'astreint, sauf cas particulier, à un nommage identique de la route, la vue et du template.
@ -55,136 +53,15 @@ def un_exemple(...):
return render_template(".../un_exemple.j2") return render_template(".../un_exemple.j2")
``` ```
Le template aura typiquement avec la structure suivante:
```jinja
{% extends "sco_page.j2" %}
{% block app_content %}
<h1>Titre</h1>
{% endblock app_content %}
```
Pour les pages dans un semestre (avec barre menu etc.), on utilisera `<h2>` au
lieu de `<h1>`.
### Templates habituels
Les templates suivants sont les plus utilisés pour les pages:
- `base.j2` pages hors département (accueil, configuration, ...)
- `sco_page.j2` page standard dans un formsemestre: avec sidebar et barre de
menu du semestre. Le contenu de la variable `content` est placé comme HTML
brut (_safe_) dans la partie contenu. Passer `sco=ScoData(formsemestre=formsemestre)`
en argument au template.
- `sco_page_dept.j2` page dans un département (avec sidebar) mais sans formsemestre (pas de
barre de menu)
### Constantes définies dans les templates ScoDoc
Le `context_processor` `inject_sco_utils()` ajoute des objets pour accès à tous
les templates ScoDoc:
- `scu` : le module `sco_utils.py` (diverses fonctions utilitaires et variables
de config.)
- `sco` : des données sur le contexte, notamment les préférences, le
formsemestre et l'étudiant courants (resp. `sco.formsemestre` et `sco.etud`)
### Appel d'un template page
Pour mémoire, l'appel d'un template dans une vue se fait ainsi:
```py
render_template( "votre_template.j2",
title="Changer de référentiel de compétences",
autre_variable=...
)
```
### Passage des anciennes pages ScoDoc 7 aux templates Jinja
Les anciennes pages étaient générées en python selon la structure:
```py
html_sco_header.sco_header(
cssstyles=["css/....css"],
javascripts=[
"js/....js",
],
page_title="titre de la page",
)
... contenu ...
html_sco_header.sco_footer()
```
La migration la plus simple consiste à utilise `sco_page.j2`:
```py
render_template(
"sco_page.j2",
content=contenu,
title="titre de la page",
cssstyles=["..."],
javascripts=["..."],
)
```
Mais si on souhaite générer le contenu dans un template, cela prendra la forme:
```jinja-html
{% extends "sco_page.j2" %}
{% block title %}
...titre...
{% endblock title %}
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="{{scu.STATIC_DIR}}/css/un_style_scodoc.css">
<style>
... styles locaux ...
</style>
{% endblock styles %}
{% block app_content %}
<div class="pageContent">
<h2>titre page</h2>
... contenu ...
</div>
{% endblock %}
{% block scripts %}
{{ super() }}
<script src="{{scu.STATIC_DIR}}/js/un_script_scodoc.js"></script>
<script>
... script js local ...
</script>
{% endblock %}
```
### Classes css
`scodoc.css` (et à partir de 9.7, `scodoc97.css`) définissent quelques classes à usage général:
- `div.scobox`: boite (bords arrondis, fond uni) regroupant des éléments.
- `div.scobox-title` le titre de la boite
- `div.scobox-buttons` boutons en bas de boite.
- `p.help`, `div.help`: explications, aide.
- ...
## Accès à la base de donnée ## Accès à la base de donnée
Sauf exception (requêtes exotiques, problèmes de performance) à discuter, les Sauf exception (requêtes exotiques, problèmes de performance) à discuter, les
accès à la base se font à travers l'ORM _SQLAlchemy_. Les modèles sont définis accès à la base se font à travers l'ORM *SQLAlchemy*. Mes modèles sont définis
dans `app/models`, sauf les comptes utilisateurs qui sont dans dans `app/models`, sauf les comptes utilisateurs qui sont dans
`/app/auth/models.py`. `/app/auth/models.py`.
Au moment de la définition de nouveaux modèles, éviter si possible les champs Au moment de la définition de nouveaux modèles, éviter si possible les champs
_nullables_, penser à créer là où ce sera utile des index. *nullables*, penser à créer là où ce sera utile des index.
## Tableaux ## Tableaux
@ -192,76 +69,19 @@ ScoDoc génère beaucoup de tableaux, sauf exception destinés à l'affichage We
On utilise la super-classe `Table` de `app/tables/table_builder.py`. On utilise la super-classe `Table` de `app/tables/table_builder.py`.
Le rendu HTML utilise _DataTables_. Le rendu HTML utilise *DataTables*.
## Dates et heures ## Dates et heures
ScoDoc, contrairement à de nombreuses applications, est centré sur les ScoDoc, contrairement à de nombreuses applications, est centré sur les
_étudiants_ et les enseignements, qui sont censés opérer dans le fuseau horaire *étudiants* et les enseignements, qui sont censés opérer dans le fuseau horaire
du serveur. Cela signifie que, quelle que soit l'emplacement de l'utilisateur, du serveur. Cela signifie que, quelle que soit l'emplacement de l'utilisateur,
les heures affichées et saisies par ScoDoc seront données dans le fuseau horaire les heures affichées et saisies par ScoDoc seront données dans le fuseau horaire
du serveur. du serveur.
L'API publie et reçoit des heures au format ISO avec fuseau horaire (_timezone_) et n'est pas L'API publie et reçoit des heures au format ISO avec fuseau horaire (*timezone*) et n'est pas
concernée par cette remarque. concernée par cette remarque.
## Sélection de groupes
De nombreuses pages ont besoin d'offrir un moyen de sélectionner un ou plusieurs
groupes d'étudiants, comme dans cet exemple:
![menu multiselect des groupes](screens/multiselect_groups.png)
La vue doit récupérer la liste des groupes sélectionnés ainsi:
```py
group_ids = request.args.getlist("group_ids")
```
ou s'il s'agit un `POST`:
```py
group_ids = request.form.getlist("group_ids")
```
On converti ensuite les arguments en entiers:
```py
try:
group_ids = [int(gid) for gid in group_ids]
except ValueError as exc:
raise ScoValueError("group_ids invalide") from exc
```
et on peut utiliser le code ancien `sco_groups_view`:
```py
groups_infos = sco_groups_view.DisplayedGroupsInfos(
group_ids,
formsemestre_id=formsemestre.id,
select_all_when_unspecified=True,
)
```
`groups_infos` est un objet qui permet de récupérer les informations et de générer le menu.
Par exemple:
```py
Choix des groupes&nbsp;:
{sco_groups_view.menu_groups_choice(groups_infos, submit_on_change=True)
if groups_infos else ''}
```
La fonction `form_groups_choice` génère un formulaire complet.
Autres attributs/méthodes utiles de `groups_infos`:
- `get_etudids():list[int]` : les ids des étudiants des groupes sélectionnés;
- `groups_titles:str` : titres des groupes;
- `groups_filename:str`: un (morceau de) nom de fichier pour ces groupes.
!!! note "Voir aussi" !!! note "Voir aussi"

View File

@ -28,7 +28,7 @@ notes des étudiants inscrits à cette évaluation sont saisies, soit parce qu'i
s'agit d'une évaluation avec "prise en compte immédiate". s'agit d'une évaluation avec "prise en compte immédiate".
Les **étudiants n'ont pas accès à ScoDoc**, et ne peuvent donc pas voir leurs Les **étudiants n'ont pas accès à ScoDoc**, et ne peuvent donc pas voir leurs
notes, sauf si une interface spécifique est configurée ("passerelle", avec notes, sauf si une interface spécifique est configurée ("portail", avec
affichage sur leur ENT en général, cet affichage pouvant être désactivé depuis affichage sur leur ENT en général, cet affichage pouvant être désactivé depuis
ScoDoc pour un semestre particulier). A défaut, il faut leur envoyer leurs ScoDoc pour un semestre particulier). A défaut, il faut leur envoyer leurs
bulletins par mail. bulletins par mail.
@ -88,21 +88,6 @@ Voir [la page dédiée](BonusMalus.md), ou bien pour les bonus sport
2. Lorsqu'il n'y a plus de notes, une croix rouge apparait sur le tableau de 2. Lorsqu'il n'y a plus de notes, une croix rouge apparait sur le tableau de
bord du module: cliquer dessus pour supprimer l'évaluation. bord du module: cliquer dessus pour supprimer l'évaluation.
### Passage de formation initiale à apprentissage
Après quelques semaines, il arrive de basculer un étudiant de formation initiale
pour l'inscrire en apprentissage, ou l'inverse.
En général les évaluations ne sont pas exactement les mêmes dans les deux
modalités, et parfois (souvent) l'adaptation locale diffère (coefficients, choix
des ressources/SAE). Pour ces raisons, ScoDoc ne peut pas automatiquement
recopier les notes d'un semestre à l'autre. Vous devez, au cas par cas, le faire
manuellement.
Bon à savoir: quand on désincrit un étudiant d'un semestre, cela n'efface pas
ses notes: si on réinscrit l'étudiant au même semestre, il retrouve magiquement
ses notes: utile si on a oublié de le recopier avant de le désinscrire.
## Les formations ## Les formations
### Quelles formations peuvent être gérées par ScoDoc ### Quelles formations peuvent être gérées par ScoDoc
@ -115,12 +100,6 @@ de technologie et son approche par compétences (APC) particulière.
ScoDoc est utilisé pour de nombreuses licences professionnelles, masters, ScoDoc est utilisé pour de nombreuses licences professionnelles, masters,
formations d'ingénieurs. formations d'ingénieurs.
### Le Bachelor Universitaire de Technologie
ScoDoc étant très utilisé en IUT, il offre de nombreuses fonctions dédiées au
BUT. Voir notamment [le principe du calcul des notes en BUT](BUT.md) et [un exemple de
modélisation de la spécialité BUT Informatique](BUTExempleInfo.md).
### En IUT, comment gérer les licences professionnelles ? ### En IUT, comment gérer les licences professionnelles ?
* On peut créer un département regroupant les licences, ou bien rattacher * On peut créer un département regroupant les licences, ou bien rattacher
@ -132,11 +111,6 @@ automatiquement accès à leur parcours complet).
semestre (pas de jury à mi-parcours). Indiquer "*pas de semestre*" dans semestre (pas de jury à mi-parcours). Indiquer "*pas de semestre*" dans
l'option "*Semestre dans la formation*" (page "*modification du semestre*"). l'option "*Semestre dans la formation*" (page "*modification du semestre*").
* les "nouvelles" licences pro en "blocs de compétences" ne sont pas encore
entièrement prises en charge par ScoDoc. Utiliser par exemple "Licence pro en un
semestre 2014" et calculer vous-même les moyennes de blocs non proposées par
ScoDoc.
## Les jurys ## Les jurys
### Les ECTS ne s'affichent pas ### Les ECTS ne s'affichent pas
@ -154,6 +128,8 @@ programme de la formation.
Les UEs peuvent être validées par le jury d'un semestre: le compte est affiché Les UEs peuvent être validées par le jury d'un semestre: le compte est affiché
sur une colonne à droite du tableau **Jury / Voir les décisions de jury**. sur une colonne à droite du tableau **Jury / Voir les décisions de jury**.
### L'étudiant n'est pas diplômé ### L'étudiant n'est pas diplômé
Vérifiez qu'il a bien obtenu tous ces ECTS. Vérifiez qu'il a bien obtenu tous ces ECTS.
@ -191,6 +167,7 @@ Les utilisateurs autorisés peuvent facilement voir:
Les administrateurs (informaticiens) peuvent aussi consulter les journaux (logs) Les administrateurs (informaticiens) peuvent aussi consulter les journaux (logs)
du serveur, voir ["où sont les journaux"](#ou-sont-les-journaux-logs). du serveur, voir ["où sont les journaux"](#ou-sont-les-journaux-logs).
## Configuration ## Configuration
### Comment changer les logos sur les documents PDF (PV...) ### Comment changer les logos sur les documents PDF (PV...)

View File

@ -112,7 +112,7 @@ bibliothèques, ou autres expériences de ce genre, vous pouvez le récréer ain
Puis soit vous installez les versions "officielles" (testées) Puis soit vous installez les versions "officielles" (testées)
```bash ```bash
pip install -r requirements-3.11.txt pip install -r requirements-3.9.txt
``` ```
Soit vous prenez les versions les plus à jour disponibles. Une façon rapide de Soit vous prenez les versions les plus à jour disponibles. Une façon rapide de
@ -134,7 +134,7 @@ Enfin, pour mettre à jour les paquets pip, il faut dégeler les versions (unpin
puis upgrader et re-générer le fichier, comme suit: puis upgrader et re-générer le fichier, comme suit:
```bash ```bash
cp requirements-3.11.txt requirements.txt cp requirements-3.11.txt requirements.text
sed -i 's/[~=]=/>=/' requirements.txt sed -i 's/[~=]=/>=/' requirements.txt
pip install -U -r requirements.txt pip install -U -r requirements.txt
pip freeze > requirements-new.txt pip freeze > requirements-new.txt

View File

@ -1,35 +1,32 @@
# Interface avec un "portail" externe # Interface avec un "portail" externe
ScoDoc peut interagir avec un "portail" donnant des informations sur les étudiants.
Ceci permet de synchroniser les données ScoDoc avec celles des applications
externes comme Apogée. Pour simplifier l'administration, nous avons fait le choix
d'intercaler entre ScoDoc et les applications type Apogée un "portail"
(centralisation des autorisations, etc).
ScoDoc peut interagir avec un "portail" donnant des informations sur les Le portail interroge aussi ScoDoc (en particulier pour la publication des bulletins et pour
étudiants. Ceci permet de synchroniser les données ScoDoc avec celles des effectuer l'export des décisions de jury vers Apogée). Voir les services offerts par ScoDoc
applications externes comme Apogée. Pour simplifier l'administration, nous avons sur la page [ServicesXml](ServicesXml.md).
fait le choix d'intercaler entre ScoDoc et les applications type Apogée un
"portail" (centralisation des autorisations, etc).
Le portail interroge aussi ScoDoc (en particulier pour la publication des L'adresse du portail est indiquée dans la préférence ```portal_url``` (voir [PreferencesScoDoc](PreferencesScoDoc.md)).
bulletins et pour effectuer l'export des décisions de jury vers Apogée). Voir
les services offerts par ScoDoc sur la page [ServicesXml](ServicesXml.md).
L'adresse du portail est indiquée dans la préférence ```portal_url``` (voir
[PreferencesScoDoc](PreferencesScoDoc.md)).
Le code d'interface est dans le fichier source `sco_portal_apogee.py`. Le code d'interface est dans le fichier source `sco_portal_apogee.py`.
Les trois appels suivants sont utilisés: Les trois appels suivants sont utilisés:
- `getEtud` : information sur un étudiant * `getEtud` : information sur un étudiant
- `getEtapes` : liste des étapes Apogée * `getEtapes` : liste des étapes Apogée
- `getPhoto` : image de l'étudiant * `getPhoto` : image de l'étudiant
Ces appels sont détaillés dans les sections suivantes. Ces appels sont détaillés dans les sections suivantes.
## Information sur un étudiant
Le portail doit fournir une méthode web `getEtud.php` qui accepte les paramètres ### Information sur un étudiant
suivants: Le portail doit fournir une méthode web `getEtud.php` qui accepte les paramètres suivants:
- `nip` : code NIP - `nip` : code NIP
@ -43,10 +40,9 @@ suivants:
- `etape` : code étape Apogée - `etape` : code étape Apogée
On peut spécifier un nombre quelconque de paramètres; `getEtud.php` recherche On peut spécifier un nombre quelconque de paramètres; `getEtud.php` recherche les étudiants
les étudiants correspondant aux critères indiqués, et renvoie du code XML: correspondant aux critères indiqués, et renvoie du code XML:
```
```xml
<etudiants> <etudiants>
<etudiant> <etudiant>
<nip>20600577</nip> <nip>20600577</nip>
@ -77,7 +73,6 @@ les étudiants correspondant aux critères indiqués, et renvoie du code XML:
<ville_lycee>ville lycée</ville_lycee> <ville_lycee>ville lycée</ville_lycee>
<codepostal_lycee>code postal lycée</codepostal_lycee> <codepostal_lycee>code postal lycée</codepostal_lycee>
<datefinalisationinscription>10/07/24</datefinalisationinscription>
<paiementinscription>true</paiementinscription> <paiementinscription>true</paiementinscription>
<bourse>N</bourse> <bourse>N</bourse>
@ -89,47 +84,16 @@ les étudiants correspondant aux critères indiqués, et renvoie du code XML:
</etudiants> </etudiants>
``` ```
Les champs `<lycee>` (code du lycée), `<bac>` (intitulé du bac), `<mention>`, Les champs `<lycee>` (code du lycée), `<bac>` (intitulé du bac), `<mention>`, `<anneebac>` et `<paiementinscription>` sont optionnels.
`<anneebac>` et `<paiementinscription>` sont optionnels.
Le champ `<bac>` est un libellé, en général de la forme "ES-Economique et Le champ `<bac>` est un libellé, en général de la forme "ES-Economique et social". ScoDoc considère la première partie du libellé, jusqu'au caractère '-' comme la série du bac (uniquement si elle fait moins de 8 caractères). Le reste est alors considéré comme la "spécialité" du bac. Voir [DonneesAdmissions](DonneesAdmissions.md).
social". ScoDoc considère la première partie du libellé, jusqu'au caractère '-'
comme la série du bac (uniquement si elle fait moins de 8 caractères). Le reste
est alors considéré comme la "spécialité" du bac. Voir
[DonneesAdmissions](DonneesAdmissions.md).
Le champ `<paiementinscription>` (optionnel) vaut "true" ou "false" pour Le champ `<paiementinscription>` (optionnel) vaut "true" ou "false" pour indiquer si l'étudiant a réglé ses frais d'inscription ou non.
indiquer si l'étudiant a réglé ses frais d'inscription ou non.
### Champs spécifiques à Apogée
Les champs suivant sont optionnels et donnent des informations spécifiques à
Apogée:
```xml
<cod_stu>01</cod_stu>
<cod_rgi>1</cod_rgi>
<tem_brs_iaa>O</tem_brs_iaa>
<eta_edt_crt>E</eta_edt_crt>
<dat_edt_crt>10/07/24</dat_edt_crt>
<cod_pru>NO</cod_pru>
<cod_dip>VBTCYB</cod_dip>
<cod_etp>V2CYB</cod_etp>
<tem_rgl_sit_mil>O</tem_rgl_sit_mil>
```
Notes :
- `dat_edt_crt` est en principe la même chose que `datefinalisationinscription`:
ce champ est vide si l'étudiant n'a pas finalisé son incription.
## Liste des étapes Apogée ### Liste des étapes Apogée
`getEtapes.php` (pas de paramètres) renvoie un doc XML décrivant les étapes Apogée en cours. L'URL est paramétrable dans les préférences de ScoDoc.
`getEtapes.php` (pas de paramètres) renvoie un doc XML décrivant les étapes La structure est la suivante:
Apogée en cours. L'URL est paramétrable dans les préférences de ScoDoc. La
structure est la suivante:
``` ```
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<etapes> <etapes>
@ -146,16 +110,10 @@ structure est la suivante:
... ...
</etapes> </etapes>
``` ```
Le code département (cj ou rt dans l'exemple ci-dessous) est arbitraire et utilisé par ScoDoc pour ne présenter à l'utilisateur que les étapes de son département (voir la propriété *code du département sur le portail* dans les paramètres).
Le code département (cj ou rt dans l'exemple ci-dessous) est arbitraire et On peut aussi présenter une liste sans section par département, comme ceci: (cocher la préférence indiquant le format dans ScoDoc)
utilisé par ScoDoc pour ne présenter à l'utilisateur que les étapes de son ```
département (voir la propriété *code du département sur le portail* dans les
paramètres).
On peut aussi présenter une liste sans section par département, comme ceci:
(cocher la préférence indiquant le format dans ScoDoc)
```xml
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<etapes> <etapes>
<etape code="V1XY">DUT CJ - Première Année</etape> <etape code="V1XY">DUT CJ - Première Année</etape>
@ -164,8 +122,7 @@ On peut aussi présenter une liste sans section par département, comme ceci:
</etapes> </etapes>
``` ```
## Image de l'étudiant ### Image de l'étudiant
`getPhoto.php` accepte le paramètre suivant: `getPhoto.php` accepte le paramètre suivant:
- `nip` : code NIP - `nip` : code NIP

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 442 KiB

After

Width:  |  Height:  |  Size: 440 KiB

View File

@ -5,25 +5,6 @@
> >
> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-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": 39
}
}
]
}
```
#### POST /assiduite/1/create
> `Content-Type: application/json`
>
> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "absent"}]`
```json ```json
{ {
"errors": [ "errors": [
@ -36,3 +17,22 @@
} }
``` ```
#### 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
}
}
]
}
```

View File

@ -1,16 +1,5 @@
### assiduite_edit ### assiduite_edit
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat":"absent"}`
```json
{
"OK": true
}
```
#### POST /assiduite/1/edit #### POST /assiduite/1/edit
> `Content-Type: application/json` > `Content-Type: application/json`
> >
@ -33,3 +22,14 @@
} }
``` ```
#### POST /assiduite/1/edit
> `Content-Type: application/json`
>
> `{"etat":"absent"}`
```json
{
"OK": true
}
```

View File

@ -29,7 +29,7 @@
{ {
"indice": 0, "indice": 0,
"message": { "message": {
"assiduite_id": 40 "assiduite_id": 50
} }
} }
] ]

View File

@ -1,17 +1,29 @@
### assiduites_evaluations ### assiduites-evaluations
#### GET /assiduites/1/evaluations #### GET /assiduites/1/evaluations
```json ```json
[ [
{ {
"assiduites": [], "evaluation_id": 1234,
"evaluation_id": 1 "assiduites": [
},
{ {
"assiduites": [], "assiduite_id": 1,
"evaluation_id": 2 "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
}, },
"..." ]
}
] ]
``` ```

View File

@ -82,15 +82,15 @@
```json ```json
[ [
{ {
"assiduite_id": 26, "assiduite_id": 27,
"code_nip": "11", "code_nip": "NIP10",
"date_debut": "2022-08-20T12:00:00.000000+02:00", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null, "desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00", "entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false, "est_just": false,
"etat": "PRESENT", "etat": "PRESENT",
"etudid": 11, "etudid": 10,
"external_data": null, "external_data": null,
"moduleimpl_id": 1, "moduleimpl_id": 1,
"user_id": null, "user_id": null,
@ -98,15 +98,15 @@
"user_nom_complet": null "user_nom_complet": null
}, },
{ {
"assiduite_id": 38, "assiduite_id": 43,
"code_nip": "NIP16", "code_nip": "NIP14",
"date_debut": "2022-08-20T12:00:00.000000+02:00", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "2022-08-20T12:00:00.000000+02:00", "date_fin": "2022-08-20T12:00:00.000000+02:00",
"desc": null, "desc": null,
"entry_date": "2022-08-20T12:00:00.000000+02:00", "entry_date": "2022-08-20T12:00:00.000000+02:00",
"est_just": false, "est_just": false,
"etat": "RETARD", "etat": "RETARD",
"etudid": 16, "etudid": 14,
"external_data": null, "external_data": null,
"moduleimpl_id": 1, "moduleimpl_id": 1,
"user_id": null, "user_id": null,

View File

@ -3,9 +3,9 @@
#### GET /assiduites/formsemestre/1/count #### GET /assiduites/formsemestre/1/count
```json ```json
{ {
"compte": 38, "compte": 48,
"demi": 13, "demi": 14,
"heure": 39.0, "heure": 65.0,
"journee": 18 "journee": 18
} }
``` ```
@ -13,18 +13,18 @@
#### GET /assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure #### GET /assiduites/formsemestre/1/count/query?etat=present,retard&metric=compte,heure
```json ```json
{ {
"compte": 27, "compte": 29,
"heure": 28.0 "heure": 35.0
} }
``` ```
#### GET /assiduites/formsemestre/1/count/query?etat=retard #### GET /assiduites/formsemestre/1/count/query?etat=retard
```json ```json
{ {
"compte": 15, "compte": 14,
"demi": 9, "demi": 8,
"heure": 17.0, "heure": 19.0,
"journee": 12 "journee": 11
} }
``` ```

View File

@ -1,21 +0,0 @@
### billets_absence_create
#### POST /billets_absence/create
> `Content-Type: application/json`
>
> `{"etudid":"1","abs_begin":"2023-10-27T10:00","abs_end":"2023-10-28T10:00","description":"grave malade","justified":"1"}`
```json
{
"abs_begin": "2022-08-20T12:00:00.000000+02:00",
"abs_end": "2022-08-20T12:00:00.000000+02:00",
"billet_id": 1,
"description": "grave malade",
"entry_date": "2022-08-20T12:00:00.000000+02:00",
"etat": false,
"etudid": 1,
"id": 1,
"justified": true
}
```

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +0,0 @@
### decisions_jury
#### GET /formsemestre/1/decisions_jury
```json
[
{
"autorisations": [],
"code_ine": "INE1",
"code_nip": "1",
"etat": "I",
"etudid": 1,
"is_apc": true,
"nb_competences": 3,
"rcues": [],
"semestre": {},
"ues": []
},
{
"autorisations": [],
"code_ine": "2",
"code_nip": "NIP2",
"etat": "I",
"etudid": 2,
"is_apc": true,
"nb_competences": 3,
"rcues": [],
"semestre": {},
"ues": []
},
"..."
]
```

View File

@ -1,15 +1,15 @@
### departement_create ### departement-create
#### POST /departement/create #### POST /departement/create
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `{"acronym":"MYDEPT","visible":"1"}` > `{"acronym": "NEWONE" , "visible": true}`
```json ```json
{ {
"acronym": "MYDEPT", "acronym": "NEWONE",
"date_creation": "2022-08-20T12:00:00.000000+02:00", "date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "MYDEPT", "dept_name": "NEWONE",
"description": null, "description": null,
"id": 6, "id": 6,
"visible": true "visible": true

View File

@ -0,0 +1,9 @@
### departement-delete
#### POST /departement/NEWONE/delete
```json
{
"OK": true
}
```

View File

@ -0,0 +1,18 @@
### departement-edit
#### POST /departement/NEWONE/edit
> `Content-Type: application/json`
>
> `{"visible": false}`
```json
{
"acronym": "NEWONE",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "NEWONE",
"description": null,
"id": 6,
"visible": false
}
```

View File

@ -0,0 +1,80 @@
### departement-etudiants
#### GET /departement/TAPI/etudiants
```json
[
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
"id": 10,
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"boutet",
"marguerite"
]
},
{
"civilite": "M",
"civilite_etat_civil": "X",
"code_ine": "12",
"code_nip": "NIP12",
"dept_id": 1,
"id": 12,
"nom": "MOUTON",
"nom_usuel": null,
"prenom": "CLAUDE",
"prenom_etat_civil": "",
"sort_key": [
"mouton",
"claude"
]
},
"..."
]
```
#### GET /departement/id/1/etudiants
```json
[
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
"id": 10,
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"boutet",
"marguerite"
]
},
{
"civilite": "M",
"civilite_etat_civil": "X",
"code_ine": "12",
"code_nip": "NIP12",
"dept_id": 1,
"id": 12,
"nom": "MOUTON",
"nom_usuel": null,
"prenom": "CLAUDE",
"prenom_etat_civil": "",
"sort_key": [
"mouton",
"claude"
]
},
"..."
]
```

View File

@ -0,0 +1,16 @@
### departement-formsemestres-courants
#### GET /departement/TAPI/formsemestres_courants
```json
[
"..."
]
```
#### GET /departement/id/1/formsemestres_courants
```json
[
"..."
]
```

View File

@ -0,0 +1,18 @@
### departement-formsemestres_ids
#### GET /departement/TAPI/formsemestres_ids
```json
[
1,
"..."
]
```
#### GET /departement/id/1/formsemestres_ids
```json
[
1,
"..."
]
```

View File

@ -0,0 +1,18 @@
### departement-logo
#### GET /departement/TAPI/logo/D
```json
{
"Content-Disposition": "inline; filename=logo_D.png",
"Content-Type": "image/png"
}
```
#### GET /departement/id/1/logo/D
```json
{
"Content-Disposition": "inline; filename=logo_D.png",
"Content-Type": "image/png"
}
```

View File

@ -0,0 +1,20 @@
### departement-logos
#### GET /departement/TAPI/logos
```json
[
"D",
"A",
"..."
]
```
#### GET /departement/id/1/logos
```json
[
"D",
"A",
"..."
]
```

View File

@ -1,14 +0,0 @@
### departement_by_acronym
#### GET /departement/TAPI
```json
{
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
}
```

View File

@ -1,14 +0,0 @@
### departement_by_id
#### GET /departement/id/1
```json
{
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
}
```

View File

@ -1,35 +0,0 @@
### departement_etudiants
#### GET /departement/TAPI/etudiants
```json
[
{
"civilite": "X",
"civilite_etat_civil": null,
"code_ine": "INE1",
"code_nip": "1",
"dept_id": 1,
"id": 1,
"nom": "GROSS",
"nom_usuel": null,
"prenom": "SACHA",
"prenom_etat_civil": null,
"sort_key": "gross;sacha"
},
{
"civilite": "F",
"civilite_etat_civil": null,
"code_ine": "2",
"code_nip": "NIP2",
"dept_id": 1,
"id": 2,
"nom": "WALTER",
"nom_usuel": null,
"prenom": "SIMONE",
"prenom_etat_civil": null,
"sort_key": "walter;simone"
},
"..."
]
```

View File

@ -1,447 +0,0 @@
### departement_formsemestres_courants
#### GET /departement/id/1/formsemestres_courants?date_courante=2022-01-01
```json
[
{
"annee_scolaire": 2021,
"block_moyenne_generale": false,
"block_moyennes": false,
"bul_bgcolor": "white",
"bul_hide_xml": false,
"date_debut": "01/09/2021",
"date_debut_iso": "2021-09-01",
"date_fin": "31/08/2022",
"date_fin_iso": "2022-08-31",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"edt_id": null,
"elt_annee_apo": null,
"elt_passage_apo": null,
"elt_sem_apo": null,
"ens_can_edit_eval": false,
"etape_apo": "A1, A2, A3",
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
},
"formation_id": 1,
"formsemestre_id": 1,
"gestion_compensation": false,
"gestion_semestrielle": false,
"id": 1,
"modalite": "FI",
"mode_calcul_moyennes": 0,
"parcours": [
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 1
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 2
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "Cyber",
"libelle": "Cybers\u00e9curit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 1
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 2
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "DevCloud",
"libelle": "De\u0301veloppement syste\u0300me et cloud",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 1
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 2
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "IOM",
"libelle": "Internet des objets et mobilit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 1
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 2
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "PPR",
"libelle": "Pilotage de projets de re\u0301seaux",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 1
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 2
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "ROM",
"libelle": "R\u00e9seaux Op\u00e9rateurs et Multim\u00e9dia",
"numero": 0
}
],
"resp_can_change_ens": true,
"resp_can_edit": false,
"responsables": [],
"scodoc7_id": null,
"semestre_id": 1,
"session_id": "TAPI-BUT-FI-S1-2021",
"titre": "Semestre test",
"titre_court": "BUT R&T",
"titre_formation": "BUT R&T",
"titre_num": "Semestre test semestre 1"
},
"..."
]
```

View File

@ -1,10 +0,0 @@
### departement_formsemestres_ids
#### GET /departement/TAPI/formsemestres_ids
```json
[
1,
"..."
]
```

View File

@ -1,10 +0,0 @@
### departement_formsemestres_ids_by_id
#### GET /departement/id/1/formsemestres_ids
```json
[
1,
"..."
]
```

View File

@ -1,14 +0,0 @@
### departement_get
#### GET /departement/id/1
```json
{
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
}
```

View File

@ -1,11 +0,0 @@
### departement_logos
#### GET /departement/TAPI/logos
```json
[
"D",
"A",
"..."
]
```

View File

@ -1,4 +1,4 @@
### departements_ids ### departements-ids
#### GET /departements_ids #### GET /departements_ids
```json ```json

View File

@ -1,25 +0,0 @@
### departements_list
#### GET /departements
```json
[
{
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
{
"acronym": "AA",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "AA",
"description": null,
"id": 2,
"visible": true
},
"..."
]
```

View File

@ -0,0 +1,257 @@
### etudiant-formsemestre-bulletin
#### GET /etudiant/etudid/11/formsemestre/1/bulletin
```json
{
"date": "2022-08-20T12:00:00.000000+02:00",
"etat_inscription": "I",
"etudiant": {
"boursier": "",
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"codepostaldomicile": "",
"date_naissance": "12/02/2005",
"dept_acronym": "TAPI",
"dept_id": 1,
"dept_naissance": "",
"description": "",
"domicile": "",
"email": "",
"emailperso": "",
"etudid": 11,
"fax": "",
"fiche_url": "/ScoDoc/TAPI/Scolarite/ficheEtud?etudid=11",
"id": 11,
"lieu_naissance": "",
"nationalite": "",
"nom": "FLEURY",
"nomprenom": "Mme Madeleine FLEURY",
"paysdomicile": "",
"photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=11&size=small",
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"telephone": "",
"telephonemobile": "",
"typeadresse": "domicile",
"villedomicile": ""
},
"formation": {
"acronyme": "BUT R&T",
"id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications"
},
"formsemestre_id": 1,
"options": {
"bgcolor": "white",
"block_moyenne_generale": false,
"show_abs": true,
"show_abs_modules": false,
"show_codemodules": false,
"show_coef": true,
"show_date_inscr": true,
"show_ects": true,
"show_matieres": false,
"show_minmax": false,
"show_minmax_eval": false,
"show_minmax_mod": false,
"show_mod_rangs": true,
"show_moypromo": false,
"show_rangs": true,
"show_temporary": true,
"show_ue_cap_current": true,
"show_ue_cap_details": false,
"show_ue_rangs": true,
"show_uevalid": true,
"temporary_txt": "Provisoire"
},
"publie": true,
"ressources": {
"R101": {
"code_apogee": null,
"evaluations": [
{
"coef": "01.00",
"date_debut": "2012-04-06T13:30:00+02:00",
"date_fin": "2012-04-06T15:00:00+02:00",
"description": "Evaluation-R101",
"evaluation_type": 0,
"id": 1,
"note": {
"max": "~",
"min": "~",
"moy": "~",
"value": "~"
},
"poids": {
"RT1.1": 1.0,
"RT2.1": 1.0,
"RT3.1": 1.0
},
"url": "/ScoDoc/TAPI/Scolarite/Notes/evaluation_listenotes?evaluation_id=1"
}
],
"id": 1,
"moyenne": {},
"titre": "Initiation aux r\u00e9seaux informatiques",
"url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=1"
},
"R102": {
"code_apogee": null,
"evaluations": [
{
"coef": "01.00",
"date_debut": null,
"date_fin": null,
"description": "Evaluation-R102",
"evaluation_type": 0,
"id": 3,
"note": {
"max": "17.68",
"min": "03.27",
"moy": "08.99",
"value": "11.97"
},
"poids": {
"RT1.1": 1.0,
"RT2.1": 0.0,
"RT3.1": 0.0
},
"url": "/ScoDoc/TAPI/Scolarite/Notes/evaluation_listenotes?evaluation_id=3"
}
],
"id": 3,
"moyenne": {},
"titre": "Principe et architecture des r\u00e9seaux",
"url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=3"
},
...
},
"saes": {
"SAE11": {
"code_apogee": null,
"evaluations": [
{
"coef": "01.00",
"date_debut": "2012-03-27T09:30:00+02:00",
"date_fin": "2012-03-27T17:30:00+02:00",
"description": "Evaluation-SAE11",
"evaluation_type": 0,
"id": 2,
"note": {
"max": "18.72",
"min": "00.12",
"moy": "10.43",
"value": "18.72"
},
"poids": {
"RT1.1": 1.0,
"RT2.1": 0.0,
"RT3.1": 0.0
},
"url": "/ScoDoc/TAPI/Scolarite/Notes/evaluation_listenotes?evaluation_id=2"
}
],
"id": 2,
"moyenne": {},
"titre": "Se sensibiliser \u00e0 l&apos;hygi\u00e8ne informatique et \u00e0 la cybers\u00e9curit\u00e9",
"url": "/ScoDoc/TAPI/Scolarite/Notes/moduleimpl_status?moduleimpl_id=2"
},
...
},
"semestre": {
"ECTS": {
"acquis": 0.0,
"total": 30.0
},
"absences": {
"injustifie": 0,
"metrique": "1/2 Jour.",
"total": 0
},
"annee_universitaire": "2021 - 2022",
"date_debut": "2021-09-01",
"date_fin": "2022-08-31",
"etapes": [
"A1",
"A2",
"A3"
],
"groupes": [],
"inscription": "",
"notes": {
"max": "14.36",
"min": "05.31",
"moy": "09.78",
"value": "14.36"
},
"numero": 1,
"rang": {
"groupes": {},
"total": 10,
"value": "1"
}
},
"type": "BUT",
"ues": {
"RT1.1": {
"ECTS": {
"acquis": 0.0,
"total": 12.0
},
"bonus": "00.00",
"capitalise": null,
"color": "#B80004",
"competence": null,
"id": 1,
"malus": "00.00",
"moyenne": {
"groupes": {},
"max": "14.94",
"min": "03.73",
"moy": "09.87",
"rang": "1",
"total": 16,
"value": "14.94"
},
"numero": 1,
"ressources": {
"R101": {
"coef": 12.0,
"id": 1,
"moyenne": "~"
},
"R102": {
"coef": 12.0,
"id": 3,
"moyenne": "11.97"
},
...
},
"saes": {
"SAE11": {
"coef": 16.0,
"id": 2,
"moyenne": "18.72"
},
"SAE12": {
"coef": 33.0,
"id": 7,
"moyenne": "14.69"
}
},
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
"type": 0
},
"RT2.1": {
...
},
...
},
"ues_capitalisees": {},
"version": "0"
}
```

View File

@ -1,6 +1,6 @@
### etudiant_groups ### etudiant-formsemestre-groups
#### GET /etudiant/etudid/1/formsemestre/1/groups #### GET /etudiant/etudid/11/formsemestre/1/groups
```json ```json
[ [
{ {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,886 @@
### etudiant-formsemestres
#### GET /etudiant/etudid/11/formsemestres
```json
[
{
"annee_scolaire": 2021,
"block_moyenne_generale": false,
"block_moyennes": false,
"bul_bgcolor": "white",
"bul_hide_xml": false,
"date_debut": "01/09/2021",
"date_debut_iso": "2021-09-01",
"date_fin": "31/08/2022",
"date_fin_iso": "2022-08-31",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"elt_annee_apo": null,
"elt_sem_apo": null,
"ens_can_edit_eval": false,
"etape_apo": "A1, A2, A3",
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
},
"formation_id": 1,
"formsemestre_id": 1,
"gestion_compensation": false,
"gestion_semestrielle": false,
"id": 1,
"modalite": "FI",
"parcours": [
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 1
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 2
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "Cyber",
"libelle": "Cybers\u00e9curit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 1
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 2
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "DevCloud",
"libelle": "De\u0301veloppement syste\u0300me et cloud",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 1
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 2
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "IOM",
"libelle": "Internet des objets et mobilit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 1
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 2
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "PPR",
"libelle": "Pilotage de projets de re\u0301seaux",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 1
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 2
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "ROM",
"libelle": "R\u00e9seaux Op\u00e9rateurs et Multim\u00e9dia",
"numero": 0
}
],
"resp_can_change_ens": true,
"resp_can_edit": false,
"responsables": [],
"scodoc7_id": null,
"semestre_id": 1,
"session_id": "TAPI-BUT-FI-S1-2021",
"titre": "Semestre test",
"titre_court": "BUT R&T",
"titre_formation": "BUT R&T",
"titre_num": "Semestre test semestre 1"
},
"..."
]
```
#### GET /etudiant/ine/INE11/formsemestres
```json
[
{
"annee_scolaire": 2021,
"block_moyenne_generale": false,
"block_moyennes": false,
"bul_bgcolor": "white",
"bul_hide_xml": false,
"date_debut": "01/09/2021",
"date_debut_iso": "2021-09-01",
"date_fin": "31/08/2022",
"date_fin_iso": "2022-08-31",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"elt_annee_apo": null,
"elt_sem_apo": null,
"ens_can_edit_eval": false,
"etape_apo": "A1, A2, A3",
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
},
"formation_id": 1,
"formsemestre_id": 1,
"gestion_compensation": false,
"gestion_semestrielle": false,
"id": 1,
"modalite": "FI",
"parcours": [
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 1
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 2
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "Cyber",
"libelle": "Cybers\u00e9curit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 1
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 2
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "DevCloud",
"libelle": "De\u0301veloppement syste\u0300me et cloud",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 1
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 2
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "IOM",
"libelle": "Internet des objets et mobilit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 1
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 2
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "PPR",
"libelle": "Pilotage de projets de re\u0301seaux",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 1
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 2
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "ROM",
"libelle": "R\u00e9seaux Op\u00e9rateurs et Multim\u00e9dia",
"numero": 0
}
],
"resp_can_change_ens": true,
"resp_can_edit": false,
"responsables": [],
"scodoc7_id": null,
"semestre_id": 1,
"session_id": "TAPI-BUT-FI-S1-2021",
"titre": "Semestre test",
"titre_court": "BUT R&T",
"titre_formation": "BUT R&T",
"titre_num": "Semestre test semestre 1"
},
"..."
]
```

View File

@ -1,17 +0,0 @@
### etudiant_annotation
#### POST /etudiant/etudid/1/annotation
> `Content-Type: application/json`
>
> `{"comment":"une annotation sur l'étudiant"}`
```json
{
"author": "admin_api",
"comment": "une annotation sur l'\u00e9tudiant",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 1,
"id": 1
}
```

View File

@ -1,76 +0,0 @@
### etudiant_edit
#### POST /etudiant/ine/INE1/edit
> `Content-Type: application/json`
>
> `{"prenom":"Nouveau Prénom", "adresses":[{"email":"nouvelle@adresse.fr"}]}`
```json
{
"admission": {
"anglais": null,
"annee": null,
"annee_bac": null,
"apb_classement_gr": null,
"apb_groupe": null,
"bac": null,
"boursier_prec": null,
"classement": null,
"codelycee": null,
"codepostallycee": null,
"commentaire": null,
"decision": null,
"francais": null,
"id": 1,
"math": null,
"nomlycee": null,
"physique": null,
"qualite": null,
"rang": null,
"rapporteur": null,
"score": null,
"specialite": null,
"type_admission": null,
"villelycee": null
},
"admission_id": 1,
"adresses": [
{
"codepostaldomicile": null,
"description": null,
"domicile": null,
"email": "nouvelle@adresse.fr",
"emailperso": null,
"etudid": 1,
"fax": null,
"id": 1,
"paysdomicile": null,
"telephone": null,
"telephonemobile": null,
"typeadresse": "domicile",
"villedomicile": null
}
],
"boursier": false,
"civilite": "X",
"civilite_etat_civil": null,
"code_ine": "INE1",
"code_nip": "1",
"date_naissance": "2005-02-02",
"dept_acronym": "TAPI",
"dept_id": 1,
"dept_naissance": null,
"id": 1,
"lieu_naissance": null,
"nationalite": null,
"nom": "GROSS",
"nom_usuel": null,
"photo_filename": null,
"prenom": "NOUVEAU PR\u00c9NOM",
"prenom_etat_civil": null,
"scodoc7_id": null,
"sort_key": "gross;nouveau prenom",
"statut": null
}
```

View File

@ -0,0 +1,257 @@
### etudiants-clef
#### GET /etudiants/etudid/11
```json
[
{
"admission": {
"anglais": null,
"annee": null,
"annee_bac": null,
"apb_classement_gr": null,
"apb_groupe": null,
"bac": null,
"boursier_prec": null,
"classement": null,
"codelycee": null,
"codepostallycee": null,
"commentaire": null,
"decision": null,
"etudid": 11,
"francais": null,
"id": 21,
"math": null,
"nomlycee": null,
"physique": null,
"qualite": null,
"rang": null,
"rapporteur": null,
"score": null,
"specialite": null,
"type_admission": null,
"villelycee": null
},
"adresses": [
{
"codepostaldomicile": null,
"description": null,
"domicile": null,
"email": null,
"emailperso": null,
"etudid": 11,
"fax": null,
"id": 11,
"paysdomicile": null,
"telephone": null,
"telephonemobile": null,
"typeadresse": "domicile",
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
"dept_acronym": "TAPI",
"dept_id": 1,
"dept_naissance": null,
"id": 11,
"lieu_naissance": null,
"nationalite": null,
"nom": "FLEURY",
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",
"madeleine"
],
"statut": null
},
"..."
]
```
#### GET /etudiants/ine/INE11
```json
[
{
"admission": {
"anglais": null,
"annee": null,
"annee_bac": null,
"apb_classement_gr": null,
"apb_groupe": null,
"bac": null,
"boursier_prec": null,
"classement": null,
"codelycee": null,
"codepostallycee": null,
"commentaire": null,
"decision": null,
"etudid": 11,
"francais": null,
"id": 21,
"math": null,
"nomlycee": null,
"physique": null,
"qualite": null,
"rang": null,
"rapporteur": null,
"score": null,
"specialite": null,
"type_admission": null,
"villelycee": null
},
"adresses": [
{
"codepostaldomicile": null,
"description": null,
"domicile": null,
"email": null,
"emailperso": null,
"etudid": 11,
"fax": null,
"id": 11,
"paysdomicile": null,
"telephone": null,
"telephonemobile": null,
"typeadresse": "domicile",
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
"dept_acronym": "TAPI",
"dept_id": 1,
"dept_naissance": null,
"id": 11,
"lieu_naissance": null,
"nationalite": null,
"nom": "FLEURY",
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",
"madeleine"
],
"statut": null
},
"..."
]
```
#### GET /etudiants/nip/11
```json
[
{
"admission": {
"anglais": null,
"annee": null,
"annee_bac": null,
"apb_classement_gr": null,
"apb_groupe": null,
"bac": null,
"boursier_prec": null,
"classement": null,
"codelycee": null,
"codepostallycee": null,
"commentaire": null,
"decision": null,
"etudid": 11,
"francais": null,
"id": 21,
"math": null,
"nomlycee": null,
"physique": null,
"qualite": null,
"rang": null,
"rapporteur": null,
"score": null,
"specialite": null,
"type_admission": null,
"villelycee": null
},
"adresses": [
{
"codepostaldomicile": null,
"description": null,
"domicile": null,
"email": null,
"emailperso": null,
"etudid": 11,
"fax": null,
"id": 11,
"paysdomicile": null,
"telephone": null,
"telephonemobile": null,
"typeadresse": "domicile",
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T18:40:04.114300+01:00",
"id": 5,
"comment": "Ceci est une annotation.",
"author": "admin",
"etudid": 11
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
"dept_acronym": "TAPI",
"dept_id": 1,
"dept_naissance": null,
"id": 11,
"lieu_naissance": null,
"nationalite": null,
"nom": "FLEURY",
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",
"madeleine"
],
"statut": null
},
"..."
]
```

View File

@ -1,6 +1,45 @@
### etudiants_courants ### etudiants-courants
#### GET /etudiants/courants/long?date_courante=2022-05-01 #### GET /etudiants/courants
```json
[
{
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"dept_id": 1,
"id": 1,
"nom": "COSTA",
"nom_usuel": null,
"prenom": "SACHA",
"prenom_etat_civil": "",
"sort_key": [
"costa",
"sacha"
]
},
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "2",
"code_nip": "NIP2",
"dept_id": 1,
"id": 2,
"nom": "NAUDIN",
"nom_usuel": null,
"prenom": "SIMONE",
"prenom_etat_civil": "",
"sort_key": [
"naudin",
"simone"
]
},
"..."
]
```
#### GET /etudiants/courants/long
```json ```json
[ [
{ {
@ -17,6 +56,7 @@
"codepostallycee": null, "codepostallycee": null,
"commentaire": null, "commentaire": null,
"decision": null, "decision": null,
"etudid": 1,
"francais": null, "francais": null,
"id": 1, "id": 1,
"math": null, "math": null,
@ -30,21 +70,42 @@
"type_admission": null, "type_admission": null,
"villelycee": null "villelycee": null
}, },
"admission_id": 1,
"adresses": [ "adresses": [
{ {
"codepostaldomicile": null,
"description": null, "description": null,
"domicile": null,
"email": null, "email": null,
"emailperso": null,
"etudid": 1, "etudid": 1,
"fax": null,
"id": 1, "id": 1,
"paysdomicile": null, "paysdomicile": null,
"typeadresse": "domicile" "telephone": null,
"telephonemobile": null,
"typeadresse": "domicile",
"villedomicile": null
}
],
"annotations": [
{
"date": "2024-02-10T12:16:04.336100+01:00",
"id": 2,
"comment": "Une deuxième annotation.",
"author": "admin",
"etudid": 1
},
{
"date": "2024-02-10T12:14:34.243300+01:00",
"id": 1,
"comment": "Une annotation.",
"author": "admin",
"etudid": 1
} }
], ],
"annotations": [],
"boursier": null, "boursier": null,
"civilite": "X", "civilite": "X",
"civilite_etat_civil": null, "civilite_etat_civil": "X",
"code_ine": "INE1", "code_ine": "INE1",
"code_nip": "1", "code_nip": "1",
"date_naissance": "2005-02-02", "date_naissance": "2005-02-02",
@ -54,13 +115,16 @@
"id": 1, "id": 1,
"lieu_naissance": null, "lieu_naissance": null,
"nationalite": null, "nationalite": null,
"nom": "GROSS", "nom": "COSTA",
"nom_usuel": null, "nom_usuel": null,
"photo_filename": null, "photo_filename": null,
"prenom": "SACHA", "prenom": "SACHA",
"prenom_etat_civil": null, "prenom_etat_civil": "",
"scodoc7_id": null, "scodoc7_id": null,
"sort_key": "gross;sacha", "sort_key": [
"costa",
"sacha"
],
"statut": null "statut": null
}, },
{ {
@ -77,8 +141,9 @@
"codepostallycee": null, "codepostallycee": null,
"commentaire": null, "commentaire": null,
"decision": null, "decision": null,
"etudid": 2,
"francais": null, "francais": null,
"id": 2, "id": 3,
"math": null, "math": null,
"nomlycee": null, "nomlycee": null,
"physique": null, "physique": null,
@ -90,21 +155,27 @@
"type_admission": null, "type_admission": null,
"villelycee": null "villelycee": null
}, },
"admission_id": 2,
"adresses": [ "adresses": [
{ {
"codepostaldomicile": null,
"description": null, "description": null,
"domicile": null,
"email": null, "email": null,
"emailperso": null,
"etudid": 2, "etudid": 2,
"fax": null,
"id": 2, "id": 2,
"paysdomicile": null, "paysdomicile": null,
"typeadresse": "domicile" "telephone": null,
"telephonemobile": null,
"typeadresse": "domicile",
"villedomicile": null
} }
], ],
"annotations": [], "annotation": [],
"boursier": null, "boursier": null,
"civilite": "F", "civilite": "F",
"civilite_etat_civil": null, "civilite_etat_civil": "X",
"code_ine": "2", "code_ine": "2",
"code_nip": "NIP2", "code_nip": "NIP2",
"date_naissance": "2005-02-03", "date_naissance": "2005-02-03",
@ -114,49 +185,19 @@
"id": 2, "id": 2,
"lieu_naissance": null, "lieu_naissance": null,
"nationalite": null, "nationalite": null,
"nom": "WALTER", "nom": "NAUDIN",
"nom_usuel": null, "nom_usuel": null,
"photo_filename": null, "photo_filename": null,
"prenom": "SIMONE", "prenom": "SIMONE",
"prenom_etat_civil": null, "prenom_etat_civil": "",
"scodoc7_id": null, "scodoc7_id": null,
"sort_key": "walter;simone", "sort_key": [
"naudin",
"simone"
],
"statut": null "statut": null
}, },
"..." "..."
] ]
``` ```
#### GET /etudiants/courants?date_courante=2022-05-01
```json
[
{
"civilite": "X",
"civilite_etat_civil": null,
"code_ine": "INE1",
"code_nip": "1",
"dept_id": 1,
"id": 1,
"nom": "GROSS",
"nom_usuel": null,
"prenom": "SACHA",
"prenom_etat_civil": null,
"sort_key": "gross;sacha"
},
{
"civilite": "F",
"civilite_etat_civil": null,
"code_ine": "2",
"code_nip": "NIP2",
"dept_id": 1,
"id": 2,
"nom": "WALTER",
"nom_usuel": null,
"prenom": "SIMONE",
"prenom_etat_civil": null,
"sort_key": "walter;simone"
},
"..."
]
```

View File

@ -0,0 +1,7 @@
### evaluation-notes
#### GET /evaluation/1/notes
```json
{}
```

View File

@ -1,29 +0,0 @@
### evaluation_create
#### POST /moduleimpl/1/evaluation/create
> `Content-Type: application/json`
>
> `{"description":"Exemple éval."}`
```json
{
"blocked": false,
"blocked_until": "",
"coefficient": 1.0,
"date": "",
"date_debut": "",
"date_fin": "",
"description": "Exemple \u00e9val.",
"evaluation_type": 0,
"heure_debut": "",
"heure_fin": "",
"id": 22,
"moduleimpl_id": 1,
"note_max": 20.0,
"numero": 1,
"poids": {},
"publish_incomplete": false,
"visibulletin": true
}
```

View File

@ -1,116 +0,0 @@
### evaluation_notes
#### GET /evaluation/2/notes
```json
{
"10": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 10,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 17.730987105316025
},
"11": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 11,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 18.716113764765428
},
"12": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 12,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 14.289356969759607
},
"14": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 14,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 1.1788542869722152
},
"15": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 15,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 9.659719136479168
},
"16": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 16,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 14.54607991498829
},
"2": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 2,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 6.275017325484025
},
"3": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 3,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 9.818545424451708
},
"5": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 5,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 5.692698734393606
},
"6": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 6,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 13.017058698519559
},
"7": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 7,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 14.128707032319268
},
"9": {
"comment": "",
"date": "2022-08-20T12:00:00.000000+02:00",
"etudid": 9,
"evaluation_id": 2,
"note_max": 20.0,
"uid": 2,
"value": 0.12362863327411544
}
}
```

View File

@ -1,20 +0,0 @@
### evaluation_set_notes
#### POST /evaluation/1/notes/set
> `Content-Type: application/json`
>
> `{"notes": [[1, 17], [2, "SUPR"]], "comment" : "sample test"}`
```json
{
"etudids_changed": [
1
],
"etudids_with_decision": [],
"history_menu": {
"1": "<span class=\"history\">\n<span data-note=\"17\">le 27/07/2024 \u00e0 13:24 (Api Admin) <span class=\"histcomment\">sample test</span></span>\n</span>"
},
"messages": []
}
```

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
### referentiel_competences ### formation-referentiel_competences
#### GET /formation/1/referentiel_competences #### GET /formation/1/referentiel_competences
```json ```json

View File

@ -1,28 +0,0 @@
### formation_by_id
#### GET /formation/1
```json
{
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
}
```

View File

@ -1,654 +0,0 @@
### formation_export_by_formation_id
#### GET /formation/1/export
```json
{
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"formation_code": "V1RET",
"refcomp_specialite": "RT",
"refcomp_type_titre": "B.U.T.",
"refcomp_version_orebut": "2021-12-11 00:00:00",
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"ue": [
{
"acronyme": "RT1.1",
"apc_niveau_annee": "BUT1",
"apc_niveau_competence_titre": "Administrer",
"apc_niveau_libelle": "Assister l\u2019administrateur du r\u00e9seau",
"apc_niveau_ordre": 1,
"code_apogee": "",
"code_apogee_rcue": null,
"coef_rcue": 1.0,
"coefficient": 0.0,
"color": "#B80004",
"ects": 12.0,
"ects_by_parcours": {},
"is_external": false,
"matiere": [
{
"module": [
{
"abbrev": "Init aux r\u00e9seaux informatiques",
"app_critiques": {},
"code": "R101",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "12.0",
"ue_reference": "1"
},
{
"coef": "4.0",
"ue_reference": "2"
},
{
"coef": "4.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 10,
"parcours": [],
"semestre_id": 1,
"titre": "Initiation aux r\u00e9seaux informatiques"
},
{
"abbrev": "Hygi\u00e8ne informatique",
"app_critiques": {},
"code": "SAE11",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "16.0",
"ue_reference": "1"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 3,
"numero": 10,
"parcours": [],
"semestre_id": 1,
"titre": "Se sensibiliser \u00e0 l&apos;hygi\u00e8ne informatique et \u00e0 la cybers\u00e9curit\u00e9"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R102",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "12.0",
"ue_reference": "1"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 20,
"parcours": [],
"semestre_id": 1,
"titre": "Principe et architecture des r\u00e9seaux"
},
{
"abbrev": "R\u00e9seaux locaux",
"app_critiques": {},
"code": "R103",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "8.0",
"ue_reference": "1"
},
{
"coef": "4.0",
"ue_reference": "2"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 30,
"parcours": [],
"semestre_id": 1,
"titre": "R\u00e9seaux locaux et \u00e9quipements actifs"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R104",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "8.0",
"ue_reference": "1"
},
{
"coef": "5.0",
"ue_reference": "2"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 40,
"parcours": [],
"semestre_id": 1,
"titre": "Fondamentaux des syst\u00e8mes \u00e9lectroniques"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R106",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "10.0",
"ue_reference": "1"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 60,
"parcours": [],
"semestre_id": 1,
"titre": "Architecture des syst\u00e8mes num\u00e9riques et informatiques"
}
],
"numero": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet"
}
],
"numero": 1,
"parcours": [],
"reference": 1,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
"type": 0,
"ue_code": "UCOD11"
},
{
"acronyme": "RT2.1",
"apc_niveau_annee": "BUT1",
"apc_niveau_competence_titre": "Connecter",
"apc_niveau_libelle": "D\u00e9couvrir les transmissions et la ToIP",
"apc_niveau_ordre": 1,
"code_apogee": "",
"code_apogee_rcue": null,
"coef_rcue": 1.0,
"coefficient": 0.0,
"color": "#F97B3D",
"ects": 8.0,
"ects_by_parcours": {},
"is_external": false,
"matiere": [
{
"module": [
{
"abbrev": "",
"app_critiques": {},
"code": "SAE12",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "33.0",
"ue_reference": "1"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 3,
"numero": 20,
"parcours": [],
"semestre_id": 1,
"titre": "S&apos;initier aux r\u00e9seaux informatiques"
},
{
"abbrev": "",
"app_critiques": {},
"code": "SAE13",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "33.0",
"ue_reference": "2"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 3,
"numero": 30,
"parcours": [],
"semestre_id": 1,
"titre": "D\u00e9couvrir un dispositif de tranmission"
},
{
"abbrev": "Support de transmission",
"app_critiques": {},
"code": "R105",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "5.0",
"ue_reference": "2"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 50,
"parcours": [],
"semestre_id": 1,
"titre": "Support de transmission pour les r\u00e9seaux locaux"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R110",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "3.0",
"ue_reference": "1"
},
{
"coef": "5.0",
"ue_reference": "2"
},
{
"coef": "5.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 100,
"parcours": [],
"semestre_id": 1,
"titre": "Anglais g\u00e9n\u00e9ral et init vocabulaire technique"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R111",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "3.0",
"ue_reference": "1"
},
{
"coef": "5.0",
"ue_reference": "2"
},
{
"coef": "4.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 110,
"parcours": [],
"semestre_id": 1,
"titre": "Expression-culture-Communication Pro."
},
{
"abbrev": "",
"app_critiques": {},
"code": "R113",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "5.0",
"ue_reference": "1"
},
{
"coef": "8.0",
"ue_reference": "2"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 130,
"parcours": [],
"semestre_id": 1,
"titre": "Math\u00e9matiques du signal"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R114",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "4.0",
"ue_reference": "1"
},
{
"coef": "8.0",
"ue_reference": "2"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 140,
"parcours": [],
"semestre_id": 1,
"titre": "Math\u00e9matiques des transmissions"
}
],
"numero": 1,
"titre": "Connecter les entreprises et les usagers"
}
],
"numero": 2,
"parcours": [],
"reference": 2,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
"type": 0,
"ue_code": "UCOD12"
},
{
"acronyme": "RT3.1",
"apc_niveau_annee": "BUT1",
"apc_niveau_competence_titre": "Programmer",
"apc_niveau_libelle": "S\u2019int\u00e9grer dans un service informatique",
"apc_niveau_ordre": 1,
"code_apogee": "",
"code_apogee_rcue": null,
"coef_rcue": 1.0,
"coefficient": 0.0,
"color": "#FEB40B",
"ects": 10.0,
"ects_by_parcours": {},
"is_external": false,
"matiere": [
{
"module": [
{
"abbrev": "",
"app_critiques": {},
"code": "SAE14",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "16.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 3,
"numero": 40,
"parcours": [],
"semestre_id": 1,
"titre": "Se pr\u00e9senter sur Internet"
},
{
"abbrev": "",
"app_critiques": {},
"code": "SAE15",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "26.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 3,
"numero": 50,
"parcours": [],
"semestre_id": 1,
"titre": "Traiter des donn\u00e9es"
},
{
"abbrev": "",
"app_critiques": {},
"code": "SAE16",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 3,
"numero": 60,
"parcours": [],
"semestre_id": 1,
"titre": "Portofolio"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R107",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "22.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 70,
"parcours": [],
"semestre_id": 1,
"titre": "Fondamentaux de la programmation"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R108",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "6.0",
"ue_reference": "1"
},
{
"coef": "7.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 80,
"parcours": [],
"semestre_id": 1,
"titre": "Base des syst\u00e8mes d&apos;exploitation"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R109",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "4.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 90,
"parcours": [],
"semestre_id": 1,
"titre": "Introduction aux technologies Web"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R112",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "2.0",
"ue_reference": "1"
},
{
"coef": "3.0",
"ue_reference": "2"
},
{
"coef": "4.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 120,
"parcours": [],
"semestre_id": 1,
"titre": "PPP"
},
{
"abbrev": "",
"app_critiques": {},
"code": "R115",
"code_apogee": "",
"coefficient": 1.0,
"coefficients": [
{
"coef": "2.0",
"ue_reference": "2"
},
{
"coef": "4.0",
"ue_reference": "3"
}
],
"ects": "",
"edt_id": "",
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"module_type": 2,
"numero": 150,
"parcours": [],
"semestre_id": 1,
"titre": "Gestion de projets"
}
],
"numero": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T"
}
],
"numero": 3,
"parcours": [],
"reference": 3,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
"type": 0,
"ue_code": "UCOD13"
}
],
"version": 1
}
```

View File

@ -1,28 +0,0 @@
### formation_get
#### GET /formation/1
```json
{
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
}
```

View File

@ -1,45 +0,0 @@
### formation_module_get
#### GET /formation/module/1
```json
{
"abbrev": "Init aux r\u00e9seaux informatiques",
"app_critiques": {},
"code": "R101",
"code_apogee": "",
"coefficient": 1.0,
"ects": null,
"edt_id": null,
"formation_id": 1,
"heures_cours": 0.0,
"heures_td": 0.0,
"heures_tp": 0.0,
"id": 1,
"matiere_id": 1,
"module_id": 1,
"module_type": 2,
"numero": 10,
"parcours": [],
"semestre_id": 1,
"titre": "Initiation aux r\u00e9seaux informatiques",
"ue_coefs": [
{
"coef": 12.0,
"module_id": 1,
"ue_id": 1
},
{
"coef": 4.0,
"module_id": 1,
"ue_id": 2
},
{
"coef": 4.0,
"module_id": 1,
"ue_id": 3
}
],
"ue_id": 1
}
```

View File

@ -0,0 +1,70 @@
### formsemestre-decisions_jury
#### GET /formsemestre/1/decisions_jury
```json
[
{
"etudid": 1,
"code_nip": null,
"code_ine": null,
"is_apc": true,
"etat": "I",
"nb_competences": 2,
"rcues": [
{
"ue_1": {
"ue_id": 1,
"moy": 7.0,
"code": "AJ"
},
"ue_2": {
"ue_id": 4,
"moy": 12.0,
"code": "ADM"
},
"moy": 9.5,
"code": "CMP"
},
{
"ue_1": {
"ue_id": 2,
"moy": 9.0,
"code": "CMP"
},
"ue_2": {
"ue_id": 5,
"moy": 12.0,
"code": "ADM"
},
"moy": 10.5,
"code": "CMP"
}
],
"ues": [
{
"ue_id": 1,
"code": "AJ",
"ects": 0.0
},
{
"ue_id": 2,
"code": "CMP",
"ects": 15.0
}
],
"semestre": {},
"autorisations": [
{
"id": 1,
"etudid": 1,
"origin_formsemestre_id": 1,
"formation_code": "FCOD1",
"semestre_id": 2,
"date": "2023-11-29T19:57:00.251327+01:00"
}
]
},
...
]
```

View File

@ -1,77 +1,35 @@
### formsemestre_etat_evaluations ### formsemestre-etat_evals
#### GET /formsemestre/1/etat_evals #### GET /formsemestre/1/etat_evals
```json ```json
[ [
{ {
"code_apogee": "",
"computation_expr": null, "computation_expr": null,
"edt_id": null,
"ens": [], "ens": [],
"evaluations": [ "evaluations": [
{ {
"blocked": false,
"blocked_until": "",
"coefficient": 1.0, "coefficient": 1.0,
"date": "", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_debut": "", "date_fin": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "", "description": null,
"description": "Evaluation-R101",
"etat": { "etat": {
"evaluation_id": 1, "evaluation_id": 1,
"is_complete": true, "is_complete": true,
"nb_attente": 9, "nb_attente": 0
"nb_notes": 1
}, },
"evaluation_type": 0, "evaluation_type": 0,
"heure_debut": "",
"heure_fin": "",
"id": 1, "id": 1,
"moduleimpl_id": 1, "moduleimpl_id": 1,
"nb_inscrits": 10, "nb_inscrits": 10,
"nb_notes_abs": 0, "nb_notes_abs": 0,
"nb_notes_att": 9,
"nb_notes_exc": 0,
"nb_notes_manquantes": 9,
"note_max": 20.0,
"numero": 0,
"poids": {},
"publish_incomplete": true,
"saisie_notes": {
"datetime_debut": "2022-08-20T12:00:00.000000+02:00",
"datetime_fin": "2022-08-20T12:00:00.000000+02:00",
"datetime_mediane": "2022-08-20T12:00:00.000000+02:00"
},
"visibulletin": true
},
{
"blocked": false,
"blocked_until": "",
"coefficient": 1.0,
"date": "",
"date_debut": "",
"date_fin": "",
"description": "Exemple \u00e9val.",
"etat": {
"evaluation_id": 22,
"is_complete": false,
"nb_attente": 0,
"nb_notes": 0
},
"evaluation_type": 0,
"heure_debut": "",
"heure_fin": "",
"id": 22,
"moduleimpl_id": 1,
"nb_inscrits": 10,
"nb_notes_abs": 0,
"nb_notes_att": 0, "nb_notes_att": 0,
"nb_notes_exc": 0, "nb_notes_exc": 0,
"nb_notes_manquantes": 10, "nb_notes_manquantes": 10,
"note_max": 20.0, "note_max": 20.0,
"numero": 1, "numero": 0,
"poids": {}, "poids": {},
"publish_incomplete": false, "publish_incomplete": true,
"saisie_notes": { "saisie_notes": {
"datetime_debut": null, "datetime_debut": null,
"datetime_fin": null, "datetime_fin": null,
@ -87,33 +45,25 @@
"responsable_id": 2 "responsable_id": 2
}, },
{ {
"code_apogee": "",
"computation_expr": null, "computation_expr": null,
"edt_id": null,
"ens": [], "ens": [],
"evaluations": [ "evaluations": [
{ {
"blocked": false,
"blocked_until": "",
"coefficient": 1.0, "coefficient": 1.0,
"date": "", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_debut": "", "date_fin": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "", "description": null,
"description": "Evaluation-R102",
"etat": { "etat": {
"evaluation_id": 3, "evaluation_id": 3,
"is_complete": true, "is_complete": true,
"nb_attente": 2, "nb_attente": 0
"nb_notes": 8
}, },
"evaluation_type": 0, "evaluation_type": 0,
"heure_debut": "",
"heure_fin": "",
"id": 3, "id": 3,
"moduleimpl_id": 3, "moduleimpl_id": 3,
"nb_inscrits": 10, "nb_inscrits": 10,
"nb_notes_abs": 0, "nb_notes_abs": 0,
"nb_notes_att": 2, "nb_notes_att": 0,
"nb_notes_exc": 0, "nb_notes_exc": 0,
"nb_notes_manquantes": 2, "nb_notes_manquantes": 2,
"note_max": 20.0, "note_max": 20.0,

View File

@ -0,0 +1,43 @@
### formsemestre-etudiants-query
#### GET /formsemestre/1/etudiants/query?etat=D
```json
[
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
"groups": [],
"id": 10,
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"boutet",
"marguerite"
]
},
{
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE15",
"code_nip": "15",
"dept_id": 1,
"groups": [],
"id": 15,
"nom": "DIOT",
"nom_usuel": null,
"prenom": "CAMILLE",
"prenom_etat_civil": "",
"sort_key": [
"diot",
"camille"
]
},
"..."
]
```

View File

@ -0,0 +1,190 @@
### formsemestre-etudiants
#### GET /formsemestre/1/etudiants
```json
[
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
"groups": [],
"id": 10,
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"boutet",
"marguerite"
]
},
{
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"dept_id": 1,
"groups": [],
"id": 1,
"nom": "COSTA",
"nom_usuel": null,
"prenom": "SACHA",
"prenom_etat_civil": "",
"sort_key": [
"costa",
"sacha"
]
},
"..."
]
```
#### GET /formsemestre/1/etudiants/long
```json
[
{
"admission": {
"anglais": null,
"annee": null,
"annee_bac": null,
"apb_classement_gr": null,
"apb_groupe": null,
"bac": null,
"boursier_prec": null,
"classement": null,
"codelycee": null,
"codepostallycee": null,
"commentaire": null,
"decision": null,
"etudid": 10,
"francais": null,
"id": 19,
"math": null,
"nomlycee": null,
"physique": null,
"qualite": null,
"rang": null,
"rapporteur": null,
"score": null,
"specialite": null,
"type_admission": null,
"villelycee": null
},
"adresses": [
{
"codepostaldomicile": null,
"description": null,
"domicile": null,
"email": null,
"emailperso": null,
"etudid": 10,
"fax": null,
"id": 10,
"paysdomicile": null,
"telephone": null,
"telephonemobile": null,
"typeadresse": "domicile",
"villedomicile": null
}
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"date_naissance": "2005-02-11",
"dept_acronym": "TAPI",
"dept_id": 1,
"dept_naissance": null,
"groups": [],
"id": 10,
"lieu_naissance": null,
"nationalite": null,
"nom": "BOUTET",
"nom_usuel": null,
"photo_filename": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"boutet",
"marguerite"
],
"statut": null
},
{
"admission": {
"anglais": null,
"annee": null,
"annee_bac": null,
"apb_classement_gr": null,
"apb_groupe": null,
"bac": null,
"boursier_prec": null,
"classement": null,
"codelycee": null,
"codepostallycee": null,
"commentaire": null,
"decision": null,
"etudid": 1,
"francais": null,
"id": 1,
"math": null,
"nomlycee": null,
"physique": null,
"qualite": null,
"rang": null,
"rapporteur": null,
"score": null,
"specialite": null,
"type_admission": null,
"villelycee": null
},
"adresses": [
{
"codepostaldomicile": null,
"description": null,
"domicile": null,
"email": null,
"emailperso": null,
"etudid": 1,
"fax": null,
"id": 1,
"paysdomicile": null,
"telephone": null,
"telephonemobile": null,
"typeadresse": "domicile",
"villedomicile": null
}
],
"boursier": null,
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"date_naissance": "2005-02-02",
"dept_acronym": "TAPI",
"dept_id": 1,
"dept_naissance": null,
"groups": [],
"id": 1,
"lieu_naissance": null,
"nationalite": null,
"nom": "COSTA",
"nom_usuel": null,
"photo_filename": null,
"prenom": "SACHA",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"costa",
"sacha"
],
"statut": null
},
"..."
]
```

View File

@ -0,0 +1,21 @@
### formsemestre-partition-create
#### POST /formsemestre/1/partition/create
> `Content-Type: application/json`
>
> `{"partition_name": "PART"} `
```json
{
"bul_show_rank": false,
"formsemestre_id": 1,
"groups": {},
"groups_editable": true,
"id": 2,
"numero": 0,
"partition_id": 2,
"partition_name": "PART",
"show_in_lists": false
}
```

View File

@ -0,0 +1,23 @@
### formsemestre-partitions-order
#### POST /formsemestre/1/partitions/order
> `Content-Type: application/json`
>
> `[ 1 ]`
```json
[
{
"bul_show_rank": false,
"formsemestre_id": 1,
"groups_editable": true,
"id": 2,
"numero": 0,
"partition_id": 2,
"partition_name": "PART",
"show_in_lists": false
},
"..."
]
```

View File

@ -0,0 +1,7 @@
### formsemestre-partitions
#### GET /formsemestre/1/partitions
```json
{}
```

View File

@ -1,4 +1,4 @@
### formsemestre_resultat ### formsemestre-resultats
#### GET /formsemestre/1/resultats #### GET /formsemestre/1/resultats
```json ```json
@ -48,17 +48,15 @@
"moy_ue_1": "14.94", "moy_ue_1": "14.94",
"moy_ue_2": "11.17", "moy_ue_2": "11.17",
"moy_ue_3": "16.22", "moy_ue_3": "16.22",
"nbabs": 1, "nbabs": 5,
"nbabsjust": 0, "nbabsjust": 1,
"nom_disp": "BONHOMME", "nom_disp": "FLEURY",
"nom_short": "BONHOMME Ma.",
"part_2": "",
"partitions": { "partitions": {
"1": 1 "1": 1
}, },
"prenom": "MADELEINE", "prenom": "MADELEINE",
"rang": "1", "rang": "1",
"sort_key": "bonhomme;madeleine", "sort_key":"fleury;madeleine",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
"ues_validables": "3/3" "ues_validables": "3/3"
@ -108,17 +106,15 @@
"moy_ue_1": "13.51", "moy_ue_1": "13.51",
"moy_ue_2": "14.24", "moy_ue_2": "14.24",
"moy_ue_3": "10.39", "moy_ue_3": "10.39",
"nbabs": 0, "nbabs": 3,
"nbabsjust": 0, "nbabsjust": 1,
"nom_disp": "JAMES", "nom_disp": "SAUNIER",
"nom_short": "JAMES Ja.",
"part_2": "",
"partitions": { "partitions": {
"1": 1 "1": 1
}, },
"prenom": "JACQUES", "prenom": "JACQUES",
"rang": "2", "rang": "2",
"sort_key": "james;jacques", "sort_key":"fleury;madeleine",
"specialite": "", "specialite": "",
"type_admission": "", "type_admission": "",
"ues_validables": "3/3" "ues_validables": "3/3"

View File

@ -1,37 +0,0 @@
### formsemestre_etudiants
#### GET /formsemestre/1/etudiants/query
```json
[
{
"civilite": "M",
"civilite_etat_civil": null,
"code_ine": "4",
"code_nip": "NIP4",
"dept_id": 1,
"groups": [],
"id": 4,
"nom": "BARTHELEMY",
"nom_usuel": null,
"prenom": "G\u00c9RARD",
"prenom_etat_civil": null,
"sort_key": "barthelemy;gerard"
},
{
"civilite": "M",
"civilite_etat_civil": null,
"code_ine": "INE9",
"code_nip": "9",
"dept_id": 1,
"groups": [],
"id": 9,
"nom": "BENOIT",
"nom_usuel": null,
"prenom": "EMMANUEL",
"prenom_etat_civil": null,
"sort_key": "benoit;emmanuel"
},
"..."
]
```

View File

@ -1,444 +0,0 @@
### formsemestre_get
#### GET /formsemestre/1
```json
{
"annee_scolaire": 2021,
"block_moyenne_generale": false,
"block_moyennes": false,
"bul_bgcolor": "white",
"bul_hide_xml": false,
"date_debut": "01/09/2021",
"date_debut_iso": "2021-09-01",
"date_fin": "31/08/2022",
"date_fin_iso": "2022-08-31",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"edt_id": null,
"elt_annee_apo": null,
"elt_passage_apo": null,
"elt_sem_apo": null,
"ens_can_edit_eval": false,
"etape_apo": "A1, A2, A3",
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
},
"formation_id": 1,
"formsemestre_id": 1,
"gestion_compensation": false,
"gestion_semestrielle": false,
"id": 1,
"modalite": "FI",
"mode_calcul_moyennes": 0,
"parcours": [
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 1
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 2
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "Cyber",
"libelle": "Cybers\u00e9curit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 1
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 2
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "DevCloud",
"libelle": "De\u0301veloppement syste\u0300me et cloud",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 1
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 2
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "IOM",
"libelle": "Internet des objets et mobilit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 1
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 2
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "PPR",
"libelle": "Pilotage de projets de re\u0301seaux",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 1
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 2
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "ROM",
"libelle": "R\u00e9seaux Op\u00e9rateurs et Multim\u00e9dia",
"numero": 0
}
],
"resp_can_change_ens": true,
"resp_can_edit": false,
"responsables": [],
"scodoc7_id": null,
"semestre_id": 1,
"session_id": "TAPI-BUT-FI-S1-2021",
"titre": "Semestre test",
"titre_court": "BUT R&T",
"titre_formation": "BUT R&T",
"titre_num": "Semestre test semestre 1"
}
```

View File

@ -1,444 +0,0 @@
### formsemestre_infos
#### GET /formsemestre/1
```json
{
"annee_scolaire": 2021,
"block_moyenne_generale": false,
"block_moyennes": false,
"bul_bgcolor": "white",
"bul_hide_xml": false,
"date_debut": "01/09/2021",
"date_debut_iso": "2021-09-01",
"date_fin": "31/08/2022",
"date_fin_iso": "2022-08-31",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"edt_id": null,
"elt_annee_apo": null,
"elt_passage_apo": null,
"elt_sem_apo": null,
"ens_can_edit_eval": false,
"etape_apo": "A1, A2, A3",
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
},
"formation_id": 1,
"formsemestre_id": 1,
"gestion_compensation": false,
"gestion_semestrielle": false,
"id": 1,
"modalite": "FI",
"mode_calcul_moyennes": 0,
"parcours": [
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 1
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 2
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "Cyber",
"libelle": "Cybers\u00e9curit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 1
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 2
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "DevCloud",
"libelle": "De\u0301veloppement syste\u0300me et cloud",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 1
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 2
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "IOM",
"libelle": "Internet des objets et mobilit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 1
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 2
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "PPR",
"libelle": "Pilotage de projets de re\u0301seaux",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 1
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 2
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "ROM",
"libelle": "R\u00e9seaux Op\u00e9rateurs et Multim\u00e9dia",
"numero": 0
}
],
"resp_can_change_ens": true,
"resp_can_edit": false,
"responsables": [],
"scodoc7_id": null,
"semestre_id": 1,
"session_id": "TAPI-BUT-FI-S1-2021",
"titre": "Semestre test",
"titre_court": "BUT R&T",
"titre_formation": "BUT R&T",
"titre_num": "Semestre test semestre 1"
}
```

View File

@ -1,34 +0,0 @@
### formsemestre_partitions
#### GET /formsemestre/1/partitions
```json
{
"2": {
"bul_show_rank": false,
"formsemestre_id": 1,
"groups": {
"2": {
"edt_id": null,
"group_name": "A",
"id": 2,
"numero": 0,
"partition_id": 2
},
"3": {
"edt_id": null,
"group_name": "B",
"id": 3,
"numero": 1,
"partition_id": 2
}
},
"groups_editable": true,
"id": 2,
"numero": 1,
"partition_id": 2,
"partition_name": "TD",
"show_in_lists": true
}
}
```

View File

@ -0,0 +1,886 @@
### formsemestres-query
#### GET /formsemestres/query?annee_scolaire=2022&etape_apo=A2
```json
[
{
"annee_scolaire": 2021,
"block_moyenne_generale": false,
"block_moyennes": false,
"bul_bgcolor": "white",
"bul_hide_xml": false,
"date_debut": "01/09/2021",
"date_debut_iso": "2021-09-01",
"date_fin": "31/08/2022",
"date_fin_iso": "2022-08-31",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"elt_annee_apo": null,
"elt_sem_apo": null,
"ens_can_edit_eval": false,
"etape_apo": "A1, A2, A3",
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
},
"formation_id": 1,
"formsemestre_id": 1,
"gestion_compensation": false,
"gestion_semestrielle": false,
"id": 1,
"modalite": "FI",
"parcours": [
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 1
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 2
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "Cyber",
"libelle": "Cybers\u00e9curit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 1
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 2
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "DevCloud",
"libelle": "De\u0301veloppement syste\u0300me et cloud",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 1
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 2
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "IOM",
"libelle": "Internet des objets et mobilit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 1
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 2
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "PPR",
"libelle": "Pilotage de projets de re\u0301seaux",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 1
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 2
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "ROM",
"libelle": "R\u00e9seaux Op\u00e9rateurs et Multim\u00e9dia",
"numero": 0
}
],
"resp_can_change_ens": true,
"resp_can_edit": false,
"responsables": [],
"scodoc7_id": null,
"semestre_id": 1,
"session_id": "TAPI-BUT-FI-S1-2021",
"titre": "Semestre test",
"titre_court": "BUT R&T",
"titre_formation": "BUT R&T",
"titre_num": "Semestre test semestre 1"
},
"..."
]
```
#### GET /formsemestres/query?nip=11
```json
[
{
"annee_scolaire": 2021,
"block_moyenne_generale": false,
"block_moyennes": false,
"bul_bgcolor": "white",
"bul_hide_xml": false,
"date_debut": "01/09/2021",
"date_debut_iso": "2021-09-01",
"date_fin": "31/08/2022",
"date_fin_iso": "2022-08-31",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"elt_annee_apo": null,
"elt_sem_apo": null,
"ens_can_edit_eval": false,
"etape_apo": "A1, A2, A3",
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
"dept_name": "TAPI",
"description": null,
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"referentiel_competence_id": 1,
"titre": "BUT R&T",
"titre_officiel": "Bachelor technologique r\u00e9seaux et t\u00e9l\u00e9communications",
"type_parcours": 700,
"version": 1
},
"formation_id": 1,
"formsemestre_id": 1,
"gestion_compensation": false,
"gestion_semestrielle": false,
"id": 1,
"modalite": "FI",
"parcours": [
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 1
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Surveiller": {
"id_orebut": "0f341f4017cfa432f98534cdc57fad85",
"niveau": 2
},
"S\u00e9curiser": {
"id_orebut": "5f275775f2c68c75550e97b9dcaadc79",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "Cyber",
"libelle": "Cybers\u00e9curit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 1
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"D\u00e9velopper": {
"id_orebut": "5d428a85a9bfa024fb83aae3d6d7353b",
"niveau": 2
},
"Orchestrer": {
"id_orebut": "c28c4205d654a72811f3a7ea63f4d8ec",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "DevCloud",
"libelle": "De\u0301veloppement syste\u0300me et cloud",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 1
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Etendre": {
"id_orebut": "1a44792b51880107bdcbb63e995581d1",
"niveau": 2
},
"Exploiter": {
"id_orebut": "58109285af1087d2cd5b7b9dd1b92b92",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "IOM",
"libelle": "Internet des objets et mobilit\u00e9",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 1
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Organiser": {
"id_orebut": "98f7d9b39bb503ce64755c6148cbc66d",
"niveau": 2
},
"Piloter": {
"id_orebut": "95742cf15ea805ff7ddae4ed3b893597",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
}
},
"ordre": 3
}
},
"code": "PPR",
"libelle": "Pilotage de projets de re\u0301seaux",
"numero": 0
},
{
"annees": {
"1": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 1
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 1
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 1
}
},
"ordre": 1
},
"2": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 2
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 2
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 2
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 1
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 1
}
},
"ordre": 2
},
"3": {
"competences": {
"Administrer": {
"id_orebut": "8fefe00b9ed3cd57da2e5174b4bc6282",
"niveau": 3
},
"Connecter": {
"id_orebut": "d68c47e3ed9820ce41613f31c60a226e",
"niveau": 3
},
"Programmer": {
"id_orebut": "baec10409ad866b2c21a280e9a94a35e",
"niveau": 3
},
"Rapprocher": {
"id_orebut": "fc8588c8a115ac3a17e16ed59cfd7e79",
"niveau": 2
},
"Unifier": {
"id_orebut": "7301e73a203a85e6b2cb957dc5223e29",
"niveau": 2
}
},
"ordre": 3
}
},
"code": "ROM",
"libelle": "R\u00e9seaux Op\u00e9rateurs et Multim\u00e9dia",
"numero": 0
}
],
"resp_can_change_ens": true,
"resp_can_edit": false,
"responsables": [],
"scodoc7_id": null,
"semestre_id": 1,
"session_id": "TAPI-BUT-FI-S1-2021",
"titre": "Semestre test",
"titre_court": "BUT R&T",
"titre_formation": "BUT R&T",
"titre_num": "Semestre test semestre 1"
},
"..."
]
```

View File

@ -0,0 +1,9 @@
### group-delete
#### POST /group/2/delete
```json
{
"OK": true
}
```

View File

@ -1,16 +1,15 @@
### group_edit ### group-edit
#### POST /group/1/edit #### POST /group/2/edit
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `{"group_name":"A1"}` > `{"group_name": "NEW_GROUP2"}`
```json ```json
{ {
"edt_id": null, "group_name": "NEW_GROUP2",
"group_name": "A1", "id": 2,
"id": 1, "numero": null,
"numero": 0,
"partition": { "partition": {
"bul_show_rank": false, "bul_show_rank": false,
"formsemestre_id": 1, "formsemestre_id": 1,

View File

@ -0,0 +1,41 @@
### group-etudiants-query
#### GET /group/1/etudiants/query?etat=D
```json
[
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE5",
"code_nip": "5",
"dept_id": 1,
"id": 5,
"nom": "VILLENEUVE",
"nom_usuel": null,
"prenom": "FRAN\u00c7OISE",
"prenom_etat_civil": "",
"sort_key": [
"villeneuve",
"francoise"
]
},
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
"id": 10,
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"boutet",
"marguerite"
]
},
"..."
]
```

View File

@ -1,33 +1,39 @@
### group_etudiants ### group-etudiants
#### GET /group/1/etudiants #### GET /group/1/etudiants
```json ```json
[ [
{ {
"civilite": "X", "civilite": "X",
"civilite_etat_civil": null, "civilite_etat_civil": "X",
"code_ine": "INE1", "code_ine": "INE1",
"code_nip": "1", "code_nip": "1",
"dept_id": 1, "dept_id": 1,
"id": 1, "id": 1,
"nom": "GROSS", "nom": "COSTA",
"nom_usuel": null, "nom_usuel": null,
"prenom": "NOUVEAU PR\u00c9NOM", "prenom": "SACHA",
"prenom_etat_civil": null, "prenom_etat_civil": "",
"sort_key": "gross;nouveau prenom" "sort_key": [
"costa",
"sacha"
]
}, },
{ {
"civilite": "F", "civilite": "F",
"civilite_etat_civil": null, "civilite_etat_civil": "X",
"code_ine": "2", "code_ine": "2",
"code_nip": "NIP2", "code_nip": "NIP2",
"dept_id": 1, "dept_id": 1,
"id": 2, "id": 2,
"nom": "WALTER", "nom": "NAUDIN",
"nom_usuel": null, "nom_usuel": null,
"prenom": "SIMONE", "prenom": "SIMONE",
"prenom_etat_civil": null, "prenom_etat_civil": "",
"sort_key": "walter;simone" "sort_key": [
"naudin",
"simone"
]
}, },
"..." "..."
] ]

View File

@ -0,0 +1,10 @@
### group-remove_etudiant
#### POST /group/1/remove_etudiant/10
```json
{
"etudid": 10,
"group_id": 1
}
```

View File

@ -0,0 +1,10 @@
### group-set_etudiant
#### POST /group/1/set_etudiant/10
```json
{
"etudid": 10,
"group_id": 1
}
```

View File

@ -1,23 +0,0 @@
### group_set_edt_id
#### POST /group/1/set_edt_id/EDT_GR1
```json
{
"edt_id": "EDT_GR1",
"group_name": "A1",
"id": 1,
"numero": 0,
"partition": {
"bul_show_rank": false,
"formsemestre_id": 1,
"groups_editable": true,
"id": 1,
"numero": 0,
"partition_id": 1,
"partition_name": null,
"show_in_lists": true
},
"partition_id": 1
}
```

View File

@ -1,10 +0,0 @@
### justif_list
#### GET /justificatif/1/list
```json
{
"filenames": [],
"total": 0
}
```

View File

@ -0,0 +1,22 @@
### justificatif_create
#### POST /justificatif/1/create
> `Content-Type: application/json`
>
> `[{"date_debut": "2023-10-27T08:00","date_fin": "2023-10-27T10:00","etat": "attente"}]`
```json
{
"errors": [],
"success": [
{
"indice": 0,
"message": {
"couverture": [],
"justif_id": 25
}
}
]
}
```

View File

@ -1,4 +1,4 @@
### justif_delete ### justificatif_delete
#### POST /justificatif/delete #### POST /justificatif/delete
> `Content-Type: application/json` > `Content-Type: application/json`

View File

@ -1,4 +1,20 @@
### justif_edit ### justificatif_edit
#### POST /justificatif/1/edit
> `Content-Type: application/json`
>
> `{"etat":"valide"}`
```json
{
"couverture": {
"apres": [
1
],
"avant": []
}
}
```
#### POST /justificatif/1/edit #### POST /justificatif/1/edit
> `Content-Type: application/json` > `Content-Type: application/json`
@ -18,19 +34,3 @@
} }
``` ```
#### POST /justificatif/1/edit
> `Content-Type: application/json`
>
> `{"etat":"valide"}`
```json
{
"couverture": {
"apres": [
1
],
"avant": []
}
}
```

View File

@ -0,0 +1,7 @@
### justificatif_export
#### POST /justificatif/1/export/nom_fichier
```console
téléchargement du fichier
```

View File

@ -0,0 +1,11 @@
### justificatif_import
#### POST /justificatif/1/import
> `Content-Type: multipart/form-data`
>
> `binary file`
```json
{ "filename": "nom_du_fichier" }
```

View File

@ -1,10 +1,7 @@
### justif_justifies ### justificatif_justifies
#### GET /justificatif/1/justifies #### GET /justificatif/1/justifies
```json
[
1,
"..."
]
```
```json
[1, 2, "..."]
```

View File

@ -0,0 +1,10 @@
### justificatif_list
#### GET /justificatif/1/list
```json
{
"total": 1,
"filenames": ["nom_fichier"]
}
```

View File

@ -0,0 +1,25 @@
### justificatif_remove
#### POST /justificatif/1/remove
> `Content-Type: application/json`
>
> `{"remove" : "all"}`
```json
{
"response": "remove"
}
```
#### POST /justificatif/1/remove
> `Content-Type: application/json`
>
> `{"remove" : "list", "filenames": ["nom_fichier"]}`
```json
{
"response": "remove"
}
```

View File

@ -29,3 +29,85 @@
] ]
``` ```
#### 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
},
"..."
]
```

View File

@ -1,10 +0,0 @@
### logo_get_global
#### GET /logo/B
```json
{
"Content-Disposition": "inline; filename=logo_B.jpg",
"Content-Type": "image/jpg"
}
```

View File

@ -1,11 +0,0 @@
### logo_list_globals
#### GET /logos
```json
[
"header-villetaneuse",
"C",
"..."
]
```

View File

@ -1,19 +1,14 @@
### moduleimpl_evaluations ### moduleimpl-evaluations
#### GET /moduleimpl/1/evaluations #### GET /moduleimpl/1/evaluations
```json ```json
[ [
{ {
"blocked": false,
"blocked_until": "",
"coefficient": 1.0, "coefficient": 1.0,
"date": "", "date_debut": "2022-08-20T12:00:00.000000+02:00",
"date_debut": "", "date_fin": "2022-08-20T12:00:00.000000+02:00",
"date_fin": "", "description": null,
"description": "Evaluation-R101",
"evaluation_type": 0, "evaluation_type": 0,
"heure_debut": "",
"heure_fin": "",
"id": 1, "id": 1,
"moduleimpl_id": 1, "moduleimpl_id": 1,
"note_max": 20.0, "note_max": 20.0,

View File

@ -1,9 +0,0 @@
### moduleimpl_etud_desinscrit
#### POST /moduleimpl/1/etudid/2/desinscrit
```json
{
"status": "ok"
}
```

View File

@ -1,11 +0,0 @@
### moduleimpl_etud_inscription
#### POST /moduleimpl/1/etudid/2/inscription
```json
{
"etudid": 2,
"id": 22,
"moduleimpl_id": 1
}
```

View File

@ -1,11 +0,0 @@
### moduleimpl_etud_inscrit
#### POST /moduleimpl/1/etudid/2/inscrit
```json
{
"etudid": 2,
"id": 22,
"moduleimpl_id": 1
}
```

View File

@ -1,19 +0,0 @@
### moduleimpl_inscriptions
#### GET /moduleimpl/1/inscriptions
```json
[
{
"etudid": 1,
"id": 1,
"moduleimpl_id": 1
},
{
"etudid": 2,
"id": 22,
"moduleimpl_id": 1
},
"..."
]
```

View File

@ -1,31 +0,0 @@
### moduleimpl_notes
#### GET /moduleimpl/1/notes
```json
[
{
"1": "",
"22": "",
"etudid": 4,
"moy_ue_1": "~",
"moy_ue_2": "~",
"moy_ue_3": "~",
"moymod": "~",
"nom": "BARTHELEMY",
"prenom": "G\u00e9rard"
},
{
"1": "",
"22": "",
"etudid": 9,
"moy_ue_1": "~",
"moy_ue_2": "~",
"moy_ue_3": "~",
"moymod": "~",
"nom": "BENOIT",
"prenom": "Emmanuel"
},
"..."
]
```

View File

@ -0,0 +1,9 @@
### partition-delete
#### POST /partition/2/delete
```json
{
"OK": true
}
```

View File

@ -0,0 +1,28 @@
### partition-edit
#### POST /partition/1/edit
> `Content-Type: application/json`
>
> `{"partition_name":"P2BIS", "numero":3,"bul_show_rank":true,"show_in_lists":false, "groups_editable":true}`
```json
{
"bul_show_rank": true,
"formsemestre_id": 1,
"groups": {
"1": {
"group_name": "",
"id": 1,
"numero": 0,
"partition_id": 1
}
},
"groups_editable": true,
"id": 1,
"numero": 3,
"partition_id": 1,
"partition_name": "P2BIS",
"show_in_lists": false
}
```

View File

@ -1,16 +1,15 @@
### group_create ### partition-group-create
#### POST /partition/1/group/create #### POST /partition/1/group/create
> `Content-Type: application/json` > `Content-Type: application/json`
> >
> `{"group_name" : "Nouveau Groupe"}` > `{"group_name": "NEW_GROUP"}`
```json ```json
{ {
"edt_id": null, "group_name": "NEW_GROUP",
"group_name": "Nouveau Groupe", "id": 2,
"id": 4, "numero": null,
"numero": 1,
"partition": { "partition": {
"bul_show_rank": false, "bul_show_rank": false,
"formsemestre_id": 1, "formsemestre_id": 1,

View File

@ -1,13 +1,16 @@
### partition_info ### partition-groups-order
#### POST /partition/1/groups/order
> `Content-Type: application/json`
>
> `[ 1 ]`
#### GET /partition/1
```json ```json
{ {
"bul_show_rank": false, "bul_show_rank": true,
"formsemestre_id": 1, "formsemestre_id": 1,
"groups": { "groups": {
"1": { "1": {
"edt_id": null,
"group_name": "", "group_name": "",
"id": 1, "id": 1,
"numero": 0, "numero": 0,
@ -16,10 +19,10 @@
}, },
"groups_editable": true, "groups_editable": true,
"id": 1, "id": 1,
"numero": 0, "numero": 3,
"partition_id": 1, "partition_id": 1,
"partition_name": null, "partition_name": "P2BIS",
"show_in_lists": true "show_in_lists": false
} }
``` ```

Some files were not shown because too many files have changed in this diff Show More