forked from ScoDoc/DocScoDoc
Compare commits
3 Commits
63e33c5a7b
...
882e7c5ed8
Author | SHA1 | Date | |
---|---|---|---|
|
882e7c5ed8 | ||
|
77b4345e53 | ||
6448fb6a07 |
@ -1,5 +1,5 @@
|
|||||||
# Les parcours du BUT dans ScoDoc
|
# Implémentation des parcours du BUT dans ScoDoc
|
||||||
Cette documentation est destinée aux développeurs et à tous ceux qui souhaitent
|
Cette documentation est *destinée aux développeurs* et à tous ceux qui souhaitent
|
||||||
comprendre le fonctionnement du logiciel.
|
comprendre le fonctionnement du logiciel.
|
||||||
|
|
||||||
ScoDoc est livré avec les référentiels de compétences de tous les parcours de toutes
|
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`
|
- `ApcCompetence`
|
||||||
- `ApcSituationPro`
|
- `ApcSituationPro`
|
||||||
- `ApcComposanteEssentielle`
|
- `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`*
|
- `ApcAppCritique` *<-> `Module`*
|
||||||
- `ApcParcours`
|
- `ApcParcours`
|
||||||
- `ApcAnneeParcours` (ordre=1,2,3) *<-> Module*
|
- `ApcAnneeParcours` (ordre=1,2,3) *<-> `Module`*
|
||||||
- *`ApcCompetence`* <- `ApcParcoursNiveauCompetence` (niveau 1, 2, 3) -> *`ApcAnneeParcours`*
|
- *`ApcCompetence`* <- `ApcParcoursNiveauCompetence` (niveau 1, 2, 3) -> *`ApcAnneeParcours`*
|
||||||
|
|
||||||
Notons:
|
Notons:
|
||||||
@ -123,12 +123,21 @@ qui n'existent pas dans ScoDoc 9.2:
|
|||||||
|
|
||||||
Le formsemestre est lié à un ensemble d'`ApcParcours`.
|
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
|
#### Inscription d'un étudiant aux ModuleImpls
|
||||||
L'inscription reste libre (chaque individu peut être inscrit à un sous-ensemble
|
L'inscription reste libre (chaque individu peut être inscrit à un sous-ensemble
|
||||||
quelconque des `ModuleImpl` du `FormSemestre`), mais il sera commode de pouvoir:
|
quelconque des `ModuleImpl` du `FormSemestre`), mais il sera commode de pouvoir:
|
||||||
|
|
||||||
- créer des groupes de parcours
|
- Créer des groupes de parcours (via `edit_partition_form`)
|
||||||
- inscrire les étudiants d'un groupe à tous les modules du parcours.
|
|
||||||
|
- 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 ?
|
#### Comment ScoDoc détermine-t-il les modules d'un parcours ?
|
||||||
Un parcours étant associé à des compétences, et les niveaux compétences à des
|
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.
|
associées à un parcours.
|
||||||
|
|
||||||
Par ailleurs, chaque niveau de compétence est associé à un ensemble d'AC
|
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
|
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
|
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é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
|
##### En fin de formation, pour un étudiant
|
||||||
|
|
||||||
Soit un étudiant inscrit à un parcours. En fin de formation (S6), on peut
|
Soit un étudiant inscrit à un parcours. En fin de formation (S6), on peut
|
||||||
facilement vérifier que les AC ont été couverts:
|
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);
|
(S1 à S6);
|
||||||
- En déduire l'ensemble des AC évalués pour cet étudiant (indépendamment de sa
|
- En déduire l'ensemble des AC évalués pour cet étudiant (indépendamment de sa
|
||||||
réussite);
|
réussite);
|
||||||
@ -158,10 +169,11 @@ facilement vérifier que les AC ont été couverts:
|
|||||||
|
|
||||||
##### Au moment de la définition d'une formation
|
##### 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).
|
Le parcours du ref. de compétence indique un ensemble d'AC pour chaque niveau
|
||||||
On pourra vérifier que les Modules de chaque année suffisent à couvrir le
|
(année). On pourra vérifier que les `Module`s de chaque année suffisent à
|
||||||
parcours. Mais si les Modules ne sont pas associés à un parcours, on ne peut pas
|
couvrir le parcours. Mais si les `Module`s ne sont pas associés à un parcours,
|
||||||
aller plus loin.
|
on ne peut pas aller plus loin.
|
||||||
|
|
||||||
|
|
||||||
#### Lister les regroupements d'UE d'un étudiant
|
#### 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).
|
arrêt temporaire du cursus).
|
||||||
|
|
||||||
1. Déterminer l'*autre* semestre: semestre précédent ou suivant de la même
|
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
|
année, formation compatible (même référentiel de compétence) dans lequel
|
||||||
référentiel de compétence ?) dans lequel l'étudiant est inscrit.
|
l'étudiant est inscrit.
|
||||||
|
|
||||||
2. Construire les couples d'UE (regroupements cohérent): apparier les UE qui
|
2. Construire les couples d'UE (regroupements cohérents): apparier les UE qui
|
||||||
ont le même ApcParcoursNiveauCompetence.
|
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
|
#### 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
|
Il faudrait avoir une association `UniteEns` }o..o{ `ApcParcours` qui contienne
|
||||||
les valeurs des ECTS.
|
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 |
|
||||||
|
----------|-----|-----
|
||||||
|
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
|
``` mermaid
|
||||||
erDiagram
|
erDiagram
|
||||||
|
@ -1061,10 +1061,64 @@ 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
|
* **Méthode:** GET
|
||||||
* **Paramètres:** `formsemestre_id`
|
* **Paramètres:** `formsemestre_id`
|
||||||
* **Routes:** `/formsemestre/<int:formsemestre_id>/jury`
|
* **Routes:** `/formsemestre/<int:formsemestre_id>/jury`
|
||||||
|
Loading…
Reference in New Issue
Block a user