Compare commits

..

3 Commits

Author SHA1 Message Date
leonard_montalbano
882e7c5ed8 ajout de la doc de etat_evals 2022-06-01 16:05:11 +02:00
leonard_montalbano
77b4345e53 Merge branch 'master' of https://scodoc.org/git/viennet/DocScoDoc 2022-06-01 16:03:59 +02:00
6448fb6a07 BUT: modélisation validations jury 2022-05-25 08:19:52 +02:00
2 changed files with 160 additions and 21 deletions

View File

@ -1,5 +1,5 @@
# Les parcours du BUT dans ScoDoc
Cette documentation est destinée aux développeurs et à tous ceux qui souhaitent
# Implémentation des parcours du BUT dans ScoDoc
Cette documentation est *destinée aux développeurs* et à tous ceux qui souhaitent
comprendre le fonctionnement du logiciel.
ScoDoc est livré avec les référentiels de compétences de tous les parcours de toutes
@ -71,10 +71,10 @@ Le référentiel de compétences est structuré par les classes suivantes:
- `ApcCompetence`
- `ApcSituationPro`
- `ApcComposanteEssentielle`
- `ApcNiveau` (année (BUT1, BUT2, ...), ordre (1,2) ou (1,2,3)) *<-> UE*
- `ApcNiveau` (année (BUT1, BUT2, ...), ordre (1,2) ou (1,2,3)) *<-> `UE`*
- `ApcAppCritique` *<-> `Module`*
- `ApcParcours`
- `ApcAnneeParcours` (ordre=1,2,3) *<-> Module*
- `ApcAnneeParcours` (ordre=1,2,3) *<-> `Module`*
- *`ApcCompetence`* <- `ApcParcoursNiveauCompetence` (niveau 1, 2, 3) -> *`ApcAnneeParcours`*
Notons:
@ -123,12 +123,21 @@ qui n'existent pas dans ScoDoc 9.2:
Le formsemestre est lié à un ensemble d'`ApcParcours`.
La liste des niveaux (`ApcNiveau`) associés aux UEs:
```
[ ue.niveau_competence
for ue in formsemestre.query_ues() if ue.niveau_competence ]
```
#### Inscription d'un étudiant aux ModuleImpls
L'inscription reste libre (chaque individu peut être inscrit à un sous-ensemble
quelconque des `ModuleImpl` du `FormSemestre`), mais il sera commode de pouvoir:
- créer des groupes de parcours
- inscrire les étudiants d'un groupe à tous les modules du parcours.
- Créer des groupes de parcours (via `edit_partition_form`)
- Inscrire les étudiants d'un groupe à tous les modimpls du parcours:
Les modimpls d'un parcours sont donnés par la méthode `modimpls_parcours` de
`FormSemestre`.
#### Comment ScoDoc détermine-t-il les modules d'un parcours ?
Un parcours étant associé à des compétences, et les niveaux compétences à des
@ -136,21 +145,23 @@ UE, on peut déterminer, pour un semestre de rang donné, l'ensemble des UE
associées à un parcours.
Par ailleurs, chaque niveau de compétence est associé à un ensemble d'AC
(ApcAppCritique), et chaque module est aussi associé à son ensemble d'AC.
(`ApcAppCritique`), et chaque module est aussi associé à son ensemble d'AC.
Pour chaque parcours d'un FormSemestre, on déterminera l'ensemble des ModuleImpl
Pour chaque parcours d'un `FormSemestre`, on déterminera l'ensemble des `ModuleImpl`
de ce semestre ayant des AC communs avec ceux des niveaux de compétences
associés aux UE du semestre (sic). Notons que les niveaux de compétences sont
annuels, mais que les ModuleImpl sont semestriels.
annuels, mais que les `ModuleImpl` sont semestriels.
#### Vérifier que les ModuleImpls d'un parcours couvrent l'ensemble de ses ACs
Vérification utile en fin de formation.
##### En fin de formation, pour un étudiant
Soit un étudiant inscrit à un parcours. En fin de formation (S6), on peut
facilement vérifier que les AC ont été couverts:
- Lister les ModuleImpl auxquels l'étudiant a été inscrit dans ses semestres
- Lister les `ModuleImpl` auxquels l'étudiant a été inscrit dans ses semestres
(S1 à S6);
- En déduire l'ensemble des AC évalués pour cet étudiant (indépendamment de sa
réussite);
@ -158,10 +169,11 @@ facilement vérifier que les AC ont été couverts:
##### Au moment de la définition d'une formation
Le parcours du ref. de compétence indique un ensemble d'AC pour chaque niveau (année).
On pourra vérifier que les Modules de chaque année suffisent à couvrir le
parcours. Mais si les Modules ne sont pas associés à un parcours, on ne peut pas
aller plus loin.
Le parcours du ref. de compétence indique un ensemble d'AC pour chaque niveau
(année). On pourra vérifier que les `Module`s de chaque année suffisent à
couvrir le parcours. Mais si les `Module`s ne sont pas associés à un parcours,
on ne peut pas aller plus loin.
#### Lister les regroupements d'UE d'un étudiant
@ -171,11 +183,14 @@ inscription seulement en semestre pair, par exemple suite à un transfert ou un
arrêt temporaire du cursus).
1. Déterminer l'*autre* semestre: semestre précédent ou suivant de la même
année, formation compatible (code formation identique ou bien même
référentiel de compétence ?) dans lequel l'étudiant est inscrit.
année, formation compatible (même référentiel de compétence) dans lequel
l'étudiant est inscrit.
2. Construire les couples d'UE (regroupements cohérent): apparier les UE qui
ont le même ApcParcoursNiveauCompetence.
2. Construire les couples d'UE (regroupements cohérents): apparier les UE qui
ont le même `ApcParcoursNiveauCompetence`.
Un `RegroupementCoherentUE` est simplement un couple d'UE du même niveau dans le
cursus (BUT1, BUT2 ou BUT3).
#### Déterminer si un étudiant peut passer dans l'année suivante
@ -213,9 +228,79 @@ Les ECTS sont actuellement des attributs de UEs.
Il faudrait avoir une association `UniteEns` }o..o{ `ApcParcours` qui contienne
les valeurs des ECTS.
### Diagramme de classes
## Enregistrement des validations de compétences
Juste pour rire, car ce diagramme est quasiment inexploitable.
### Rappel: validations en formations classiques
Pour toutes les formations, ScoDoc enregistre les validations de semestres et
d'UE, via la classe `ScolarFormSemestreValidation`, dont les instances stockent:
- `etudid, formsemestre_id, code, event_date`
et pour les validations de semestres:
- `assidu, compense_formsemestre_id`
ou pour les validations d'UE
- `ue_id, is_external`
Les codes sont définis dans `sco_codes_parcours.py`, avec les valeurs: `ADC,
ADJ, ADM, AJ, ATB, ATJ, ATT, CMP, DEF, NAR, RAT` (voir [Gestion des Jurys
DUT](GestionJury.md)).
### Validation des niveaux de compétences
Pour le BUT, il faut enregistrer la validation des *niveaux de compétences*,
constitués de *regroupements cohérents d'UE* ("RCUE"), qui sont les UEs de la
même année de parcours associées à la même compétence.
On va stocker:
- ...
### Validation du BUT
### Codes préconisés par l'AMUE pour le BUT
On associe lors du jury un code de décision:
- À chaque UE: `VAL`, `COMP`, `AJ`, `UESBL`.
- À chaque niveau de compétence (RCUE): `VAL`, `AJ`, `CODJ`.
- À chaque année:
- `PASD`: Passage en Année Supérieure de Droit (+ de 50% des UE VAL et RCUE Ajourné(s) >=8)
- `PAS1NCI`: Passage en Année Supérieure avec au moins 1 Niveau de Compétence Insuffisant (RCUE<8)
- `RED`: Redoublement de l'année
- `REO`: REOrientation - décision automatique (revient à une exclusion), plus de 4 semestres RED ou décision de Jury
- `DEM`: DEMission (lettre de l'étudiant).
- `EXC`: EXClusion, décision réservée à des décisions disciplinaires
- `ABAN`: ABANdon constaté (sans lettre de démission)
- `ABL`: Année BLanchie
- Au diplôme: `ADM`
#### Correspondance avec les codes classiques de ScoDoc
ScoDoc utilise des codes [documentés ici](GestionJury.md).
- Pour les semestres: `ADM`, `ADC`, `ADJ`, `ATT`, `ATB`, `ATJ`, `AJ`, `NAR`.
En BUT, pas besoin de codes semestriels. On ajoutera un code `APC` pour
simplement indiquer que le jury s'est tenu. Ce code ne sera pas exporté vers Apogée.
- Pour les UEs: **Codes d'état d'UE:**
ScoDoc classic | BUT AMUE | &nbsp;
----------|-----|-----
ADM | VAL | UE validée automatiquement |
CMP | COMP| UE validée par compensation|
AJ | AJ | UE ajournée (échec) |
- | UESBL | blanchissement (non dispo en ScoDoc 9) |
## Diagramme de classes
Juste pour rire, car ce diagramme est quasiment inexploitable (dessin réalisé
automatiquement en Mermaid).
``` mermaid
erDiagram

View File

@ -1062,9 +1062,63 @@ informations suivantes:
]
```
* **etat_evals** (**Attente de tests unitaires**)
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>/etat_evals`
* **Exemple d'utilisation:** `/ScoDoc/api/formsemestre/1/etat_evals`
* **Résultat:** Retourne les informations sur l'état des évaluations d'un semestre donnée
* **Exemple de résultat:**
```
{
"RT1.1": [
{
"id": 1,
"titre": "Initiation aux réseaux informatiques",
"evaluations": [
{
"id": 1,
"description": null,
"datetime_epreuve": null,
"heure_fin": "09:00:00",
"comptee": "oui",
"inscrits": 16,
"manquantes": 0,
"ABS": 0,
"ATT": 0,
"EXC": 0,
"saisie_notes": {
"datetime_debut": "Wed, 01 Jun 2022 10:37:59 GMT",
"datetime_fin": "Wed, 01 Jun 2022 13:18:09 GMT",
"datetime_mediane": "Wed, 01 Jun 2022 12:38:57 GMT"
}
},
{
"id": 22,
"description": null,
"datetime_epreuve": "Tue, 31 May 2022 00:00:00 GMT",
"heure_fin": "08:00:00",
"comptee": "oui",
"inscrits": 16,
"manquantes": 0,
"ABS": 0,
"ATT": 0,
"EXC": 0,
"saisie_notes": {
"datetime_debut": "Wed, 01 Jun 2022 12:04:19 GMT",
"datetime_fin": "Wed, 01 Jun 2022 12:04:36 GMT",
"datetime_mediane": "Wed, 01 Jun 2022 14:04:27 GMT"
}
},
]
},
]
}
```
* **`jury`** (**non implémentée**)
* **jury** (**non implémentée**)
* **Méthode:** GET
* **Paramètres:** `formsemestre_id`
* **Routes:** `/formsemestre/<int:formsemestre_id>/jury`