Compare commits

..

10 Commits

5 changed files with 507 additions and 358 deletions

View File

@ -1,22 +1,26 @@
# Générer des bulletins en Python
# Génération des bulletins en Python
Il est possible de coder de nouveaux styles de bulletins de notes (web et/ou
PDF), pour répondre précisément aux besoins de votre établissement.
Informations internes à destination des développeurs.
Ce n'est pas très difficile, mais il faudra coder en langage Python avec pour le
PDF la bibliothèque ReportLab (qui est bien documentée, [voir le
guide](http://www.reportlab.com/software/opensource/rl-toolkit/guide/)).
## Types de bulletins
ScoDoc demande la création d'un bulletin pour un étudiant donné dans semestre
donné (`formsemestre_id`). Le bulletin doit être rendu sous forme d'une liste
d'objets PLATYPUS (voir le chapitre 5 du "User Guide" de ReportLab cité plus
haut).
- Formations classiques
- HTML, court, intermédiaire, long
- XML (deprecated)
- JSON
- PDF
- Formations BUT
- JSON (utilisé par la version HTML)
- XML (partiel, deprecated)
- PDF
- "but court" HTML
- "but court" PDF
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
alt="/!\" /> Attention (août 2011): nouvelle version, changement d'API: les
informations ci-dessous s'appliquent à partir de la subversion 1047.
## Balises décisions de jury pour chaque type
## Organisation
## Organisation
A minima, il vous faut créer un module python (fichier .py) qui se définira une
classe chargée de générer vos bulletins.
@ -138,33 +142,33 @@ nom de l'université.
### Informations sur l'étudiant
#### Identité
#### Identité
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
| string * | etudid | id ScoDoc de l'étudiant | 'EID15219' |
string | code_ine | | *
string | code_nip | | *
string | codepostaldomicile | | '75018'
| date_naissance | | *
| annee_naissance | | '1947'
| domicile | | *
| email | | *
| lieu_naissance | | *
| nationalite | | *
| ne | "e" si étudiante, vide sinon | *
| nom | | 'FOURIER'
| prenom | | 'JOSEPH'
| sexe | | 'M.'
| nomprenom | | 'M. Joseph Fourier'
| paysdomicile | | *
| telephone | | *
| telephonemobile | | *
| telephonemobilestr | | *
| telephonestr | | *
| typeadresse | | 'domicile'
| villedomicile | | *
| villelycee | |
| string * | etudid | id ScoDoc de l'étudiant | 'EID15219' |
string | code_ine | | *
string | code_nip | | *
string | codepostaldomicile | | '75018'
| date_naissance | | *
| annee_naissance | | '1947'
| domicile | | *
| email | | *
| lieu_naissance | | *
| nationalite | | *
| ne | "e" si étudiante, vide sinon | *
| nom | | 'FOURIER'
| prenom | | 'JOSEPH'
| sexe | | 'M.'
| nomprenom | | 'M. Joseph Fourier'
| paysdomicile | | *
| telephone | | *
| telephonemobile | | *
| telephonemobilestr | | *
| telephonestr | | *
| typeadresse | | 'domicile'
| villedomicile | | *
| villelycee | |
#### Admission
@ -172,37 +176,36 @@ Informations importées dans ScoDoc lors de la création de l'étudiant
(import des données d'admission): établissement d'origine, notes de
lycée, etc.)
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
| bac | Série de bac | 'S'
| specialite | Spécialité de bac | 'SVT'
| math | note math antérieure (en terminale ou au bac ou ...) | *
| physique | note physique antérieure | *
| francais | note francais (au bac en général) | *
| anglais | note anglais antérieure | *
| annee_bac | année d'obtention du bac | '2010'
| nomlycee | | *
| codelycee | | *
| codepostallycee | | *
| qualite | note de qualité du dossier attribuée par le jury d'admission | *
| rang | rang de cet établissement dans les voeux du candidat (si applicable) | *
| rap | | "Pas d'informations sur les conditions d'admission."
| rapporteur | pseudo du collègue chargé de l'examen de ce dossier | *
| score | Score calculé pour ce dossier à l'admission | *
| commentaire | Commentaire du jury d'admission| *
| decision | Décision du jury d'admission | 'ADMIS'
| description | Comment l'étudiant a été inscrit | '(creation individuelle)'
| bac | Série de bac | 'S'
| specialite | Spécialité de bac | 'SVT'
| math | note math antérieure (en terminale ou au bac ou ...) | *
| physique | note physique antérieure | *
| francais | note francais (au bac en général) | *
| anglais | note anglais antérieure | *
| annee_bac | année d'obtention du bac | '2010'
| nomlycee | | *
| codelycee | | *
| codepostallycee | | *
| qualite | note de qualité du dossier attribuée par le jury d'admission | *
| rang | rang de cet établissement dans les voeux du candidat (si applicable) | *
| rap | | "Pas d'informations sur les conditions d'admission."
| rapporteur | pseudo du collègue chargé de l'examen de ce dossier | *
| score | Score calculé pour ce dossier à l'admission | *
| commentaire | Commentaire du jury d'admission| *
| decision | Décision du jury d'admission | 'ADMIS'
| description | Comment l'étudiant a été inscrit | '(creation individuelle)'
#### Inscription
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
int | annee | | 2011
string | etatincursem | état (I=inscrit, D=démissionnaire) | 'I'
string | inscription | | 'DUT GEII, semestre 1 FI (Mars 2011 - Jul 2011)'
string | situation | | 'inscrit en DUT GEII, semestre 1 FI (Mars 2011 - Jul 2011) le 11/09/2011'
string | statut | ? | *
string | etatincursem | état (I=inscrit, D=démissionnaire) | 'I'
string | inscription | | 'DUT GEII, semestre 1 FI (Mars 2011 - Jul 2011)'
string | situation | | 'inscrit en DUT GEII, semestre 1 FI (Mars 2011 - Jul 2011) le 11/09/2011'
string | statut | ? | *
| descr_inscription | | 'Inscrit le 27/06/2011.'
En outre, les attributs `sems`, `cursem` et `ins` apportent des informations
@ -220,142 +223,143 @@ Type | Nom | Description | Exemple de valeur
string | refcomp_specialite | code spécialité | "RT"
string | refcomp_specialite_long| spécialité | "Réseaux et Télécommunications"
### Résultats (notes) de l'étudiant dans le semestre
### Résultats (notes) de l'étudiant dans le semestre
Quelques infos sur les résultats. Le détail des notes est dans la
liste `infos['ues']` et ses sous-listes imbriquées (modules, evaluation).
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
string | moy_gen | moyenne générale de l'étudiant dans le semestre | '12.00'
string | bonus_sport_culture | bonus appliqué | 0
string | moy_max | moyenne max promo | '12.00'
string | moy_min | moyenne min promo | '10.00'
string | moy_moy | moyenne des moyennes promo | '11.00'
int | nb_inscrits | nombre étudiants du semestre (incluant démissionnaires et défaillants) | 78
int | nb_demissions | nombre de démissions dans le semestre | 3
int | nb_defaillants | nombre de défaillants dans le semestre | 2
int | nbabs | nombre de 1/2 journées d'absences | 0L
int | nbabsjust | idem, justifiées | 0L
string | rang | classement | '(attente)'
string | rang_txt | classement (avec titre) | 'Rang (attente) / 2'
list | ues | résultats dans les UE, voir ci-dessous | [ liste de dict ]
string | moy_gen | moyenne générale de l'étudiant dans le semestre | '12.00'
string | bonus_sport_culture | bonus appliqué | 0
string | moy_max | moyenne max promo | '12.00'
string | moy_min | moyenne min promo | '10.00'
string | moy_moy | moyenne des moyennes promo | '11.00'
int | nb_inscrits | nombre étudiants du semestre (incluant démissionnaires et défaillants) | 78
int | nb_demissions | nombre de démissions dans le semestre | 3
int | nb_defaillants | nombre de défaillants dans le semestre | 2
int | nbabs | nombre de 1/2 journées d'absences | 0L
int | nbabsjust | idem, justifiées | 0L
string | rang | classement | '(attente)'
string | rang_txt | classement (avec titre) | 'Rang (attente) / 2'
list | ues | résultats dans les UE, voir ci-dessous | [ liste de dict ]
Chaque élément de la liste `ues` représente les résultats de
l'étudiant dans une UE.
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
string | acronyme | | 'UE 1'
string | coef_ue_txt | Coefficient (chaîne) | '2'
string| cur_moy_ue_txt | Moyenne prise en compte pour cette UE | '12.00'
float | max | moyenne max promo | 12.0
float | min | moyenne min promo | 10.0
list | modules | détails notes dans les modules de l'UE | [ liste de dict]
list | modules_capitalized | | []
float | moy | | 11.0
string | moy_ue_txt | moyenne étudiant dans UE | '12.00'
int | nb_moy | nombre de moyenens calculées dans cette UE (inscrits, sans démissionnaires ni défaillants) | 76
int | numero | rang tri UE | 1
string | titre | | 'Formation Générale'
int | type | code type UE | 0
string | ue_code | code dans programme formation | 'UCOD5'
string | ue_descr_html | rang ou autre info à afficher | '(attente)/2'
string | ue_descr_txt | rang ou autre info à afficher | '(attente)/2'
string | ue_id | id interne ScoDoc | 'UE14572'
dict | ue_status | statut de l'UE (voir ci-dessous)| { dict }
string | acronyme | | 'UE 1'
string | coef_ue_txt | Coefficient (chaîne) | '2'
string| cur_moy_ue_txt | Moyenne prise en compte pour cette UE | '12.00'
float | max | moyenne max promo | 12.0
float | min | moyenne min promo | 10.0
list | modules | détails notes dans les modules de l'UE | [ liste de dict]
list | modules_capitalized | | []
float | moy | | 11.0
string | moy_ue_txt | moyenne étudiant dans UE | '12.00'
int | nb_moy | nombre de moyenens calculées dans cette UE (inscrits, sans démissionnaires ni défaillants) | 76
int | numero | rang tri UE | 1
string | titre | | 'Formation Générale'
int | type | code type UE | 0
string | ue_code | code dans programme formation | 'UCOD5'
string | ue_descr_html | rang ou autre info à afficher | '(attente)/2'
string | ue_descr_txt | rang ou autre info à afficher | '(attente)/2'
string | ue_id | id interne ScoDoc | 'UE14572'
dict | ue_status | statut de l'UE (voir ci-dessous)| { dict }
**Statut d'une UE (champ `ue_status`):**
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
float | coef_ue | | 2.0
| coefs_bonus_gen | | []
| cur_coef_ue | | 2.0
| cur_moy_ue | | 12.0
string | expr_diag | infos erreur calcul formule utilisateur | {}
bool | is_capitalized | est-elle capitalisée? | False
| moy | | 12.0
| nb_missing | | 1
| nb_notes | | 1
| notes_bonus_gen | | []
| sum_coefs | | 2.0
| was_capitalized | | False
float | coef_ue | | 2.0
| coefs_bonus_gen | | []
| cur_coef_ue | | 2.0
| cur_moy_ue | | 12.0
string | expr_diag | infos erreur calcul formule utilisateur | {}
bool | is_capitalized | est-elle capitalisée? | False
| moy | | 12.0
| nb_missing | | 1
| nb_notes | | 1
| notes_bonus_gen | | []
| sum_coefs | | 2.0
| was_capitalized | | False
**Résultats dans un module:**
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
| code | | *
| code_html | | *
| code_txt | | *
| computation_expr | | *
| ens | | []
| evaluations | | []
| formsemestre_id | | 'SEM15176'
| mat | | {'titre': 'Mathématiques' }
| mod_coef_txt | | '2'
| mod_descr_txt | | "Module Fondamentaux d'algèbre et de trigonométrie, coef. 2 (Béatrice DUPONT)"
| mod_eff | | 2
| mod_moy_txt | | '12.00'
| mod_rang | | '(attente)'
| mod_rang_txt | | '(attente)/2'
| module | | {voir plus loin}
| module_id | | 'MOD14576'
| moduleimpl_id | | 'MIP15178'
| name | | 'Algèbre'
| responsable_id | id du responsable | 'dupont'
| stats | statistiques sur les notes du module | `{'moy': 9.576, 'nb_missing': 2, 'max': 16.5, 'min': 0.0, 'nb_notes': 39, 'nb_valid_evals': 1}`
| code | | *
| code_html | | *
| code_txt | | *
| computation_expr | | *
| ens | | []
| evaluations | | []
| formsemestre_id | | 'SEM15176'
| mat | | {'titre': 'Mathématiques' }
| mod_coef_txt | | '2'
| mod_descr_txt | | "Module Fondamentaux d'algèbre et de trigonométrie, coef. 2 (Béatrice DUPONT)"
| mod_eff | | 2
| mod_moy_txt | | '12.00'
| mod_rang | | '(attente)'
| mod_rang_txt | | '(attente)/2'
| module | | {voir plus loin}
| module_id | | 'MOD14576'
| moduleimpl_id | | 'MIP15178'
| name | | 'Algèbre'
| responsable_id | id du responsable | 'dupont'
| stats | statistiques sur les notes du module | `{'moy': 9.576, 'nb_missing': 2, 'max': 16.5, 'min': 0.0, 'nb_notes': 39, 'nb_valid_evals': 1}`
Le module (tel que décrit dans le programme de la formation) est représenté par:
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
string | titre | | "Fondamentaux d'algèbre et de trigonométrie"
string | abbrev | | 'Algèbre'
string | code | | 'M1'
float | coefficient | | 2.0
| ects | | None
| formation_id | | 'FORM14570'
| heures_cours | | 0.0
| heures_td | | 30.0
| heures_tp | | 0.0
| matiere_id | | 'MAT14574'
| module_id | | 'MOD14576'
| numero | | 10
| semestre_id | | 1
| ue_id | | 'UE14572'
string | titre | | "Fondamentaux d'algèbre et de trigonométrie"
string | abbrev | | 'Algèbre'
string | code | | 'M1'
float | coefficient | | 2.0
| ects | | None
| formation_id | | 'FORM14570'
| heures_cours | | 0.0
| heures_td | | 30.0
| heures_tp | | 0.0
| matiere_id | | 'MAT14574'
| module_id | | 'MOD14576'
| numero | | 10
| semestre_id | | 1
| ue_id | | 'UE14572'
**Résultat dans une évaluation:**
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
| coef_txt | | '1'
| coefficient | | 1.0
| descrheure | | ' ? 08h00'
| description | | *
| duree | | '2h'
| etat | | { voir plus loin }
| evaluation_id | | 'EVAL15226'
| evaluation_type | | 0
| heure_debut | | '08h00'
| heure_fin | | '08h00'
| jour | | '01/07/2011'
| moduleimpl_id | | 'MIP15178'
| name | | 'le 01/07/2011'
| nb_abs | | 0
| nb_att | | 0
| nb_inscrits | | 2
| nb_neutre | | 0
| nb_notes | | 2
| note_html | | '12.00'
| note_max | | 20.0
| note_txt | | '12.00'
| notes | | { voir plus loin }
| publish_incomplete | | '0'
| visibulletin | | '1'
| coef_txt | | '1'
| coefficient | | 1.0
| descrheure | | ' ? 08h00'
| description | | *
| duree | | '2h'
| etat | | { voir plus loin }
| evaluation_id | | 'EVAL15226'
| evaluation_type | | 0
| heure_debut | | '08h00'
| heure_fin | | '08h00'
| jour | | '01/07/2011'
| moduleimpl_id | | 'MIP15178'
| name | | 'le 01/07/2011'
| nb_abs | | 0
| nb_att | | 0
| nb_inscrits | | 2
| nb_neutre | | 0
| nb_notes | | 2
| note_html | | '12.00'
| note_max | | 20.0
| note_txt | | '12.00'
| notes | | { voir plus loin }
| publish_incomplete | | '0'
| visibulletin | | '1'
**Etat d'une évaluation:**
@ -366,59 +370,59 @@ Le champ `etat` d'une évaluation est un dict donnant des informations sur les r
bool | evalattente | | False
bool | evalcomplete | | True
| evaluation_id | id interne | 15226
list | gr_incomplets | | []
list | gr_moyennes | | []
list | groups | liste des groupes | {}
datetime | last_modif | | datetime
string | median | note médianne promo | '11.00'
string | moy | note moyenne promo | '11.00'
| nb_abs | nb étudiants absents | 0
| nb_att | nb notes en attente | 0
| nb_inscrits | nb inscrits à ce module | 2
| nb_neutre | nb notes neutralisées | 0
| nb_notes | nb notes saisies | 2
list | gr_incomplets | | []
list | gr_moyennes | | []
list | groups | liste des groupes | {}
datetime | last_modif | | datetime
string | median | note médianne promo | '11.00'
string | moy | note moyenne promo | '11.00'
| nb_abs | nb étudiants absents | 0
| nb_att | nb notes en attente | 0
| nb_inscrits | nb inscrits à ce module | 2
| nb_neutre | nb notes neutralisées | 0
| nb_notes | nb notes saisies | 2
`gr_moyennes` est un dict:
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
| gr_median | | '11.00'
| gr_moy | | '11.00'
| gr_nb_att | | 0
| gr_nb_notes | | 2
| group_id | | 'G24919'
| group_name | | None
| gr_median | | '11.00'
| gr_moy | | '11.00'
| gr_nb_att | | 0
| gr_nb_notes | | 2
| group_id | | 'G24919'
| group_name | | None
**Notes dans une évaluation:**
Le champ `notes` dans une évaluation est un dictionnaire dont les clés sont les `etudids`, et les valeurs des dictionnaires donnant les informations sur la note de l'étudiant dans cette évaluation:
Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
string | comment | commentaire saisie note | *
datetime | date | date de saisie | <mx.DateTime.DateTime object>
string | etudid | | 'EID15214'
string | evaluation_id | | 'EVAL15226'
string | uid | utilisateur ayant saisi la note | 'admin'
float | value | valeur de la note (sur 20) | 10.0
string | comment | commentaire saisie note | *
datetime | date | date de saisie | <mx.DateTime.DateTime object>
string | etudid | | 'EID15214'
string | evaluation_id | | 'EVAL15226'
string | uid | utilisateur ayant saisi la note | 'admin'
float | value | valeur de la note (sur 20) | 10.0
### Décisions de jury et autres informations
Type | Nom | Description | Exemple de valeur
### Décisions de jury et autres informations
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
| decision_sem | | None ou dict
string | decision_jury | décision du jury en clair (présent seulement si décision saisie) | 'Validé'
list | appreciations | | []
list | appreciations_list | | []
list | appreciations_txt | | []
string | mention | texte de la mention calculée | 'Très bien'
| filigranne | texte en surimpression | 'Provisoire'
| decision_sem | | None ou dict
string | decision_jury | décision du jury en clair (présent seulement si décision saisie) | 'Validé'
list | appreciations | | []
list | appreciations_list | | []
list | appreciations_txt | | []
string | mention | texte de la mention calculée | 'Très bien'
| filigranne | texte en surimpression | 'Provisoire'
## Note: la fonction log
## Note: la fonction log
Pour la mise au point, il peut être utile de recourir à la bonne vieille
fonction log, qui envoie du texte dans le fichier de log courant, normalement

View File

@ -46,8 +46,8 @@ inférieure à zéro), elle est ramenée à 20 (ou à zéro).
- La valeur saisie peut être négative (et donnera alors un bonus);
l'affichage est mis à jour en conséquence. C'est donc la possibilité
d'inclure un bonus donc la valeur n'est pas calculée par la formule
configurée (cf. [Intégration de la formule](#intégration-de-la-formule)).
d'inclure un bonus dont la valeur n'est pas calculée par la formule
configurée (cf. [Intégration de la règle de calcul](#integration-de-la-regle-de-calcul)).
## Comparatif bonus/malus
@ -59,7 +59,7 @@ les modules de malus.
| **Structure** | UE Spécifique et modules (type standard) attachés | Module spécifique (type malus) |
| **Valeur du bonus/malus** | Calculé à partir d'une note | Saisie directe |
| **Application sur toutes les UE** | Automatique | Autant de modules que d'UE modifiées |
| **Application sur une seule UE** | Impossible | Un module par UE modifiée | |
| **Application sur une seule UE** | Impossible | Un module par UE modifiée |
| **Modification** | Bonus seulement | Malus ou Bonus |
| **Affichage** | Affichage du bonus et du détail | Affichage du bonus/malus seulement |
| **Cumul de plusieurs modificateurs** | voir [les remarques](#remarques) | Déclarer une évaluation par type de modif. |
@ -88,7 +88,7 @@ Si l'établissement n'apparaît pas:
modificateur (après un calcul préalable hors scodoc)
2. Vous pouvez demander la création de la formule spécifique à votre
établissement sur le serveur discord en précisant:
établissement sur le serveur Discord (voir [contacts](Contact.md)) en précisant:
- Le nom de votre établissement,
- l'extrait du règlement intérieur qui décrit cette bonification, (celui ci
apparaîtra dans l'encadré explicatif)
@ -172,7 +172,7 @@ Dans tous les cas de figure, l'objectif est d'inscrire aux modules de
bonus/malus au moins les étudiants qui en bénéficient. On a deux stratégies
possibles:
1. Inscription de tous les étudiants du semestre (inscription générale)
1. Inscription de tous les étudiants du semestre (inscription générale)
et attribuer la note `EXC`aux étudiants non concernés. Stratégie à
éviter pour le bonus sport/culture afin d'éviter l'affichage d'une
section bonus vide dans les bulletins des étudiants non concernés.

View File

@ -17,11 +17,6 @@ L'avenir du logiciel dépend donc de vous: adhérez, ou incitez votre institutio
## Utilisation de ScoDoc
### Comment prendre en compte les notes de sport ou autres bonus/malus ?
Voir [la page dédiée](BonusMalus.md), ou bien pour les bonus sport
[le tutoriel vidéo par Cédric C.](https://www.youtube.com/watch?v=SVbjuDpq-lI&list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1&index=13).
### Qui peut voir les notes, et quand ?
Tous les collègues (enseignants et administratifs) pouvant accéder au
@ -38,26 +33,21 @@ affichage sur leur ENT en général, cet affichage pouvant être désactivé dep
ScoDoc pour un semestre particulier). A défaut, il faut leur envoyer leurs
bulletins par mail.
### Comment supprimer une évaluation ?
### Comment les étudiants peuvent-ils accéder aux résultats ?
1. Supprimer toutes les notes saisies dans cette évaluation, s'il y en a: passer
par la page "Saisie des notes" et suivre le lien "Effacer toutes les notes de
cette évaluation".
Les **étudiants n'ont pas accès à ScoDoc**, mais un composant "satellite",
installé séparément peut fournir à chacun ses résultats (bulletins de notes,
absences): il s'agit de [la passerelle développée par Sébastien Lehman](https://github.com/SebL68/Scodoc_Notes).
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.
### Comment signaler un problème ?
Nous vous remercions de nous signaler tous les problèmes que vous rencontrez:
erreurs, comportement bizarre ou malcommode. Nous ne promettons pas de les
régler rapidement, ni même plus tard: le logiciel est fourni sans aucune
garantie. Mais nous faisons de notre mieux: joindre le canal Discord
Assistance (voir [Contact](Contact.md))
### En IUT, comment gérer les licences professionnelles ?
* On peut créer un département regroupant les licences, ou bien rattacher
chaque licence à un département existant. Cette dernière solution est
préférable si des étudiants de DUT poursuivent en licence (ainsi, on a
automatiquement accès à leur parcours complet).
* La plupart des licences pro durent un an, mais sont gérées comme un seul
semestre (pas de jury à mi-parcours). Indiquer "*pas de semestre*" dans
l'option "*Semestre dans la formation*" (page "*modification du semestre*").
## La gestion des étudiants
### Comment gérer les étudiants les démissionnaires ?
@ -81,12 +71,84 @@ Ou bien au niveau de son inscription dans un semestre, via le menu *Scolarité*:
abandonne en tout début d'année (il ne sera alors pas compté dans les
inscrits).
## Les notes
### Comment prendre en compte les notes de sport ou autres bonus/malus ?
Voir [la page dédiée](BonusMalus.md), ou bien pour les bonus sport
[le tutoriel vidéo par Cédric C.](https://www.youtube.com/watch?v=SVbjuDpq-lI&list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1&index=13).
### Comment supprimer une évaluation ?
1. Supprimer toutes les notes saisies dans cette évaluation, s'il y en a: passer
par la page "Saisie des notes" et suivre le lien "Effacer toutes les notes de
cette évaluation".
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.
## Les formations
### Quelles formations peuvent être gérées par ScoDoc
Toutes les formations notées peuvent bénéficier de ScoDoc.
De nombreuses fonctions spécialisées sont consacrées au Bachelor Universitaire
de technologie et son approche par compétences (APC) particulière.
ScoDoc est utilisé pour de nombreuses licences professionnelles, masters,
formations d'ingénieurs.
### En IUT, comment gérer les licences professionnelles ?
* On peut créer un département regroupant les licences, ou bien rattacher
chaque licence à un département existant. Cette dernière solution est
préférable si des étudiants de DUT poursuivent en licence (ainsi, on a
automatiquement accès à leur parcours complet).
* La plupart des licences pro durent un an, mais sont gérées comme un seul
semestre (pas de jury à mi-parcours). Indiquer "*pas de semestre*" dans
l'option "*Semestre dans la formation*" (page "*modification du semestre*").
## Les jurys
### Les ECTS ne s'affichent pas
Les ECTS sont attribués (ou pas) au moment de la saisie de la décision de jury
sur les UEs. Avant le jury, l'étudiant n'a jamais d'ECTS, quelles que soient ses
notes.
### Comment identifier les ECTS ?
Les ECTS sont toujours liés aux Unités d'Enseignement (UE). Toute validation
d'UE apporte à l'étudiant son quota d'ECTS. Cette quantité est définie dans le
programme de la formation.
Les UEs peuvent être validées par le jury d'un semestre: le compte est affiché
sur une colonne à droite du tableau **Jury / Voir les décisions de jury**.
### L'étudiant n'est pas diplômé
Vérifiez qu'il a bien obtenu tous ces ECTS.
Si ce n'est pas le cas, vérifiez qu'il a bien validé toutes les UEs de son
parcours de formation (BUT), ou un nombre suffisant de celles ci.
### Comment voir toutes les validations de jury d'un étudiant ?
Dans certains cas, on souhaite vérifier tout le détail des validations de jury
enregistrées pour un étudiant. Pour cela, aller sur sa fiche et suivre le lien
*Éditer toutes décisions de jury*. Vous aurez le détail de tous les éléments
validés (UE, RCUEs du BUT, semestres des formations LMD, années du BUT, ...) et
pourrez même les supprimer une à une (si vous disposez des droits d'accès nécessaires.)
Voir aussi [guide du responsable de formation](GuideAdminFormation.md#jurys)
et [les jurys de BUT](BUTJurys.md).
## Administration système
### Mes données sont erronées, que faire ?
En cas de problème (bug, erreur de manipulation, suspicion de piratage),
@ -105,20 +167,6 @@ Les utilisateurs autorisés peuvent facilement voir:
Les administrateurs (informaticiens) peuvent aussi consulter les journaux (logs)
du serveur, voir ["où sont les journaux"](#ou-sont-les-journaux-logs).
### Comment signaler un problème ?
Nous vous remercions de nous signaler tous les problèmes que vous rencontrez:
erreurs, comportement bizarre ou malcommode. Nous ne promettons pas de les
régler rapidement, ni même plus tard: le logiciel est fourni sans aucune
garantie. Mais nous faisons de notre mieux:
* si vous êtes utilisateurs, écrire à
[notes@listes.univ-paris13.fr](mailto:notes@listes.univ-paris13.fr).
ou joindre le canal Discord Assistance.
* si vous êtes informaticien et voulez évoquer un problème technique
(développement, installation), écrire à
[scodoc-devel@listes.univ-paris13.fr](mailto:scodoc-devel@listes.univ-paris13.fr).
## Configuration

View File

@ -240,110 +240,150 @@ permet de rechercher une entrée à partir du résultat attendu.
</div>
</div>
(carte générée avec `flask gen-api-map -e "api."`)
### Tableau récapitulatif des entrées de l'API
Ce tableau est trié selon le type des informations renvoyées:
| Route | Méthode | Permission |
|---|---|---|
| [assiduite](#assiduite) | GET | ScoView |
| [assiduite_create](#assiduite-create) | POST | AbsChange |
| [assiduite_delete](#assiduite-delete) | POST | AbsChange |
| [assiduite_edit](#assiduite-edit) | POST | AbsChange |
| [assiduite_justificatifs](#assiduite-justificatifs) | GET | ScoView |
| [assiduites](#assiduites-query) | GET | ScoView |
| [assiduites_count](#assiduites-count-query) | GET | ScoView |
| [assiduites_create](#assiduites-create) | POST | AbsChange |
| [assiduites_edit](#assiduites-edit) | POST | AbsChange |
| [assiduites_evaluations](#assiduites-evaluations) | GET | ScoView |
| [assiduites_formsemestre](#assiduites-formsemestre-query) | GET | ScoView |
| [assiduites_formsemestre_count](#assiduites-formsemestre-count-query) | GET | ScoView |
| [assiduites_group](#assiduites-group-query) | GET | ScoView |
| [autorisation_inscription_delete](#autorisation-inscription-delete) | POST | EtudInscrit |
| [billets_absence_create](#billets-absence-create) | POST | Aucune permission requise |
| [billets_absence_delete](#billets-absence-delete) | POST | Aucune permission requise |
| [billets_absence_etudiant](#billets-absence-etudiant) | GET | Aucune permission requise |
| [bulletin](#bulletin) | GET | ScoView |
| [bulletins](#bulletins) | GET | ScoView |
| [decisions_jury](#decisions-jury) | GET | ScoView |
| [departement_by_acronym](#departement-by-acronym) | GET | ScoView |
| [departement_by_id](#departement-by-id) | GET | ScoView |
| [departement_create](#departement-create) | POST | ScoSuperAdmin |
| [departement_delete](#departement-delete) | POST | ScoSuperAdmin |
| [departement_edit](#departement-edit) | POST | ScoSuperAdmin |
| [departement_etudiants](#departement-etudiants) | GET | ScoView |
| [departement_etudiants_by_id](#departement-etudiants-by-id) | GET | ScoView |
| [departement_formsemestres_courants](#departement-formsemestres-courants-query) | GET | ScoView |
| [departement_formsemestres_ids](#departement-formsemestres-ids) | GET | ScoView |
| [departement_formsemestres_ids_by_id](#departement-formsemestres-ids-by-id) | GET | ScoView |
| [departements_ids](#departements-ids) | GET | ScoView |
| [departements_list](#departements-list) | GET | ScoView |
| [etudiant](#etudiant) | GET | ScoView |
| [etudiant_annotation](#etudiant-annotation) | POST | EtudInscrit |
| [etudiant_annotation_delete](#etudiant-annotation-delete) | POST | EtudInscrit |
| [etudiant_create](#etudiant-create) | POST | EtudInscrit |
| [etudiant_edit](#etudiant-edit) | POST | EtudInscrit |
| [etudiant_formsemestres](#etudiant-formsemestres) | GET | ScoView |
| [etudiant_get_photo_image](#etudiant-get-photo-image-query) | GET | ScoView |
| [etudiant_groups](#etudiant-groups) | GET | ScoView |
| [etudiants](#etudiants) | GET | ScoView |
| [etudiants_by_name](#etudiants-by-name) | GET | ScoView |
| [etudiants_courants](#etudiants-courants-query) | GET | ScoView |
| [evaluation_assiduites](#evaluation-assiduites) | GET | ScoView |
| [evaluation_create](#evaluation-create) | POST | EnsView |
| [evaluation_delete](#evaluation-delete) | POST | EnsView |
| [evaluation_notes](#evaluation-notes) | GET | ScoView |
| [evaluation_set_notes](#evaluation-set-notes) | POST | EnsView |
| [formation_by_id](#formation-by-id) | GET | ScoView |
| [formation_export_by_formation_id](#formation-export-by-formation-id) | GET | ScoView |
| [formation_module_edit](#formation-module-edit) | POST | EditFormation |
| [formation_module_get](#formation-module-get) | GET | ScoView |
| [formation_module_set_code_apogee](#formation-module-set-code-apogee) | POST | EditFormation |
| [formations](#formations) | GET | ScoView |
| [formations_ids](#formations-ids) | GET | ScoView |
| [formsemestre_edit](#formsemestre-edit) | POST | EditFormSemestre |
| [formsemestre_edt](#formsemestre-edt-query) | GET | ScoView |
| [formsemestre_etat_evaluations](#formsemestre-etat-evaluations) | GET | ScoView |
| [formsemestre_etudiants](#formsemestre-etudiants-query) | GET | ScoView |
| [formsemestre_infos](#formsemestre-infos) | GET | ScoView |
| [formsemestre_partitions](#formsemestre-partitions) | GET | ScoView |
| [formsemestre_programme](#formsemestre-programme) | GET | ScoView |
| [formsemestre_resultat](#formsemestre-resultat-query) | GET | ScoView |
| [formsemestre_set_apo_etapes](#formsemestre-set-apo-etapes) | POST | EditApogee |
| [formsemestre_set_elt_annee_apo](#formsemestre-set-elt-annee-apo) | POST | EditApogee |
| [formsemestre_set_elt_passage_apo](#formsemestre-set-elt-passage-apo) | POST | EditApogee |
| [formsemestre_set_elt_sem_apo](#formsemestre-set-elt-sem-apo) | POST | EditApogee |
| [formsemestre_set_partitions_order](#formsemestre-set-partitions-order) | POST | ScoView |
| [formsemestres_query](#formsemestres-query) | GET | ScoView |
| [group_create](#group-create) | POST | ScoView |
| [group_delete](#group-delete) | POST | ScoView |
| [group_edit](#group-edit) | POST | ScoView |
| [group_etudiants](#group-etudiants) | GET | ScoView |
| [group_etudiants_query](#group-etudiants-query) | GET | ScoView |
| [group_remove_etud](#group-remove-etud) | POST | ScoView |
| [group_set_edt_id](#group-set-edt-id) | POST | ScoView |
| [group_set_etudiant](#group-set-etudiant) | POST | ScoView |
| [groups_get_auto_assignment](#groups-get-auto-assignment) | GET | ScoView |
| [groups_save_auto_assignment](#groups-save-auto-assignment) | POST | ScoView |
| [justif_create](#justif-create) | POST | AbsChange |
| [justif_delete](#justif-delete) | POST | AbsChange |
| [justif_edit](#justif-edit) | POST | AbsChange |
| [justif_export](#justif-export) | POST | ScoView |
| [justif_import](#justif-import) | POST | AbsChange |
| [justif_justifies](#justif-justifies) | GET | AbsChange |
| [justif_list](#justif-list) | GET | ScoView |
| [justif_remove](#justif-remove) | POST | AbsChange |
| [justificatif](#justificatif) | GET | ScoView |
| [justificatifs](#justificatifs-query) | GET | ScoView |
| [justificatifs_dept](#justificatifs-dept-query) | GET | ScoView |
| [justificatifs_formsemestre](#justificatifs-formsemestre-query) | GET | ScoView |
| [logo_get_global](#logo-get-global) | GET | ScoSuperAdmin |
| [logo_get_local_by_acronym](#logo-get-local-by-acronym) | GET | ScoSuperAdmin |
| [logo_get_local_by_id](#logo-get-local-by-id) | GET | ScoSuperAdmin |
| [logo_get_local_dept_by_acronym](#logo-get-local-dept-by-acronym) | GET | ScoSuperAdmin |
| [logo_get_local_dept_by_id](#logo-get-local-dept-by-id) | GET | ScoSuperAdmin |
| [logo_list_globals](#logo-list-globals) | GET | ScoSuperAdmin |
| [moduleimpl_evaluations](#moduleimpl-evaluations) | GET | ScoView |
| [moduleimpl_inscriptions](#moduleimpl-inscriptions) | GET | ScoView |
| [moduleimpl_notes](#moduleimpl-notes) | GET | ScoView |
| [partition_create](#partition-create) | POST | ScoView |
| [partition_delete](#partition-delete) | POST | ScoView |
| [partition_edit](#partition-edit) | POST | ScoView |
| [partition_info](#partition-info) | GET | ScoView |
| [partition_order_groups](#partition-order-groups) | POST | ScoView |
| [partition_remove_etud](#partition-remove-etud) | POST | ScoView |
| [permissions_list](#permissions-list) | GET | UsersView |
| [referentiel_competences](#referentiel-competences) | GET | ScoView |
| [role_create](#role-create) | POST | ScoSuperAdmin |
| [role_delete](#role-delete) | POST | ScoSuperAdmin |
| [role_edit](#role-edit) | POST | ScoSuperAdmin |
| [role_get](#role-get) | GET | UsersView |
| [role_permission_add](#role-permission-add) | POST | ScoSuperAdmin |
| [role_permission_remove](#role-permission-remove) | POST | ScoSuperAdmin |
| [roles_list](#roles-list) | GET | UsersView |
| [token_get](#token-get) | POST | Aucune permission requise |
| [ue_assoc_niveau](#ue-assoc-niveau) | POST | EditFormation |
| [ue_desassoc_niveau](#ue-desassoc-niveau) | POST | EditFormation |
| [ue_edit](#ue-edit) | POST | EditFormation |
| [ue_set_code_apogee](#ue-set-code-apogee) | POST | EditFormation |
| [ue_set_code_apogee_rcue](#ue-set-code-apogee-rcue) | POST | EditFormation |
| [ue_set_parcours](#ue-set-parcours) | POST | EditFormation |
| [user_create](#user-create) | POST | UsersAdmin |
| [user_edit](#user-edit) | POST | UsersAdmin |
| [user_info](#user-info) | GET | UsersView |
| [user_password](#user-password) | POST | UsersAdmin |
| [user_role_add](#user-role-add) | POST | ScoSuperAdmin |
| [user_role_remove](#user-role-remove) | POST | ScoSuperAdmin |
| [users_info_query](#users-info-query) | GET | ScoView |
| [validation_annee_but_delete](#validation-annee-but-delete) | POST | EtudInscrit |
| [validation_dut120_delete](#validation-dut120-delete) | POST | EtudInscrit |
| [validation_formsemestre_delete](#validation-formsemestre-delete) | POST | ScoView |
| [validation_rcue_delete](#validation-rcue-delete) | POST | EtudInscrit |
| [validation_rcue_record](#validation-rcue-record) | POST | EtudInscrit |
| [validation_ue_delete](#validation-ue-delete) | POST | ScoView |
* un nom simple représente un seul objet de ce type;
* suivi de `+`désigne une forme 'longue' d'objet de ce type;
* suivi de `*` désigne une liste de 0, 1 ou plusieurs objets du type;
* suivi de `#` désigne une liste d'entiers (les ids des objets du type);
* suivi de `:` puis d'un nom en majuscule indique une requête (POST) qui modifie
les données de ScoDoc.
(table générée avec `flask gen-api-map -e "api."`)
| Retour | Remarque | Méthode | Navigation | Permission |
|:------------------------|:----------------------------------------|---------|---------------------------------------------------------------------------|---------------------|
| assiduite | une assiduité | GET | [assiduité](#assiduite) | ScoView |
| assiduite**`*`** | liste d'assiduités d'un étudiant | GET | [assiduités](#assiduites) | ScoView |
| assiduite**`*`** | liste d'assiduités d'un formsemestre | GET | [assiduités-formsemestre](#assiduites-formsemestre) | ScoView |
| assiduite**`#`** | liste d'id d'assiduités justifiées | GET | [justificatif-justifies](#justificatif-justifies) | ScoView |
| assiduite:CREATE | création d'assiduité | POST | [assiduite-create](#assiduite-create) | AbsChange |
| assiduite:EDIT | édition d'assiduité | POST | [assiduite-edit](#assiduite-edit) | AbsChange |
| assiduite:DELETE | suppression d'assiduité | POST | [assiduite-delete](#assiduite-delete) | AbsChange |
| justificatif | un justificatif | GET | [justificatif](#justificatif) | ScoView |
| justificatif**`*`** | liste de justificatif d'un étudiant | GET | [justificatifs](#justificatifs) | ScoView |
| justificatif:CREATE | création de justificatif | POST | [justificatif-create](#justificatif-create) | AbsChange |
| justificatif:EDIT | édition de justificatif | POST | [justificatif-edit](#justificatif-edit) | AbsChange |
| justificatif:DELETE | suppression de justificatif | POST | [justificatif-delete](#justificatif-delete) | AbsChange |
| justificatif:IMPORT | importation de fichier justificatif | POST | [justificatif-import](#justificatif-import) | AbsChange |
| justificatif:EXPORT | exportation de fichier justificatif | POST | [justificatif-export](#justificatif-export) | AbsChange |
| justificatif:REMOVE | suppression de fichier justificatif | POST | [justificatif-remove](#justificatif-remove) | AbsChange |
| departement**`*`** | tous les depts | GET | [departements](#departements) | |
| departement**`#`** | tous les ids des depts | GET | [departements-ids](#departements-ids) | ScoView |
| departement | recherche par id | GET | [departement](#departement) | ScoView |
| departement | recherche par acronyme | GET | [departement](#departement) | ScoView |
| departement:CREATE | création d'un département | POST | [departement-create](#departement-create) | ScoSuperAdmin |
| departement:EDIT | modification d'un département | POST | [departement-edit](#departement-edit) | ScoSuperAdmin |
| departement:DELETE | suppression d'un département | POST | [departement-delete](#departement-delete) | ScoSuperAdmin |
| evaluation | une évaluation | GET | [evaluation](#evaluation) | ScoView |
| evaluation:CREATE | création d'une évaluation | POST | [evaluation-create](#evaluation-create) | - |
| evaluation:DELETE | suppression d'une évaluation | POST | [evaluation-delete](#evaluation-delete) | - |
| formation**`*`** | toutes les formations accessibles | GET | [formations](#formations) | ScoView |
| formation**`#`** | ids des formations accessibles | GET | [formations-ids](#formations-ids) | ScoView |
| formation | une formation | GET | [formation](#formation) | ScoView |
| export | | GET | [formation-export](#formation-export) | ScoView |
| export**`+`** | | GET | [formation-export_with_ids](#formation-export_with_ids) | ScoView |
| referentiel_competences | | GET | [formation-referenciel_competences](#formation-referenciel_competences) | ScoView |
| formsemestre**`#`** | | GET | [departement-formsemestres_ids](#departement-formsemestres_ids) | ScoView |
| formsemestre**`*`** | | GET | [departement-formsemestres_courants](#departement-formsemestres_courants) | ScoView |
| formsemestre**`*`** | | GET | [formsemestre-query](#formsemestre-query) | ScoView |
| formsemestre:EDIT | | POST | [formsemestre-edit](#formsemestre-edit) | EditFormSemestre |
| formsemestre**`*`** | | GET | [etudiant-formsemestres](#etudiant-formsemestres) | ScoView |
| formsemestre | | GET | [formsemestre](#formsemestre) | ScoView |
| moduleimpl | | GET | [moduleimpl](#moduleimpl) | ScoView |
| moduleimpl-inscriptions | | GET | [moduleimpl](#moduleimpl-inscriptions) | ScoView |
| partition**`*`** | | GET | [formsemestre-partitions](#formsemestre-partitions) | ScoView |
| partition | | GET | [partition](#partition) | ScoView |
| partition:CREATE | | POST | [formsemestre-partition-create](#formsemestre-partition-create) | EtudChangeGroups |
| partition:EDIT | | POST | [partition-edit](#partition-edit) | EtudChangeGroups |
| partition:ACTION | | POST | [formsemestre-partitions-order](#formsemestre-partitions-order) | EtudChangeGroups |
| partition:DELETE | | POST | [partition-delete](#partition-delete) | EtudChangeGroups |
| partition:ACTION | | POST | [partition-remove_etudiant](#partition-remove_etudiant) | EtudChangeGroups |
| group:CREATE | | POST | [partition-group-create](#partition-group-create) | EtudChangeGroups |
| group:EDIT | | POST | [group-edit](#group-edit) | EtudChangeGroups |
| group:ACTION | | POST | [partition-groups-order](#partition-groups-order) | EtudChangeGroups |
| group:DELETE | | POST | [group-delete](#group-delete) | EtudChangeGroups |
| group* | | GET | [etudiant-formsemestre-groups](#etudiant-formsemestre-groups) | ScoView |
| group:ACTION | | POST | [group-set_etudiant](#group-set_etudiant) | EtudChangeGroups |
| group:ACTION | | POST | [group-remove_etudiant](#group-remove_etudiant) | EtudChangeGroups |
| etudiant**`*`** | recherche par etudid, nip ou ine | GET | [etudiants-clef](#etudiants-clef) | ScoView |
| etudiant**`*`** | les étudiants actuels | GET | [etudiants-courant](#etudiants-courant) | ScoView |
| etudiant**`*`** | étudiants dont le nom commence par | GET | [etudiants-name](#etudiants-name) | ScoView |
| etudiant**`*`** | | GET | [departement-etudiants](#departement-etudiants) | ScoView |
| etudiant**`*`** | | GET | [formsemestre-etudiants](#formsemestre-etudiants) | ScoView |
| etudiant**`*`** | | GET | [formsemestre-etudiants-query](#formsemestre-etudiants-query) | ScoView |
| etudiant**`*`** | | GET | [group-etudiants-query](#group-etudiants) | ScoView |
| etudiant**`*`** | | GET | [group-etudiants-query](#group-etudiants-query) |
| etudiant | | GET | [etudiant](#etudiant) | ScoView |
| etudiant:CREATE | | GET | [etudiant-create](#etudiant-create) | EtudInscrit |
| etudiant:EDIT | | GET | [etudiant-edit](#etudiant-edit) | EtudInscrit |
| bulletin**`*`** | | GET | [formsemestre-bulletin](#formsemestre-bulletin) | ScoView |
| bulletin | | GET | [etudiant-formsemestre-bulletin](#etudiant-formsemestre-bulletin) | ScoView |
| programme | | GET | [formsemestre-programme](#formsemestre-programme) | ScoView |
| | | GET | [formsemestre-etat_evals](#formsemestre-etat_evals) | ScoView |
| | | GET | [formsemestre-resultats](#formsemestre-resultats) | ScoView |
| jury | | GET | [formsemestre-decisions_jury](#formsemestre-decisions_jury) | ScoView |
| note* | | GET | [evaluation-notes](#evaluation-notes) | ScoView |
| | | GET | [evaluation-notes-set](#evaluation-notes-set) | (contextuelle) |
| logo**`*`** | | GET | [logos](#logos) | ScoSuperAdmin |
| logo**`*`** | | GET | [departement-logos](#departement-logos) | ScoSuperAdmin |
| logo | | GET | [logo](#logo) | ScoSuperAdmin |
| logo | | GET | [departement-logo](#departement-logo) | ScoSuperAdmin |
| user | | GET | [user](#user) | UsersView |
| user**`*`** | | GET | [users-query](#users-query) | UsersView |
| user:CREATE | | POST | [user-create](#user-create) | UsersAdmin |
| user:EDIT | | POST | [user-edit](#user-edit) | UsersAdmin |
| user:PASSWORD | change le mot de passe d'un utilisateur | POST | [user-password](#user-password) | UsersAdmin |
| user:ACTION | | POST | [user-role-add](#user-role-add) | UsersAdmin |
| user:ACTION | | POST | [user-role-remove](#user-role-remove) | UsersAdmin |
| permission**`*`** | | GET | [permissions](#permissions) | UsersView |
| role**`*`** | | GET | [roles](#roles) | UsersView |
| role**`*`** | | GET | [role](#role) | UsersView |
| role:ACTION | | POST | [role-add_permission](#role-add_permission) | UsersAdmin |
| role:ACTION | | POST | [role-remove_permission](#role-remove_permission) | UsersAdmin |
| role:CREATE | | POST | [role-create](#role-create) | UsersAdmin |
| role:EDIT | | POST | [role-edit](#role-edit) | UsersAdmin |
| role:DELETE | | POST | [role-delete](#role-delete) | UsersAdmin |
#### Note sur les exemples d'utilisation
@ -838,6 +878,63 @@ Note: les poids ne sont utilisés que dans les formations APC (BUT).
* **Résultat:** Description de la formation.
* **Exemple de résultat:** [formation.json](samples/sample_formation.json.md)
#### **`module-edit`**
* **Méthode:** POST
* **Permission: `EditFormation`**
* **Paramètres:** `module_id`
* **Data:**
```json
{
"titre" : str,
"abbrev" : str,
"code"
"heures_cours" : float,
"heures_td" : float,
"heures_tp" : float,
"coefficient" : float,
"ects" : float,
"matiere_id" : int, // must be in same UE
"semestre_id" : int, // le rang du semestre (S1, ...)
"numero" : int, // ordre d'affichage
"code_apogee" : str,
"edt_id" : str,
"module_type" : int, // 0 std, 1 malus, 2 ressource, 3 SAÉ
"parcours" : [ id de parcours ],
}
```
* **Routes:** `/formation/module/<int:module_id>/edit`
* **Résultat:** le module modifié.
#### **`ue-edit`**
* **Méthode:** POST
* **Permission: `EditFormation`**
* **Paramètres:** `ue_id`
* **Data:**
```json
{
"acronyme" : str,
"numero" : int, // ordre d'affichage
"titre" : str,
"semestre_idx" : int, // le rang du semestre (S1, ...)
"type": int, // 0 std, 1 bonus sport, 2 projet&stage (old LP)
"ue_code" : str,
"ects" : float,
"is_external" : bool, // true pour externes
"code_apogee" : str,
"code_apogee_rcue" : str,
"coef_rcue" : float,
"coefficient" : float, // si option use_ue_coefs
"ects" : float,
"matiere_id" : int, // must be in same UE
}
```
* **Routes:** `/formation/ue/<int:ue_id>/edit`
* **Résultat:** l'UE modifiée.
### **API Formsemestre**
Les sessions de formation (qu'elles durent une année ou un mois) sont représentées par les `formsemestre`.
@ -1282,7 +1379,7 @@ utilisateur pourra être associé à un ou plusieurs rôles dans chaque départe
(ainsi, il ou elle peut enseigner dans un département et être administrateur
d'un autre).
#### **roles**
#### **list-roles**
* **Méthode:** GET
* **Permission: `UsersView`**
@ -1291,7 +1388,7 @@ d'un autre).
* **Résultat:** Liste de tous les rôles.
* **Exemple de résultat:** [roles.json](samples/sample_roles.json.md)
#### **role**
#### **list-role**
* **Méthode:** GET
* **Permission: `UsersView`**
@ -1300,7 +1397,7 @@ d'un autre).
* **Résultat:** Liste le rôle indiqué. 404 si inexistant.
* **Exemple de résultat:** [role.json](samples/sample_role.json.md)
#### **role-add_permission**
#### **role-permission-add**
* **Méthode: POST**
* **Permission: `ScoSuperAdmin`**
@ -1310,7 +1407,7 @@ d'un autre).
Note: la liste des permissions est donnée sur [ConfigPermissions](ConfigPermissions.md).
* **Exemple de résultat:** [role-add_permission.json](samples/sample_role-add_permission.json.md)
#### **role-remove_permission**
#### **role-permission-remove**
* **Méthode: POST**
* **Permission: `ScoSuperAdmin`**
@ -1357,7 +1454,7 @@ d'un autre).
### **API User, Permissions**
#### **user**
#### **user-info**
* **Méthode:** GET
* **Permission: `UsersView`**
@ -1389,7 +1486,7 @@ d'un autre).
si est "super-administrateur".
* **Exemple de résultat:** [user-create.json](samples/sample_user-create.json.md)
#### **`users-query`**
#### **`users-info-query`**
* **Méthode:** GET
* **Permission: `UsersView`**
@ -1462,7 +1559,7 @@ d'un autre).
* **Résultat:** Retire le rôle à l'utilisateur.
* **Exemple de résultat:** [user-role-remove.json](samples/sample_user-role-remove.json.md)
#### **`permissions`**
#### **`list-permissions`**
* **Méthode:** GET
* **Permission: `UsersView`**

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 872 KiB

After

Width:  |  Height:  |  Size: 440 KiB