infos sur ScoDoc 9
This commit is contained in:
parent
f9c2ef5956
commit
e713143096
@ -17,7 +17,7 @@ départements. Le reste des paramétrages (création de comptes, de formations,
|
||||
d'étudiants, etc) se fait à partir du logiciel (web).
|
||||
|
||||
L'administration se fait dans un terminal connecté au serveur (en général via
|
||||
ssh), en tant qu'utilisateur `scodoc` (et non `root`).
|
||||
ssh), en tant qu'utilisateur `scodoc` (*et non* `root`).
|
||||
|
||||
Se connecter et initialiser la session ainsi:
|
||||
|
||||
@ -29,6 +29,8 @@ Se connecter et initialiser la session ainsi:
|
||||
source venv/bin/activate
|
||||
|
||||
Après quoi, vous pouvez utiliser les commandes décrites ci-dessous.
|
||||
*Attention: le lancement de chaque commande est assez long (quelques secondes)
|
||||
car toute l'application scodoc est initialisée à chaque fois.*
|
||||
|
||||
## Création d'un département
|
||||
|
||||
@ -45,8 +47,8 @@ immédiatement après la création.
|
||||
flask delete-dept DEPT
|
||||
|
||||
## Création d'un utilisateur
|
||||
Cette opération s'effectue en général depuyis le logiciel, via un formulaire
|
||||
ou un import excel. Depuis la consoile, faire:
|
||||
Cette opération s'effectue en général depuis le logiciel, via un formulaire
|
||||
ou un import excel. Pour créer un utilisateur depuis le terminal, lancer:
|
||||
|
||||
flask user-create LOGIN ROLE DEPT
|
||||
|
||||
@ -72,6 +74,21 @@ console:
|
||||
où `LOGIN` est le pseudo de l'utilisateur. Le mot de passe est demandé
|
||||
sur la ligne de commande.
|
||||
|
||||
## Création d'un nouveau rôle
|
||||
|
||||
flask create-role role_name [permissions...]
|
||||
|
||||
Exemple: création d'une rôle "Observateur" ayant juste la persmision de "voir":
|
||||
|
||||
flask create-role Observateur ScoView
|
||||
|
||||
## Édition d'un rôle (ajout/retrait permissions)
|
||||
|
||||
flask edit-role [-a permission] [-r permission] role_name
|
||||
|
||||
Ajoute ou retire une permission.
|
||||
|
||||
|
||||
## Migration des données de ScoDoc 7
|
||||
Les données dans ScoDoc 9 ayant un format et une organisation très différents
|
||||
de ScoDoc 7, une étape de conversion (migration) est nécessaire. Elle est automatique
|
||||
@ -79,7 +96,9 @@ mais prends du temps.
|
||||
|
||||
Se reporter à [MigrationScoDoc7a9](MigrationScoDoc7a9.md)
|
||||
|
||||
Au besoin (cas rare), utiliser les commandes ci-dessous.
|
||||
Ces commandes sont utilisées par le script de migration de ScoDoc 7 à ScoDoc 9.
|
||||
*Ne pas utiliser sauf si vous savez vraiment ce que vous faites.*
|
||||
|
||||
### Comptes utilisateurs
|
||||
|
||||
Toujours migrer les comptes utilisateurs avant d'importer les
|
||||
@ -88,7 +107,6 @@ départements.
|
||||
flask import-scodoc7-users
|
||||
|
||||
### Départements
|
||||
|
||||
Pour migrer un seul département:
|
||||
|
||||
flask import-scodoc7-dept DEPT DBNAME
|
||||
@ -97,6 +115,92 @@ Exemple:
|
||||
|
||||
flask import-scodoc7-dept InfoComm DBINFOCOMM
|
||||
|
||||
## Liste des commandes Flask/ScoDoc
|
||||
```
|
||||
Commands:
|
||||
clear-cache Clear ScoDoc cache (currently Redis)
|
||||
create-dept Create new departement
|
||||
delete-dept Delete existing departement
|
||||
edit-role Add [-a] and/or remove [-r] a permission to/from a role
|
||||
import-scodoc7-dept Import département ScoDoc 7
|
||||
import-scodoc7-users Import users defined in ScoDoc7 postgresql
|
||||
sco-db-init Initialize the database.
|
||||
user-create Create a new user
|
||||
user-db-clear Erase all users and roles from the database !
|
||||
user-password Set (or change) user's password
|
||||
|
||||
Usage: app sco-db-init [OPTIONS]
|
||||
|
||||
Initialize the database. Starts from an existing database and create all the
|
||||
necessary SQL tables and functions.
|
||||
|
||||
Usage: app user-db-clear [OPTIONS]
|
||||
|
||||
Erase all users and roles from the database !
|
||||
|
||||
Usage: app user-create [OPTIONS] USERNAME ROLE DEPT
|
||||
|
||||
Create a new user
|
||||
|
||||
Options:
|
||||
-n, --nom TEXT
|
||||
-p, --prenom TEXT
|
||||
|
||||
|
||||
Usage: app user-password [OPTIONS] USERNAME
|
||||
|
||||
Set (or change) user's password
|
||||
|
||||
Options:
|
||||
--password TEXT
|
||||
|
||||
|
||||
Usage: app edit-role [OPTIONS] ROLENAME
|
||||
|
||||
Add [-a] and/or remove [-r] a permission to/from a role. In ScoDoc,
|
||||
permissions are not associated to users but to roles. Each user has a set of
|
||||
roles in each departement.
|
||||
|
||||
Example: `flask edit-role -a ScoEditApo Ens`
|
||||
|
||||
Options:
|
||||
-a, --add TEXT
|
||||
-r, --remove TEXT
|
||||
|
||||
|
||||
Usage: app delete-dept DEPT
|
||||
|
||||
Delete existing departement
|
||||
|
||||
|
||||
Usage: app create-dept DEPT
|
||||
|
||||
Create new departement
|
||||
|
||||
|
||||
Usage: app import-scodoc7-users
|
||||
|
||||
Import used defined in ScoDoc7 postgresql database into ScoDoc 9 The old
|
||||
database SCOUSERS must be alive and readable by the current user. This
|
||||
script is typically run as unix user "scodoc". The original SCOUSERS
|
||||
database is left unmodified.
|
||||
|
||||
|
||||
Usage: app import-scodoc7-dept DEPT DEPT_DB_NAME
|
||||
|
||||
Import département ScoDoc 7: dept: InfoComm, dept_db_name: SCOINFOCOMM
|
||||
|
||||
|
||||
Usage: app clear-cache
|
||||
|
||||
Clear ScoDoc cache This cache (currently Redis) is persistent between
|
||||
invocation and it may be necessary to clear it during development or tests.
|
||||
|
||||
Options:
|
||||
--help Show this message and exit.
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Changement des logos apparaissant sur les documents
|
||||
|
||||
@ -112,18 +216,24 @@ dans le répertoire
|
||||
avec les noms `logo_header.jpg` (habituellement le logo de votre composante)
|
||||
et `logo_footer.jpg` (habituellement le logo de votre université ou école).
|
||||
|
||||
Ensuite, éditez le fichier
|
||||
On peut fournir des logos par département en créant des sous-répertoires
|
||||
|
||||
/opt/scodoc-data/config/logos/logo_<dept>/
|
||||
|
||||
pour y placer les fichiers images `logo_header.jpg` et `logo_footer.jpg`.
|
||||
|
||||
<!-- Ensuite, éditez le fichier
|
||||
|
||||
/opt/scodoc-data/config/logos
|
||||
|
||||
et changer les valeurs des variables `CONFIG.LOGO_FOOTER_ASPECT` et suivantes
|
||||
(ce n'est pas pratique, il faudrait modifier le code ScoDoc pour calculer ces valeurs
|
||||
à partir des fichiers images).
|
||||
à partir des fichiers images). -->
|
||||
|
||||
Enfin, redémarrez ScoDoc après avoir vidé les caches:
|
||||
|
||||
flask clear-cache
|
||||
systemctl restart scodoc9
|
||||
sudo systemctl restart scodoc9
|
||||
|
||||
|
||||
# Utilisation via le Web
|
||||
|
@ -17,7 +17,7 @@ Informations pour les développeurs souhaitant étendre ou modifier ScoDoc.
|
||||
|
||||
## Développer sur ScoDoc
|
||||
|
||||
Quelques conseils, indications et mémos pour les développeurs sur ScoDoc version 7.x et 8.
|
||||
Quelques conseils, indications et mémos pour les développeurs sur ScoDoc version 9.
|
||||
|
||||
### Installation d'un serveur de développement
|
||||
[Quelques conseils mouvants pour configurer votre serveur de développement](ConseilServeurDev.md)
|
||||
@ -26,7 +26,8 @@ Quelques conseils, indications et mémos pour les développeurs sur ScoDoc versi
|
||||
L'ancienneté de la base de code a rendu le style un peu incohérent, mais cela
|
||||
s'améliore avec ScoDoc 9 (respect PEP 8).
|
||||
|
||||
Le code doit être formatté avec [`black`](https://black.readthedocs.io/) avant tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement).
|
||||
Le code doit être formatté avec [`black`](https://black.readthedocs.io/) avant
|
||||
tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement).
|
||||
|
||||
#### Documentation
|
||||
On adoptera le style "Google": <https://google.github.io/styleguide/pyguide.html#383-functions-and-methods>
|
||||
@ -57,7 +58,8 @@ Exemple:
|
||||
|
||||
Le dépot est <https://scodoc.org/git/viennet/ScoDoc>
|
||||
|
||||
La branche `master` est celle de ScoDoc 9 (pas encore en production). La branche `Scodoc7` est l'ancienne (actuelle jusqu'à septembre 2021) en production.
|
||||
La branche `master` est celle de ScoDoc 9 (pas encore en production). La branche
|
||||
`Scodoc7` est l'ancienne (actuelle jusqu'à septembre 2021) en production.
|
||||
|
||||
Ci-dessous quelques pense-bête qui peuvent servir.
|
||||
#### Hot fixes (internes)
|
||||
|
@ -127,6 +127,15 @@ ou le créer contenant juste cette ligne:
|
||||
- Installer le logiciel:
|
||||
|
||||
apt-get update
|
||||
apt-get install nginx
|
||||
|
||||
S'assurer que le logiciel `nginx`s'est bien installé. En cas de problème se
|
||||
référer à sa doc (par exemple, si
|
||||
[votre serveur ne supporte pas
|
||||
IPv6](https://techglimpse.com/nginx-error-address-family-solution/)).
|
||||
|
||||
Ensuite:
|
||||
|
||||
apt-get install scodoc9
|
||||
|
||||
Notez que l'installation du paquet `scodoc9` va créer automatiquement un
|
||||
|
@ -24,13 +24,13 @@ Dans ce cas, la migration va se faire en suivant les étapes:
|
||||
|
||||
Installer le nouveau serveur avec Debian 11 et ScoDoc 9.
|
||||
|
||||
Voir https://scodoc.org/GuideInstallDebian11
|
||||
Voir [GuideInstallDebian11](GuideInstallDebian11.md).
|
||||
|
||||
Vérifier que tout fonctionne avant d'aller plus loin.
|
||||
|
||||
### Étape 2: Sauvegarder les données du serveur ScoDoc 7
|
||||
|
||||
Se connecter en tant que `root`sur l'ancien serveur ScoDoc 7.
|
||||
Ouvrir un terminal en tant que `root`sur l'ancien serveur ScoDoc 7.
|
||||
|
||||
cd /opt/scodoc/Products/ScoDoc/config
|
||||
# Mise à jour indispensable pour avoir le script de migration
|
||||
@ -176,8 +176,8 @@ ou accentués dans les logins.
|
||||
|
||||
### 5. Vérifier que tout fonctionne
|
||||
|
||||
Vos départements et utiisateurs devraient être accessibles.
|
||||
L'utilisateur àdmin`créé à l'installation de ScoDoc 9 doit avoir accès à tout.
|
||||
Vos départements et utilisateurs devraient être accessibles.
|
||||
L'utilisateur `admin` créé à l'installation de ScoDoc 9 doit avoir accès à tout.
|
||||
|
||||
Vérifiez que les semestres, étudiants, photos, archives et comptes utilisateurs
|
||||
sont bien là.
|
||||
|
@ -1,23 +1,37 @@
|
||||
|
||||
## Préférences
|
||||
Les préférences sont des paramètres stockés dans la base de données d'un département. Les préférences s'appliquent à tout un département (tous les semestres), ou bien à un semestre particulier. Chaque département a son propre jeu de préférences (c'est parfois regrettable, car certaines préférences concernent tout l'établissement).
|
||||
Les préférences sont des paramètres stockés dans la base de données d'un
|
||||
département. Les préférences s'appliquent à tout un département (tous les
|
||||
semestres), ou bien à un semestre particulier. Chaque département a son propre
|
||||
jeu de préférences (c'est parfois regrettable, car certaines préférences
|
||||
concernent tout l'établissement).
|
||||
|
||||
|
||||
Si un semestre ne défini pas de valeur pour un paramètre (eg marge, police, paramétrage du bulletin de notes...), ScoDoc utilisera les préférences globales pour le département.
|
||||
Si un semestre ne défini pas de valeur pour un paramètre (eg marge, police,
|
||||
paramétrage du bulletin de notes...), ScoDoc utilisera les préférences globales
|
||||
pour le département.
|
||||
|
||||
Donc:
|
||||
|
||||
* Pour affecter tous les semestres sauf ceux qui ont dit autrement: suivre le lien "Paramétrage" dans la marge gauche (visible uniquement si vous en avez la permission).
|
||||
* Pour affecter tous les semestres sauf ceux qui ont dit autrement: suivre le
|
||||
lien "Paramétrage" dans la marge gauche (visible uniquement si vous en avez
|
||||
la permission).
|
||||
|
||||
* Pour affecter seulement un semestre: menu "Semestre", "Réglages bulletins" ou "Préférences du semestre".
|
||||
* Pour affecter seulement un semestre: menu "Semestre", "Réglages bulletins" ou
|
||||
"Préférences du semestre".
|
||||
|
||||
On accède aux préférences via le lien "Paramétrage", qui est présent dans la marge gauche seulement si l'on a le droit de modifier les préférences (la permission `Sco Change Preferences`, normalement associée au rôle `Admin` possédé par chef du département, voir [ConfigPermissions](ConfigPermissions.md)).
|
||||
On accède aux préférences via le lien "Paramétrage", qui est présent dans la
|
||||
marge gauche seulement si l'on a le droit de modifier les préférences (la
|
||||
permission `Sco Change Preferences`, normalement associée au rôle `Admin`
|
||||
possédé par chef du département, voir
|
||||
[ConfigPermissions](ConfigPermissions.md)).
|
||||
|
||||
On distingue plusieurs groupes de préférences:
|
||||
|
||||
* Générales: nom de l'Université, du directeur, etc...
|
||||
|
||||
* Absences: alarmes si beaucoup d'absences, statut des samedis... (voir détails sur [GestionAbsences](GestionAbsences.md))
|
||||
* Absences: alarmes si beaucoup d'absences, statut des samedis... (voir détails
|
||||
sur [GestionAbsences](GestionAbsences.md))
|
||||
|
||||
* Liaison avec le portail: URL du portail, code du département, ...
|
||||
|
||||
@ -28,5 +42,6 @@ On distingue plusieurs groupes de préférences:
|
||||
|
||||
Voir la liste des préférences sur la page [NomsPreferences](NomsPreferences.md).
|
||||
|
||||
Note: les préférences et leurs valeurs par défaut sont définies dans le fichier `sco_preferences.py`.
|
||||
Note pour les développeurs: les préférences et leurs valeurs par défaut sont
|
||||
définies dans le fichier `sco_preferences.py`.
|
||||
|
||||
|
945
docs/ScoDoc9API.md
Normal file
945
docs/ScoDoc9API.md
Normal file
@ -0,0 +1,945 @@
|
||||
|
||||
# API pour ScoDoc 9
|
||||
L'API ScoDoc permet à des applications tierces d'interroger ScoDoc. Elle offre un accès aux informations aux formats XML et JSON.
|
||||
|
||||
La version ScoDoc 9 a introduit une nouvelle API avec un nouveau mécanisme d'authentification.
|
||||
**Les clients de l'ancienne API ScoDoc 7 doivent être adaptés pour fonctionner avec ScoDoc 9.**
|
||||
|
||||
Cette API est encore incomplète: n'hésitez pas à demander de nouveaux accès en écrivant à la liste de diffusion.
|
||||
|
||||
L'API fournit des données JSON, sauf exception (bulletins).
|
||||
|
||||
Les objets ScoDoc manipulables sont identifiés par des id:
|
||||
|
||||
* etudid: étudiant
|
||||
* formation_id: un programme de formation (page "programmes");
|
||||
* ue_id: une UE dans un programme;
|
||||
* matiere_id: une matière dans un programme;
|
||||
* module_id: un module dans un programme.
|
||||
* formsmestre_id: un "semestre" de formation.
|
||||
|
||||
|
||||
L'URL complète est de la forme: `https://scodoc.example.com/ScoDoc/api/fonction
|
||||
|
||||
# Fonctions de l'API ScoDoc 7 portées en ScoDoc 9
|
||||
|
||||
Afin de garantir l'interopérabilité avec les clients ScoDoc 7 (ENT, etc), les
|
||||
fonctions suivantes sont disponibles avec le mécanisme d'authentification
|
||||
basique de ScoDoc 7. Elles sont considérées comme *obsolètes* ("deprecated") et
|
||||
disparaitront en juillet 2022.
|
||||
|
||||
Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès.
|
||||
|
||||
- `Absences/XMLgetBilletsEtud`
|
||||
- `Absences/listeBillets`
|
||||
- `Absences/XMLgetAbsEtud`
|
||||
- `Notes/formsemestre_list`
|
||||
- `Notes/formsemestre_bulletinetud`
|
||||
- `Notes/XMLgetFormsemestres`
|
||||
- `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos`
|
||||
|
||||
les routes ci-dessus s'entendent à partir de l'URL de base de votre ScoDoc, c'est
|
||||
à dire `https://votre.site.fr/ScoDoc/<dept>/Scolarite/`, et répondent en GET et
|
||||
en POST.
|
||||
|
||||
|
||||
# XXX à rédiger XXX Fonctions d'accès aux données
|
||||
## Départements
|
||||
* **`list_depts`**
|
||||
* Paramètres: `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml)
|
||||
* Résultat: liste des id de départements.
|
||||
|
||||
## Programmes de formations
|
||||
* **`formation_list`**
|
||||
* Paramètres: `formation_id` (optionnel, si absent liste toutes les formations)
|
||||
* Résultat: liste de formations.
|
||||
|
||||
* **`formation_export`**
|
||||
* Paramètres: `formation_id`, `export_ids` (défaut "faux")
|
||||
* Résultat: la formation, avec UE, matières, modules (un arbre).
|
||||
|
||||
|
||||
## Semestres de formation
|
||||
Les sessions de formation (dénommées "semestres" même si elles durent une année ou un mois) sont représentées par les `formsemestre`.
|
||||
|
||||
* **`formsemestre_list`**
|
||||
* Paramètres (tous optionnels): `formsemestre_id`, `formation_id`, `etape_apo`, `etape_apo2`
|
||||
* Résultat: liste des semestres correspondant.
|
||||
* Exemple: `formsemestre_list?format=xml&etape_apo=V1RT`
|
||||
|
||||
Note sur les identifiants de sessions: le `session_id` peut être utilisé pour identifier de façon prévisible et (presque) unique une session dans un établissement, ce qui est utile notamment pour interfacer ScoDoc à d'autres logiciels (eg gestion d'emplois du temps ou de services d'enseignement). Cet identifiant est constitué des informations suivantes:
|
||||
|
||||
* Département (RT, GEII, INFO...) (= paramètre `DeptName`, en majuscules)
|
||||
* Nom parcours: DUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME)
|
||||
* Modalité: FI, FC, FA
|
||||
* "Spécialité" : S1 (ou S1D pour les sem. décalés), ou le `code_specialite` si pas de semestres. Le code spécialité est un champ (libre) nouveau dans la "formation" (programme pédagogique).
|
||||
* Année: année de début de l'année scolaire correspondante (eg 2014 pour une session appartenant à l'année scolaire 2014-2015, même si elle commence en mars 2015).
|
||||
|
||||
Exemple: `INFO-DUT-FI-S1-2014` : semestre S1 d'un DUT informatique de 2014 en formation initiale (FI)
|
||||
|
||||
|
||||
|
||||
|
||||
## Groupes et partitions
|
||||
L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieurs partitions (types de groupes). Chaque partition est constituée d'un nombre quelconque de groupes d'étudiants.
|
||||
|
||||
* **`formsemestre_partition_list`**
|
||||
* Paramètres: `formsemestre_id`
|
||||
* Résultat:
|
||||
* Exemple: ici au format JSON
|
||||
```
|
||||
[
|
||||
{
|
||||
"formsemestre_id": "SEM12781",
|
||||
"partition_id": "P23840",
|
||||
"partition_name": "TD"
|
||||
"group": [
|
||||
{
|
||||
"formsemestre_id": "SEM12781",
|
||||
"partition_id": "P23840",
|
||||
"group_name": "A",
|
||||
"group_id": "G23841",
|
||||
"partition_name": "TD"
|
||||
},
|
||||
{
|
||||
"formsemestre_id": "SEM12781",
|
||||
"partition_id": "P23840",
|
||||
"group_name": "B",
|
||||
"group_id": "G23843",
|
||||
"partition_name": "TD"
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"formsemestre_id": "SEM12781",
|
||||
"partition_id": "P23941",
|
||||
"partition_name": "TP"
|
||||
"group": [
|
||||
{
|
||||
"formsemestre_id": "SEM12781",
|
||||
"partition_id": "P23941",
|
||||
"group_name": "A1",
|
||||
"group_id": "G23942",
|
||||
"partition_name": "TP"
|
||||
},
|
||||
{
|
||||
"formsemestre_id": "SEM12781",
|
||||
"partition_id": "P23941",
|
||||
"group_name": "A2",
|
||||
"group_id": "G23943",
|
||||
"partition_name": "TP"
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"formsemestre_id": "SEM12781",
|
||||
"partition_id": "P22833",
|
||||
"partition_name": null
|
||||
"group": [
|
||||
{
|
||||
"formsemestre_id": "SEM12781",
|
||||
"partition_id": "P22833",
|
||||
"group_name": null,
|
||||
"group_id": "G22834",
|
||||
"partition_name": null
|
||||
}
|
||||
],
|
||||
}
|
||||
]
|
||||
```
|
||||
* **`groups_view`**
|
||||
* Paramètres: `formsemestre_id `ou `group_ids` (peut être répété), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I`
|
||||
* Résultat: liste des étudiants dans un groupe.
|
||||
* Exemple: ici au format XML avec `with_codes=1`:
|
||||
```
|
||||
<group_list origin="" caption="soit 21 étudiants inscrits et 2 démissionaires." id="gt_711068">
|
||||
|
||||
<etud>
|
||||
<nom value="TOTO"/>
|
||||
<prenom value="Marc"/>
|
||||
<etat value="I"/>
|
||||
<email value="toto@example.com"/>
|
||||
<etudid value="EID9876"/>
|
||||
<code_nip value="987654"/>
|
||||
<code_ine value=""/>
|
||||
</etud>
|
||||
|
||||
<etud>
|
||||
<nom value="ALVIS SAMOS"/>
|
||||
<prenom value="NATHALIE"/>
|
||||
<etat value="I"/>
|
||||
<email value="xxx@example.com"/>
|
||||
<etudid value="EID12345"/>
|
||||
<code_nip value="12345678"/>
|
||||
<code_ine value=""/>
|
||||
</etud>
|
||||
</group_list>
|
||||
```
|
||||
Et un autre exemple en format JSON:
|
||||
```
|
||||
[
|
||||
{
|
||||
"etat":"I",
|
||||
"emailperso":null,
|
||||
"prenom":"Dalil",
|
||||
"nom_disp":"CLINTO",
|
||||
"email":"xxx@example.com",
|
||||
"P62029":"A",
|
||||
"P62032":null,
|
||||
"P62031":"G1",
|
||||
"P62030":"A1"
|
||||
},
|
||||
{
|
||||
"etat":"I",
|
||||
"emailperso":null,
|
||||
"prenom":"Georges",
|
||||
"nom_disp":"BUSH",
|
||||
"email":"bush@example.com",
|
||||
"P62029":"A",
|
||||
"P62032":null,
|
||||
"P62031":"G1",
|
||||
"P62030":"A1"
|
||||
},
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
## Etudiants
|
||||
* **`etud_info`**
|
||||
* Paramètres: `etudid` ou `code_nip` ou `code_ine`
|
||||
* Résultat: informations sur cette étudiant et les semestres dans lesquels il est (ou a été) inscrit.
|
||||
* Exemple: `etud_info?format=json&etudid=12345`
|
||||
```
|
||||
{
|
||||
"nom": "Mutis",
|
||||
"sexe": "M.",
|
||||
"email": "alvaro.mutis@example.com",
|
||||
"prenom": "ALVARO",
|
||||
"nomprenom": "M. Alvaro MUTIS",
|
||||
"insemestre": [
|
||||
{
|
||||
"etat": "I",
|
||||
"formsemestre_id": "SEM12781",
|
||||
"date_fin": "2010-07-30",
|
||||
"date_debut": "2010-01-25"
|
||||
},
|
||||
{
|
||||
"etat": "I",
|
||||
"formsemestre_id": "SEM8396",
|
||||
"date_fin": "2009-01-16",
|
||||
"date_debut": "2008-09-01"
|
||||
}
|
||||
],
|
||||
"code_ine": "",
|
||||
"etudid": "EID8768",
|
||||
"code_nip": "10991002",
|
||||
"photo_url": "/ScoDoc/static/photos/F13/RT_EID8768.h90.jpg",
|
||||
|
||||
"domicile": "2 Rue Madame",
|
||||
"villedomicile": "Paris",
|
||||
"telephonemobile": ""
|
||||
"fax": "",
|
||||
|
||||
"annee_bac": "2010",
|
||||
"bac": "S",
|
||||
"specialite": "SCIENTIFIQUE",
|
||||
|
||||
"nomlycee": "",
|
||||
"villelycee": "",
|
||||
"codelycee": "0950650R",
|
||||
"codepostallycee": "",
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Bulletins de notes
|
||||
* **`Notes/formsemestre_bulletinetud`**
|
||||
* Paramètres: `formsemestre_id`, `etudid`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals`ou `long`)
|
||||
* Résultat: bulletin de notes
|
||||
* Exemple: ici au format JSON, pour une version courte (`version=short`)
|
||||
```
|
||||
{
|
||||
"rang": {
|
||||
"ninscrits": 52,
|
||||
"value": "1"
|
||||
},
|
||||
"etape_apo2": "",
|
||||
"etape_apo3": "",
|
||||
"etape_apo4": "",
|
||||
"etudiant": {
|
||||
"nom": "BOLANO",
|
||||
"prenom": "Roberto",
|
||||
"sexe": "M.",
|
||||
"code_ine": "",
|
||||
"etudid": "EID9860",
|
||||
"code_nip": "123456789",
|
||||
"email": "roberto@santateresa.mx",
|
||||
"photo_url": "\/ScoDoc\/static\/photos\/F68\/RT_EID29960.h90.jpg"
|
||||
},
|
||||
"bonus_sport_culture": {
|
||||
"value": 0
|
||||
},
|
||||
"absences": {
|
||||
"nbabsjust": 0,
|
||||
"nbabs": 1
|
||||
},
|
||||
"decision": {
|
||||
"etat": "I",
|
||||
"code": "ADM",
|
||||
"compense_formsemestre_id" : "SEM12345" /* si ce semestre en compense un autre */
|
||||
},
|
||||
"note": {
|
||||
"max": "15.51",
|
||||
"moy": "10.80",
|
||||
"value": "15.51",
|
||||
"min": "07.29"
|
||||
},
|
||||
"etudid": "EID9860",
|
||||
"decision_ue": [
|
||||
{
|
||||
"acronyme": "UE11",
|
||||
"code": "ADM",
|
||||
"ects": "16.0",
|
||||
"titre": "D\u00e9couverte m\u00e9tiers",
|
||||
"numero": "11",
|
||||
"ue_id": "UE21456"
|
||||
},
|
||||
{
|
||||
"acronyme": "UE12",
|
||||
"code": "ADM",
|
||||
"ects": "14.0",
|
||||
"titre": "Mise \u00e0 niveau des comp\u00e9tences transversales et scientifiques",
|
||||
"numero": "12",
|
||||
"ue_id": "UE21478"
|
||||
}
|
||||
],
|
||||
"ue_capitalisee": [
|
||||
|
||||
],
|
||||
"publie": 1,
|
||||
"autorisation_inscription": [
|
||||
{
|
||||
"semestre_id": 2
|
||||
}
|
||||
],
|
||||
"appreciation": [
|
||||
|
||||
],
|
||||
"note_max": {
|
||||
"value": 20
|
||||
},
|
||||
"date": "2014-07-12T17:38:47.693262",
|
||||
"rang_group": [
|
||||
{
|
||||
"ninscrits": 26,
|
||||
"value": "1",
|
||||
"group_type": "TD",
|
||||
"group_name": "B"
|
||||
},
|
||||
{
|
||||
"ninscrits": 13,
|
||||
"value": "1",
|
||||
"group_type": "TP",
|
||||
"group_name": "B1"
|
||||
},
|
||||
{
|
||||
"ninscrits": 4,
|
||||
"value": "1",
|
||||
"group_type": "G",
|
||||
"group_name": "G4"
|
||||
},
|
||||
{
|
||||
"ninscrits": "",
|
||||
"value": "",
|
||||
"group_type": "tutorat",
|
||||
"group_name": ""
|
||||
},
|
||||
{
|
||||
"ninscrits": "",
|
||||
"value": "",
|
||||
"group_type": "App",
|
||||
"group_name": ""
|
||||
},
|
||||
{
|
||||
"ninscrits": "",
|
||||
"value": "",
|
||||
"group_type": "sport",
|
||||
"group_name": ""
|
||||
}
|
||||
],
|
||||
"formsemestre_id": "SEM12345",
|
||||
"etape_apo": "V1RT",
|
||||
"ue": [
|
||||
{
|
||||
"acronyme": "UE11",
|
||||
"rang": "1",
|
||||
"code_apogee": "VRTU11",
|
||||
"ects": "16",
|
||||
"numero": "11",
|
||||
"note": {
|
||||
"max": "16.17",
|
||||
"value": "16.17",
|
||||
"min": "06.56"
|
||||
},
|
||||
"module": [
|
||||
{
|
||||
"coefficient": 3,
|
||||
"rang": {
|
||||
"value": "1"
|
||||
},
|
||||
"code": "M1101",
|
||||
"code_apogee": "VRT1101",
|
||||
"numero": 1101,
|
||||
"note": {
|
||||
"moy": "08.94",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "19.18",
|
||||
"min": "03.70",
|
||||
"nb_valid_evals": 3,
|
||||
"value": "19.18"
|
||||
},
|
||||
"abbrev": "R\u00e9seaux d'entreprises",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Initiation aux r\u00e9seaux d'entreprises",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27427"
|
||||
},
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "2"
|
||||
},
|
||||
"code": "M1102",
|
||||
"code_apogee": "VRT1102",
|
||||
"numero": 1102,
|
||||
"note": {
|
||||
"moy": "12.58",
|
||||
"nb_notes": 50,
|
||||
"nb_missing": 1,
|
||||
"max": "16.79",
|
||||
"min": "02.50",
|
||||
"nb_valid_evals": 2,
|
||||
"value": "16.50"
|
||||
},
|
||||
"abbrev": "Initiation \u00e0 la t\u00e9l\u00e9phonie",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Initiation \u00e0 la t\u00e9l\u00e9phonie d'entreprise",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27437"
|
||||
},
|
||||
{
|
||||
"coefficient": 1.5,
|
||||
"rang": {
|
||||
"value": "1"
|
||||
},
|
||||
"code": "M1103",
|
||||
"code_apogee": "VRT1103",
|
||||
"numero": 1103,
|
||||
"note": {
|
||||
"moy": "08.26",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "13.41",
|
||||
"min": "00.94",
|
||||
"nb_valid_evals": 2,
|
||||
"value": "13.41"
|
||||
},
|
||||
"abbrev": "Architecture des \u00e9quipements informatiques",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Architecture des \u00e9quipements informatiques",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27451"
|
||||
},
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "1"
|
||||
},
|
||||
"code": "M1104",
|
||||
"code_apogee": "VRT1104",
|
||||
"numero": 1104,
|
||||
"note": {
|
||||
"moy": "10.77",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "17.90",
|
||||
"min": "04.63",
|
||||
"nb_valid_evals": 3,
|
||||
"value": "17.90"
|
||||
},
|
||||
"abbrev": "Principe et architecture des r\u00e9seaux",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Principe et architecture des r\u00e9seaux",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27431"
|
||||
},
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "1"
|
||||
},
|
||||
"code": "M1105",
|
||||
"code_apogee": "VRT1105",
|
||||
"numero": 1105,
|
||||
"note": {
|
||||
"moy": "11.00",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "17.83",
|
||||
"min": "04.98",
|
||||
"nb_valid_evals": 2,
|
||||
"value": "17.83"
|
||||
},
|
||||
"abbrev": "Bases des syst\u00e8mes d'exploitation",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Bases des syst\u00e8mes d'exploitation",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27433"
|
||||
},
|
||||
{
|
||||
"coefficient": 1.5,
|
||||
"rang": {
|
||||
"value": "6"
|
||||
},
|
||||
"code": "M1106",
|
||||
"code_apogee": "VRT1106",
|
||||
"numero": 1106,
|
||||
"note": {
|
||||
"moy": "13.05",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "17.79",
|
||||
"min": "07.08",
|
||||
"nb_valid_evals": 1,
|
||||
"value": "16.25"
|
||||
},
|
||||
"abbrev": "Initiation au d\u00e9veloppement Web",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Initiation au d\u00e9veloppement Web",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27449"
|
||||
},
|
||||
{
|
||||
"coefficient": 1.5,
|
||||
"rang": {
|
||||
"value": "9"
|
||||
},
|
||||
"code": "M1107",
|
||||
"code_apogee": "VRT1107",
|
||||
"numero": 1107,
|
||||
"note": {
|
||||
"moy": "09.36",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "14.21",
|
||||
"min": "04.17",
|
||||
"nb_valid_evals": 3,
|
||||
"value": "11.66"
|
||||
},
|
||||
"abbrev": "Initiation \u00e0 la mesure du signal",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Initiation \u00e0 la mesure du signal",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27440"
|
||||
},
|
||||
{
|
||||
"coefficient": 1.5,
|
||||
"rang": {
|
||||
"value": "7"
|
||||
},
|
||||
"code": "M1108",
|
||||
"code_apogee": "VRT1108",
|
||||
"numero": 1108,
|
||||
"note": {
|
||||
"moy": "10.49",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "16.31",
|
||||
"min": "05.39",
|
||||
"nb_valid_evals": 4,
|
||||
"value": "13.22"
|
||||
},
|
||||
"abbrev": "Acquisition et codage de l'information",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Acquisition et codage de l'information",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27453"
|
||||
},
|
||||
{
|
||||
"coefficient": 1,
|
||||
"rang": {
|
||||
"value": "4 ex"
|
||||
},
|
||||
"code": "M1109",
|
||||
"code_apogee": "VRT1109",
|
||||
"numero": 1109,
|
||||
"note": {
|
||||
"moy": "12.46",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "16.00",
|
||||
"min": "09.00",
|
||||
"nb_valid_evals": 1,
|
||||
"value": "15.00"
|
||||
},
|
||||
"abbrev": "PT : Recherche documentaire",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "PT : Recherche documentaire",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27444"
|
||||
}
|
||||
],
|
||||
"effectif": "51",
|
||||
"titre": "D\u00e9couverte m\u00e9tiers",
|
||||
"id": "UE21456"
|
||||
},
|
||||
{
|
||||
"acronyme": "UE12",
|
||||
"rang": "5",
|
||||
"code_apogee": "VRTU12",
|
||||
"ects": "14",
|
||||
"numero": "12",
|
||||
"note": {
|
||||
"max": "15.20",
|
||||
"value": "14.63",
|
||||
"min": "07.94"
|
||||
},
|
||||
"module": [
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "3 ex"
|
||||
},
|
||||
"code": "M1201",
|
||||
"code_apogee": "VRT1201",
|
||||
"numero": 10,
|
||||
"note": {
|
||||
"moy": "13.02",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "16.00",
|
||||
"min": "10.00",
|
||||
"nb_valid_evals": 1,
|
||||
"value": "14.00"
|
||||
},
|
||||
"abbrev": "Anglais",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Anglais g\u00e9n\u00e9ral de communication et initiation au vocabulaire technique",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27430"
|
||||
},
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "16 ex"
|
||||
},
|
||||
"code": "M1202",
|
||||
"code_apogee": "VRT1202",
|
||||
"numero": 20,
|
||||
"note": {
|
||||
"moy": "12.74",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "17.75",
|
||||
"min": "04.00",
|
||||
"nb_valid_evals": 2,
|
||||
"value": "14.00"
|
||||
},
|
||||
"abbrev": "Expression",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "EC: \u00c9l\u00e9ments fondamentaux de la communication",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27439"
|
||||
},
|
||||
{
|
||||
"coefficient": 1,
|
||||
"rang": {
|
||||
"value": "1 ex"
|
||||
},
|
||||
"code": "M1203",
|
||||
"code_apogee": "VRT1203",
|
||||
"numero": 30,
|
||||
"note": {
|
||||
"moy": "NA",
|
||||
"nb_notes": 0,
|
||||
"nb_missing": 51,
|
||||
"max": "-",
|
||||
"min": "-",
|
||||
"nb_valid_evals": 0,
|
||||
"value": "-"
|
||||
},
|
||||
"abbrev": "PPP: Connaitre son champ d'activit\u00e9",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "PPP: Connaitre son champ d'activit\u00e9",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27436"
|
||||
},
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "6"
|
||||
},
|
||||
"code": "M1204",
|
||||
"code_apogee": "VRT1204",
|
||||
"numero": 40,
|
||||
"note": {
|
||||
"moy": "10.66",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "16.35",
|
||||
"min": "05.73",
|
||||
"nb_valid_evals": 8,
|
||||
"value": "14.09"
|
||||
},
|
||||
"abbrev": "Mise \u00e0 niveau en num\u00e9ration et calculs",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Mise \u00e0 niveau en num\u00e9ration et calculs",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27454"
|
||||
},
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "23"
|
||||
},
|
||||
"code": "M1205",
|
||||
"code_apogee": "VRT1205",
|
||||
"numero": 50,
|
||||
"note": {
|
||||
"moy": "10.37",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "18.69",
|
||||
"min": "05.01",
|
||||
"nb_valid_evals": 5,
|
||||
"value": "10.58"
|
||||
},
|
||||
"abbrev": "Connaissances et Outils pour le signal",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Harmonisation des connaissances et des outils pour le signal",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27432"
|
||||
},
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "3 ex"
|
||||
},
|
||||
"code": "M1206",
|
||||
"code_apogee": "VRT1206",
|
||||
"numero": 60,
|
||||
"note": {
|
||||
"moy": "11.22",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "16.76",
|
||||
"min": "03.91",
|
||||
"nb_valid_evals": 6,
|
||||
"value": "15.12"
|
||||
},
|
||||
"abbrev": "Circuits \u00e9lectroniques : mise \u00e0 niveau",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Circuits \u00e9lectroniques : mise \u00e0 niveau",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27435"
|
||||
},
|
||||
{
|
||||
"coefficient": 2,
|
||||
"rang": {
|
||||
"value": "1 ex"
|
||||
},
|
||||
"code": "M1207",
|
||||
"code_apogee": "VRT1207",
|
||||
"numero": 70,
|
||||
"note": {
|
||||
"moy": "08.39",
|
||||
"nb_notes": 51,
|
||||
"nb_missing": 0,
|
||||
"max": "20.00",
|
||||
"min": "00.00",
|
||||
"nb_valid_evals": 1,
|
||||
"value": "20.00"
|
||||
},
|
||||
"abbrev": "Programmation 1",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Bases de la programmation",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27445"
|
||||
},
|
||||
{
|
||||
"coefficient": 1,
|
||||
"rang": {
|
||||
"value": "1 ex"
|
||||
},
|
||||
"code": "M1208",
|
||||
"code_apogee": "VRT1208",
|
||||
"numero": 80,
|
||||
"note": {
|
||||
"moy": "NA",
|
||||
"nb_notes": 0,
|
||||
"nb_missing": 51,
|
||||
"max": "-",
|
||||
"min": "-",
|
||||
"nb_valid_evals": 0,
|
||||
"value": "-"
|
||||
},
|
||||
"abbrev": "M\u00e9thodologie Universitaire 1",
|
||||
"effectif": {
|
||||
"value": 51
|
||||
},
|
||||
"titre": "Adaptation et m\u00e9thodologie pour la r\u00e9ussite Universitaire",
|
||||
"evaluation": [
|
||||
|
||||
],
|
||||
"id": "MIP27434"
|
||||
}
|
||||
],
|
||||
"effectif": "51",
|
||||
"titre": "Mise \u00e0 niveau des comp\u00e9tences transversales et scientifiques",
|
||||
"id": "UE21478"
|
||||
},
|
||||
{
|
||||
"acronyme": "UE 1S",
|
||||
"rang": "1 ex",
|
||||
"code_apogee": "",
|
||||
"ects": "0",
|
||||
"numero": "13",
|
||||
"note": {
|
||||
"max": "00.00",
|
||||
"value": "00.00",
|
||||
"min": "00.00"
|
||||
},
|
||||
"module": [
|
||||
|
||||
],
|
||||
"effectif": "51",
|
||||
"titre": "Sport &amp; Culture",
|
||||
"id": "UE23716"
|
||||
}
|
||||
],
|
||||
"situation": "Inscrit le 02\/09\/2015. D\u00e9cision jury: Valid\u00e9. UE acquises: UE11, UE12. Autoris\u00e9 \u00e0 s'inscrire en S2."
|
||||
}
|
||||
```
|
||||
|
||||
## Absences
|
||||
* **`Absences/ListeAbsEtud`**
|
||||
* Paramètres: `etudid, absjust_only, format`. `absjust_only` spécifie si on veut les absences justifiées ou non.
|
||||
* Résultat: liste d'absences. Exemple:
|
||||
```{jour: "2021-02-10", ampm: "0", description: "M2202", }```
|
||||
(`ampm` vaut 1 le matin et 0 l'après-midi).
|
||||
|
||||
* **`Absences/doSignaleAbsence`**
|
||||
* Paramètres: ```datedebut, datefin, moduleimpl_id=None, demijournee=2, estjust=False,description, etudid```
|
||||
* Résultat: *html*
|
||||
* Remarques: dates au format `dd/mm/yyyy`. Date de fin non incluse. `demijournee`: 2 si journée complète, 1 matin, 0 après-midi.
|
||||
|
||||
* **`Absences/doAnnuleAbsence`**
|
||||
* Paramètres: ```datedebut, datefin, demijournee, etudid```
|
||||
* Résultat: *html*
|
||||
|
||||
* **`Absences/doAnnuleJustif`**
|
||||
* Paramètres: ```context, datedebut0, datefin0, demijournee```
|
||||
* Résultat: *html*
|
||||
|
||||
* **`Absences/EtatAbsencesGr`**
|
||||
* Liste les absences d'un ou plusieurs groupes entre deux dates.
|
||||
* Paramètres: ```group_ids, debut, fin, with_boursier=True, format=html```
|
||||
* Résultat: liste des absences. Si `format="json"`, cela donne par exemple:
|
||||
```[ {
|
||||
boursier: "N",
|
||||
nbabs: "9",
|
||||
nbabsjust: "2",
|
||||
nbabsnonjust: "7",
|
||||
nbjustifs_noabs: "0",
|
||||
nomprenom: "Mme Poisson Dodouce",
|
||||
etudid: "EID12345"
|
||||
},
|
||||
...
|
||||
]```
|
||||
* Remarque: on peut spécifier plusieurs groupes.
|
||||
|
||||
## Modules
|
||||
* **`Notes/do_moduleimpl_list`**
|
||||
* Paramètres: `[formsemestre_id, moduleimpl_id, module_id]`
|
||||
* Résultat: liste de moduleimpl
|
||||
|
||||
* **`Notes/do_moduleimpl_withmodule_list`**
|
||||
* Paramètres: `[formsemestre_id, moduleimpl_id, module_id]`
|
||||
* Résultat: liste triée de moduleimpl, avec l'attribut `module`
|
||||
|
||||
|
||||
## En savoir plus
|
||||
Voir l'exemple complet d'utilisation de l'API JSON en Python, dans `misc/example-api-1.py`
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
# API pour ScoDoc
|
||||
# API pour ScoDoc 7
|
||||
L'API ScoDoc permet à des applications tierces d'interroger ScoDoc. Elle offre un accès aux informations aux formats XML et JSON.
|
||||
Cette API est encore incomplète: n'hésitez pas à demander de nouveaux accès en écrivant à la liste de diffusion.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user