forked from ScoDoc/DocScoDoc
Mise à jour modélisation BUT
This commit is contained in:
parent
f6cbeccd61
commit
c0381cf0f9
@ -5,6 +5,12 @@ posent un certain nombre de problèmes spécifiques liés aux caractéristiques
|
||||
atypiques du BUT. Nous listons ci-dessous quelques points qu'il est important
|
||||
d'avoir à l'esprit.
|
||||
|
||||
## Compétences et référentiels
|
||||
|
||||
Avant toute chose, et avant de tenir un jury BUT, s'assurer que la formation est
|
||||
bien configurée, liée à son référentiel de compétences et que chaque UE est bien
|
||||
associée à un niveau de compétence (dans le bon parcours le cas échéant).
|
||||
|
||||
## Pas de moyennes générales en BUT
|
||||
|
||||
En BUT, les seules notes définies sans ambigüité sont:
|
||||
|
@ -119,7 +119,7 @@ flask user-password lecteur_rt
|
||||
puis
|
||||
|
||||
```bash
|
||||
http -a lecteur_rt:azer POST 'http://localhost:5000/ScoDoc/api/tokens'
|
||||
http -a lecteur_rt:mot_de_passe POST 'http://localhost:5000/ScoDoc/api/tokens'
|
||||
# récupérer le token...
|
||||
|
||||
http GET http://localhost:5000/ScoDoc/api/RT/formsemestres/query "Authorization:Bearer xxxxxxxxxxx"
|
||||
@ -166,10 +166,18 @@ identifiés par un id unique dans le cache Redis. Ce cache est persistant, il
|
||||
faut donc invalider les objets quand on écrit des données susceptibles de les
|
||||
modifier, et penser à le vider quand on modifie le code.
|
||||
Par exemple:
|
||||
```
|
||||
|
||||
```bash
|
||||
git pull
|
||||
flask clear-cache
|
||||
```
|
||||
|
||||
La commande `redis-cli FLUSHALL` permet aussi de vider le cache sans avoir à
|
||||
lancer flask (plus rapide).
|
||||
|
||||
!!! note "Voir aussi"
|
||||
|
||||
- [Informations pour les développeurs](Internals.md)
|
||||
- [API ScoDoc 9](ScoDoc9API.md)
|
||||
- [Modélisation du BUT](ModelisationParcoursBUT.md)
|
||||
- [Contacts](Contact.md)
|
||||
|
@ -1,13 +1,13 @@
|
||||
# Implémentation des parcours du BUT dans ScoDoc
|
||||
|
||||
Cette page est *destinée aux développeurs* et à tous ceux qui souhaitent
|
||||
comprendre le fonctionnement du logiciel. Elle ne concerne que les formations
|
||||
BUT, dites dans ScoDoc "APC" (pour *approches par compétences*).
|
||||
|
||||
|
||||
ScoDoc est livré avec les référentiels de compétences de tous les parcours de toutes
|
||||
les spécialités de BUT. En effet, ces référentiels sont nationaux, publiés par
|
||||
le ministère (voir
|
||||
[https://cache.media.enseignementsup-recherche.gouv.fr/file/SPE4-MESRI-17-6-2021/32/3/_Annexe_1_PN_BUT_version_post_CNESER_20210511_18-05-2021-1_1411323.pdf](https://cache.media.enseignementsup-recherche.gouv.fr/file/SPE4-MESRI-17-6-2021/32/3/_Annexe_1_PN_BUT_version_post_CNESER_20210511_18-05-2021-1_1411323.pdf))
|
||||
ScoDoc est livré avec les référentiels de compétences de tous les parcours de
|
||||
toutes les spécialités de BUT. En effet, ces référentiels sont nationaux,
|
||||
publiés par le ministère (voir
|
||||
[https://www.enseignementsup-recherche.gouv.fr/fr/bo/22/Special4/ESRS2211617A.htm](https://www.enseignementsup-recherche.gouv.fr/fr/bo/22/Special4/ESRS2211617A.htm))
|
||||
et ne sont pas susceptibles d'adaptations locales.
|
||||
|
||||
Nous nous sommes basés sur les versions exportées du logiciel Orébut.
|
||||
@ -25,29 +25,41 @@ Pour le BUT, le référentiel de formation n'est pas fixé nationalement. Une pa
|
||||
est publiée (2/3) par le ministère, le reste est défini localement par les
|
||||
universités (*adaptation locale*).
|
||||
|
||||
Les formations ScoDoc (`Formation`) sont constituées de
|
||||
- UE : `UniteEns`
|
||||
- Modules (ressources, SAÉ, autres): `Module`
|
||||
Les formations ScoDoc (`Formation`) sont constituées de
|
||||
|
||||
- UE : `UniteEns`
|
||||
- Modules (ressources, SAÉ, autres): `Module`
|
||||
|
||||
La formation définit les UE et modules pour l'ensemble
|
||||
des semestres d'un ou plusieurs parcours. De cette façon, on peut utiliser les
|
||||
mêmes éléments dans plusieurs parcours, et grouper les étudiants de plusieurs
|
||||
parcours dans le même semestre si on le souhaite.
|
||||
|
||||
En ScoDoc 9.3, on avait une bijection UE <-> Niveau de compétence (`ApcNiveau`).
|
||||
En 9.4, on aura une association UE <- parcours -> Niveau de compétence
|
||||
|
||||
- Chaque parcours de BUT est défini par un ensemble de compétences.
|
||||
|
||||
- Une compétence est décomposée en deux ou trois *niveaux*, chacun constitué de
|
||||
deux UE consécutives (sur semestres pair et impair de la même année
|
||||
scolaire).
|
||||
|
||||
## Unités d'enseignement
|
||||
|
||||
Les UE sont des UE "LMD" habituelles; associées à des crédits ECTS,
|
||||
capitalisables. Pour chaque UE on calcule une note (moyenne d'UE) et on attribue
|
||||
une décision de jury (validée, ajournée, ...).
|
||||
une décision de jury (validée, ajournée, ...).
|
||||
|
||||
### ECTS et parcours
|
||||
|
||||
Les ECTS sont toujours associés aux UEs, et non au semestre ou aux modules.
|
||||
|
||||
Dans ScoDoc, il est obligatoire de spécifier le nombre d'ECTS des de chaque UE
|
||||
(sauf les UE bonus qui n'ont jamais d'ECTS).
|
||||
|
||||
Le nombre d'ECTS est généralement fixe, mais il peut varier selon le parcours
|
||||
|
||||
!!! note "ECTS variable selon le parcours"
|
||||
Ce cas a été soulevé à propos du BUT MMI, qui préconiserait par exemple, au S4,
|
||||
une compétence "développer" avec 10 ECTS dans le parcours "Web", et 5 ECTS dans le
|
||||
parcours "Crea".
|
||||
Cette possibilité est prévue pour ScoDoc version 9.4.72
|
||||
Chaque UE a un attribut ECTS qui donne la valeur par défaut. On a aussi une
|
||||
valeur ECTS dans la table d'association `UEParcours`qui lie `UniteEns` et
|
||||
`ApcParcours`.
|
||||
Si cette valeur est présente, l'attribut ECTS de l'UE est ignoré.
|
||||
|
||||
## Modules et parcours
|
||||
|
||||
@ -64,28 +76,31 @@ On peut ainsi vérifier que les parcours couvrent les AC, et faciliter les
|
||||
inscriptions des étudiants aux modules (par ex. page présentant les modules
|
||||
auxquels inscrire un groupe).
|
||||
|
||||
### Cas des modules présents dans plusieurs parcours
|
||||
|
||||
Si un module est utilisé dans plusieurs parcours de la même formation BUT, cela
|
||||
ne pose aucun problème, _sauf_ si ce module doit avoir des coefficients (vers
|
||||
les UEs) différents selon le parcours dans lequel il intervient. Dans ce cas,
|
||||
*il sera conseillé de créer plusieurs versions du module*, que l'on associera
|
||||
aux divers parcours.
|
||||
### Cas des modules présents dans plusieurs parcours
|
||||
|
||||
Il est fréquent qu'un module peut être utilisé dans plusieurs parcours de la
|
||||
même formation BUT. Il peut contribuer à une UE de tronc commun, ou un
|
||||
sous-ensemble d'UEs. Dans certains spécialités, le coefficient d'un module vers
|
||||
une UE varie selon le parcours: dans ce cas, il faudra créer plusieurs UEs
|
||||
associées au même niveau de compétence, et renseigner les coefficients
|
||||
correspondants. les étudiants seront inscrits à l'une ou l'autre des UEs suivant
|
||||
leur parcours.
|
||||
|
||||
## Coefficients modules / UEs
|
||||
|
||||
Les coefficients sont des réels (non nullables), `ModuleUECoef`.
|
||||
|
||||
Édition via *Formation*/*Édition des coefficients des modules vers les UEs*:<br>
|
||||
<img src="/fig/formation_edit_coefs.png" width="30%">
|
||||
|
||||
## Formation
|
||||
|
||||
Le programme de formation est constitué des classes suivantes (en BUT et dans
|
||||
tous les types de formation. La notion de "matière" n'est pas utilisée en BUT).
|
||||
|
||||
- `Formation` (ex: "BUT R&T")
|
||||
- `UniteEns` (UE, ex: "Administrer les réseaux")
|
||||
- `Modules` (ressources, SAÉs) *<-> `ApcAppCritique`*, *<-> `ApcAnneeParcours`*
|
||||
- `Formation` (ex: "BUT R&T")
|
||||
- `UniteEns` (UE, ex: "Administrer les réseaux")
|
||||
- `Modules` (ressources, SAÉs) *<-> `ApcAppCritique`*, *<-> `ApcAnneeParcours`*
|
||||
|
||||
On voit que les modules ont toujours une UE de rattachement. Cependant, en BUT,
|
||||
un module peut intervenir dans le calcul des notes de plusieurs UE, via une
|
||||
@ -93,42 +108,93 @@ matrice de coefficients.
|
||||
|
||||
!!! example "Méthodes de Formation"
|
||||
- `Formation.query_ues_parcour(parcour: ApcParcours)`->(query) les UEs d'un
|
||||
parcours de la formation.
|
||||
parcours de la formation.
|
||||
|
||||
## Référentiel de compétences
|
||||
|
||||
Le référentiel de compétences (`ApcReferentielCompetences`) défini les
|
||||
compétences à valider (décomposées en niveaux) et les parcours BUT
|
||||
(`ApcParcours`). Il est structuré ainsi:
|
||||
|
||||
- `ApcReferentielCompetences`
|
||||
- `ApcCompetence`
|
||||
- `ApcSituationPro`
|
||||
- `ApcComposanteEssentielle`
|
||||
- `ApcNiveau` (année (BUT1, BUT2, ...), ordre (1,2) ou (1,2,3)) *<-> `UE`*
|
||||
- `ApcAppCritique` *<-> `Module`*
|
||||
- `ApcParcours`
|
||||
- `ApcAnneeParcours` (ordre=1,2,3) *<-> `Module`*
|
||||
- *`ApcCompetence`* <- `ApcParcoursNiveauCompetence` (niveau 1, 2, 3) -> *`ApcAnneeParcours`*
|
||||
- `ApcReferentielCompetences`
|
||||
- `ApcCompetence`
|
||||
- `ApcSituationPro`
|
||||
- `ApcComposanteEssentielle`
|
||||
- `ApcNiveau` (année (BUT1, BUT2, ...), ordre (1,2) ou (1,2,3)) *<-> `UE`*
|
||||
- `ApcAppCritique` *<-> `Module`*
|
||||
- `ApcParcours`
|
||||
- `ApcAnneeParcours` (ordre=1,2,3) *<-> `Module`*
|
||||
- *`ApcCompetence`* <- `ApcParcoursNiveauCompetence` (niveau 1, 2, 3) -> *`ApcAnneeParcours`*
|
||||
|
||||
Notons:
|
||||
|
||||
- Le lien entre UE et Niveau de compétence (`ApcNiveau`).
|
||||
|
||||
- Le lien à entre Compétence et Année de Parcours à travers la table
|
||||
(*many-to-many*) `ApcParcoursNiveauCompetence` qui indique le niveau ce
|
||||
compétence concerné.
|
||||
|
||||
- Le lien entre les apprentissages critiques (`ApcAppCritique`) et les
|
||||
- Le lien (*one-to-one*) entre `UniteEns`(UE) et Niveau de compétence (`ApcNiveau`).
|
||||
|
||||
- Le lien entre Compétence et Année de Parcours à travers la table
|
||||
(*many-to-many*) `ApcParcoursNiveauCompetence` qui indique le niveau ce
|
||||
compétence concerné.
|
||||
|
||||
- Le lien *many-to-many* UE et `Parcours`, qui permet de spécifier les ECTS de
|
||||
l'UE dans un parcours donné et est utilisé pour vérifier la formation
|
||||
(couverture de tous les niveau en suivant un parcours donné, somme des ECTS).
|
||||
|
||||
- Le lien entre les apprentissages critiques (`ApcAppCritique`) et les
|
||||
modules, qui permet d'établir les critères d'évaluation de chaque module.
|
||||
|
||||
### Niveaux de compétences et UEs
|
||||
|
||||
Une compétence est constituée de plusieurs niveaux (`ApcNiveau`), typiquement 2
|
||||
ou 3. En BUT, chaque niveau correspond à deux UEs sur deux semestres de la même
|
||||
année d'un parcours.
|
||||
|
||||
- Chaque parcours de BUT est défini par un ensemble de compétences.
|
||||
|
||||
- Une compétence est décomposée en deux ou trois *niveaux*, chacun constitué de
|
||||
deux UE consécutives (sur semestres pair et impair de la même année
|
||||
scolaire).
|
||||
|
||||
Lors des jurys, on enregistre les validations d'UE. Les UE sont liées à des
|
||||
niveaux de compétences. Lorsque les deux UEs sont validées, le niveau est
|
||||
validé: c'est le RCUE (*regroupement cohérents d'UEs*).
|
||||
|
||||
Pour valider un diplôme de BUT, il faut avoir validé tous les niveaux de toutes
|
||||
les compétences du parcours choisi.
|
||||
|
||||
Une UE est associée à un et un seul niveau de compétence. Elle peut être
|
||||
associée à un nombre quelconque de parcours.
|
||||
|
||||
Remarques:
|
||||
|
||||
- Certains niveaux (et donc UEs) sont présents dans tous les parcours: ce sont
|
||||
les niveaux de *tronc commun*.
|
||||
- Une UE associée à un niveau peut avoir des ECTS différents selon le parcours
|
||||
(voir [note ci-dessus](#ects-et-parcours))
|
||||
- Dans certaines spécialités, les coefficients des modules vers la même UE
|
||||
peuvent varier selon le parcours. Dans ce cas, on créera une UE par parcours
|
||||
(UE associée au même niveau), afin de pouvoir spécifier des coefficients
|
||||
distincts.
|
||||
|
||||
#### Vérifications effectués par ScoDoc
|
||||
|
||||
En plus des contraintes strictes liées aux relations modélisées,
|
||||
ScoDoc vérifiera que
|
||||
|
||||
- Dans une formation, chaque niveau d'un parcours soit associé à deux et
|
||||
seulement deux UEs de ce parcours de la même année scolaires (BUT1, BUT2 ou
|
||||
BUT3).
|
||||
- Le nombre total d'ECTS de chaque parcours soit bien 180 (3 années de 60 ECTS).
|
||||
- Toutes les UEs sont bien associée à un niveau.
|
||||
|
||||
|
||||
## FormSemestres
|
||||
|
||||
La formation est mise en œuvre dans des `FormSemestre` (date début, fin,
|
||||
enseignants responsables, ...) constitués de `ModuleImpl` (module avec enseignant,
|
||||
évaluations, ...).
|
||||
|
||||
- `FormSemestre`
|
||||
- `ModuleImpl`
|
||||
- `Evaluation`
|
||||
- `FormSemestre`
|
||||
- `ModuleImpl`
|
||||
- `Evaluation`
|
||||
|
||||
On a vu que la formation pouvait comporter plusieurs parcours. Un `FormSemestre`
|
||||
peut implémenter un ou plusieurs parcours. On a en effet une table d'association
|
||||
@ -143,17 +209,17 @@ Via *Semestre*/*Modifier le semestre*:<br>
|
||||
- `FormSemestre.query_ues_parcours_etud(etudid: int) -> `(query) UEs que suit
|
||||
l'étudiant dans ce semestre BUT en fonction du parcours dans lequel il est
|
||||
inscrit.
|
||||
|
||||
|
||||
## Inscriptions des étudiants
|
||||
|
||||
Les étudiants sont inscrits:
|
||||
|
||||
- à des `FormSemestre` (`FormSemestreInscription`, avec:
|
||||
- un état, "inscrit", "démission" ou "défaillant";
|
||||
- un `ApcParcours`;
|
||||
- un code étape Apogée.
|
||||
- à des `FormSemestre` (`FormSemestreInscription`, avec:
|
||||
- un état, "inscrit", "démission" ou "défaillant";
|
||||
- un `ApcParcours`;
|
||||
- un code étape Apogée.
|
||||
|
||||
- dans un ModuleImpl (`ModuleImplInscription`)
|
||||
- dans un ModuleImpl (`ModuleImplInscription`)
|
||||
|
||||
Un formsemestre est associé à un ensemble de parcours. L'étudiant peut être
|
||||
inscrit à l'un d'entre eux. Certaines formations commencent par une année de
|
||||
@ -161,17 +227,28 @@ tronc commun, durant laquelle l'étudiant n'a pas encore choisi son parcours. On
|
||||
considérera que si l'étudiant n'est pas inscrit à un parcours, il est
|
||||
implicitement inscrit à tous les parcours du semestre.
|
||||
|
||||
## Associations (nouvelles pour le BUT):
|
||||
## Associations (nouvelles pour le BUT)
|
||||
|
||||
Pour la gestion des parcours BUT, on a introduit les associations suivantes,
|
||||
qui n'existaient pas dans ScoDoc 9.2:
|
||||
|
||||
- UE <-> `ApcNiveau` : choix sur la page `ue_edit`
|
||||
- `Module` ||--o{ ensemble de `ApcParcours`
|
||||
- `Module` ||--o{ `ApcAppCritique` : choix sur la page `module_edit`
|
||||
- `FormSemestre` ||--o{ `ApcParcours` : choix sur la page
|
||||
`formsemestre_editwithmodules`
|
||||
- `FormSemestreInscription` ||--|| `ApcParcours` : inscription au parcours, page à créer.
|
||||
- `UniteEns` }o--o{ ensemble de `ApcParcours` : choix sur la page `ue_edit`
|
||||
- `UniteEns` }o--|| `ApcNiveau` : choix sur la page `ue_edit`
|
||||
- `Module` ||--o{ ensemble de `ApcParcours`
|
||||
- `Module` ||--o{ `ApcAppCritique` : choix sur la page `module_edit`
|
||||
- `FormSemestre` ||--o{ `ApcParcours` : choix sur la page
|
||||
`formsemestre_editwithmodules`
|
||||
- `FormSemestreInscription` ||--|| `ApcParcours` : inscription au parcours, géré
|
||||
via la partition `Parcours`.
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
UniteEns }o--o{ ApcParcours : UEParcours
|
||||
UniteEns }o--|| ApcNiveau : ""
|
||||
Formation ||--o{ UniteEns : ""
|
||||
FormSemestre }o--|| Formation : ""
|
||||
UniteEns }o--|{ Module : ModuleUECoef
|
||||
```
|
||||
|
||||
## Cas d'usage
|
||||
|
||||
@ -188,35 +265,39 @@ l'étudiant est inscrit (sans bonus).
|
||||
matrice d'inscriptions `(etuds, ue)`.
|
||||
|
||||
### UEs à afficher sur les tableaux récap. de semestre
|
||||
|
||||
TODO
|
||||
|
||||
### UEs à valider en jury BUT
|
||||
TODO
|
||||
|
||||
TODO
|
||||
|
||||
### Niveau de compétence d'un formsemestre
|
||||
|
||||
Le formsemestre est lié à un ensemble d'`ApcParcours`.
|
||||
|
||||
La liste des niveaux (`ApcNiveau`) associés aux UEs:
|
||||
```
|
||||
La liste des niveaux (`ApcNiveau`) associés aux UEs:
|
||||
|
||||
```py
|
||||
[ 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 (via `edit_partition_form`)
|
||||
- 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`.
|
||||
- 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
|
||||
UE, on peut déterminer, pour un semestre de rang donné, l'ensemble des UE
|
||||
UE, on peut déterminer, pour un semestre de rang donné, l'ensemble des UEs
|
||||
associées à un parcours.
|
||||
|
||||
Par ailleurs, chaque niveau de compétence est associé à un ensemble d'AC
|
||||
@ -236,21 +317,22 @@ Vérification utile en fin de formation.
|
||||
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
|
||||
(S1 à S6);
|
||||
- En déduire l'ensemble des AC évalués pour cet étudiant (indépendamment de sa
|
||||
réussite);
|
||||
- Comparer aux AC du parcours tels que décrits dans le référentiel de compétence.
|
||||
- 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);
|
||||
- Comparer aux AC du parcours tels que décrits dans le référentiel de compétence.
|
||||
|
||||
#### 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 `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.
|
||||
on ne peut pas aller plus loin.
|
||||
|
||||
### Lister les UEs d'un parcours d'une formation
|
||||
```
|
||||
|
||||
```py
|
||||
# Soit un parcours:
|
||||
parcour = formation.referentiel_competence.parcours.filter_by(code="ROM").first()
|
||||
# Listes UEs de ce parcours:
|
||||
@ -283,9 +365,9 @@ particuliers (décision de jury manuelle).
|
||||
|
||||
**Rappel:** le passage est de droit si
|
||||
|
||||
- [x] plus de la moitié des niveaux de compétences de l'année sont validés
|
||||
- [x] aucun regroupement d'UE (niveau de compétence) de l'année < 8 /20
|
||||
- [x] pour le passage en S5, avoir validé toutes les UE du BUT 1 (S1 et S2).
|
||||
- [x] plus de la moitié des niveaux de compétences de l'année sont validés
|
||||
- [x] aucun regroupement d'UE (niveau de compétence) de l'année < 8 /20
|
||||
- [x] pour le passage en S5, avoir validé toutes les UE du BUT 1 (S1 et S2).
|
||||
|
||||
Il faut donc:
|
||||
|
||||
@ -298,36 +380,22 @@ Il faut donc:
|
||||
relevant du même référentiel de compétences dans lesquels a été inscrit
|
||||
l'étudiant, et vérifier que les UE de S1 et S2 sont validées.
|
||||
|
||||
|
||||
### Cas particulier: formations dont le nombre d'ECTS varie selon le parcours
|
||||
|
||||
Ce cas a été soulevé à propos du BUT MMI, qui préconiserait par exemple, au S4,
|
||||
une compétence développer avec 10 ECTS dans le parcours "web", et 5 ECTS dans le
|
||||
parcours "crea".
|
||||
|
||||
Si on veut pouvoir utiliser la même formation, et éventuellement mélanger les
|
||||
étudiants des différents parcours dans le même `FormSemestre` (ce qui
|
||||
simplifierait la gestion des modules communs), il faut modifier la modélisation:
|
||||
Les ECTS sont actuellement des attributs de UEs.
|
||||
Il faudrait avoir une association `UniteEns` }o..o{ `ApcParcours` qui contienne
|
||||
les valeurs des ECTS.
|
||||
|
||||
|
||||
## Enregistrement des validations de compétences
|
||||
|
||||
### 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`
|
||||
- `etudid, formsemestre_id, code, event_date`
|
||||
|
||||
et pour les validations de semestres:
|
||||
|
||||
- `assidu, compense_formsemestre_id`
|
||||
|
||||
- `assidu, compense_formsemestre_id`
|
||||
|
||||
ou pour les validations d'UE
|
||||
|
||||
- `ue_id, is_external`
|
||||
- `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
|
||||
@ -341,64 +409,64 @@ même année de parcours associées à la même compétence.
|
||||
|
||||
On va stocker les validation des RCUE dans `ApcValidationRCUE`:
|
||||
|
||||
- `etudid`
|
||||
- `formsemestre_id` (dernier déclenchant cette validation).
|
||||
- `ue_1`, `ue_2` : les deux UE associées à ce niveau.
|
||||
- `ApcParcours` : optionnel, le parcours dans lequel se trouve la compétence.
|
||||
- `datetime` de la validation.
|
||||
- `code` de validation: `ADM`, `CMP`, `AJ`.
|
||||
- `etudid`
|
||||
- `formsemestre_id` (dernier déclenchant cette validation).
|
||||
- `ue_1`, `ue_2` : les deux UE associées à ce niveau.
|
||||
- `ApcParcours` : optionnel, le parcours dans lequel se trouve la compétence.
|
||||
- `datetime` de la validation.
|
||||
- `code` de validation: `ADM`, `CMP`, `AJ`.
|
||||
|
||||
Rappel: chaque UE est associé à un niveau de compétence
|
||||
(`ue.niveau_competence`), qui doit ici être le même.
|
||||
|
||||
### Validation des années du BUT
|
||||
|
||||
Pour le BUT, ScoDoc enregistre les validations d'années `ApcValidationAnnee`
|
||||
|
||||
- `etudid`
|
||||
- `ordre`: 1, 2, 3 pour BUT1, BUT2, BUT3.
|
||||
- `formsemestre_id` (dernier déclenchant cette validation, None si extérieure)
|
||||
- `annee_scolaire` (int, année de début, eg 2021 pour "2021-2022")
|
||||
- `datetime` de la validation.
|
||||
- `code` de validation: `PASD`, `PAS1NCI`, `RED`, `REO`, `DEM`, `EXC`, `ABAN`, `ABL`.
|
||||
|
||||
- `etudid`
|
||||
- `ordre`: 1, 2, 3 pour BUT1, BUT2, BUT3.
|
||||
- `formsemestre_id` (dernier déclenchant cette validation, None si extérieure)
|
||||
- `annee_scolaire` (int, année de début, eg 2021 pour "2021-2022")
|
||||
- `datetime` de la validation.
|
||||
- `code` de validation: `PASD`, `PAS1NCI`, `RED`, `REO`, `DEM`, `EXC`, `ABAN`, `ABL`.
|
||||
|
||||
### 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`
|
||||
- À 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 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 `JSD` (*Jury Sans
|
||||
Décision*) pour simplement indiquer que le jury s'est tenu. Ce code ne sera pas
|
||||
exporté vers Apogée.
|
||||
- Pour les semestres: `ADM`, `ADC`, `ADJ`, `ATT`, `ATB`, `ATJ`, `AJ`, `NAR`. En
|
||||
BUT, pas besoin de codes semestriels. On ajoutera un code `JSD` (*Jury Sans
|
||||
Décision*) 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**
|
||||
- Pour les UEs: **codes d'état d'UE**
|
||||
|
||||
ScoDoc | 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) |
|
||||
| UESBL | blanchissement (non dispo en ScoDoc 9) |
|
||||
|
||||
- Pour les RCUE:
|
||||
- Pour les RCUE:
|
||||
|
||||
ScoDoc | BUT AMUE |
|
||||
----------|-----|-----
|
||||
@ -409,11 +477,10 @@ AJ | AJ | RCUE ajournée (échec) |
|
||||
Rappel: les codes exportés vers Apogée sont configurables (table de transcodage dans la
|
||||
config générale).
|
||||
|
||||
|
||||
## Diagramme de classes
|
||||
|
||||
Juste pour rire, car ce diagramme est quasiment inexploitable (dessin réalisé
|
||||
automatiquement en Mermaid).
|
||||
(dessin réalisé automatiquement en Mermaid; toutes les classes ScoDoc ne
|
||||
figurent pas ici).
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
@ -428,6 +495,8 @@ erDiagram
|
||||
str acronym
|
||||
str code
|
||||
}
|
||||
|
||||
ApcReferentielCompetences ||--|{ Formation : ""
|
||||
|
||||
Etudiant {
|
||||
str nom
|
||||
@ -450,7 +519,7 @@ erDiagram
|
||||
ApcCompetence ||--o{ ApcNiveau : ""
|
||||
ApcCompetence ||--o{ ApcSituationPro : ""
|
||||
ApcCompetence ||--o{ ApcComposanteEssentielle : ""
|
||||
ApcNiveau }o..|| UE : "optionnel"
|
||||
ApcNiveau ||..o{ UE : ""
|
||||
ApcNiveau ||--o{ ApcAppCritique : ""
|
||||
ApcAppCritique }o..o{ Module : "optionnel"
|
||||
|
||||
@ -458,12 +527,19 @@ erDiagram
|
||||
ApcParcours ||--o{ ApcAnneeParcours : ""
|
||||
|
||||
ApcAnneeParcours {
|
||||
int ordre
|
||||
int ordre "année BUT"
|
||||
}
|
||||
|
||||
ApcCompetence }o--o{ ApcAnneeParcours : "ApcParcoursNiveauCompetence (1,2,3)"
|
||||
|
||||
Module }o--o{ ApcParcours : "parcours_modules"
|
||||
FormSemestre }o--o{ ApcParcours : "parcours_formsemestre"
|
||||
UE }o..o{ ApcParcours : "pour les ECTS"
|
||||
UE }o--o{ ApcParcours : "avec en option ECTS"
|
||||
```
|
||||
|
||||
!!! note "Voir aussi"
|
||||
|
||||
- [Informations pour les développeurs](Internals.md)
|
||||
- [API ScoDoc 9](ScoDoc9API.md)
|
||||
- [Le Bachelor Universitaire de Technologie (BUT)](BUT.md)
|
||||
- [Contacts](Contact.md)
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
# Paramétrage des bulletins de notes
|
||||
# Paramétrage des bulletins de notes
|
||||
|
||||
Ces réglages permettent de configurer la présentation des relevés de notes au
|
||||
format PDF.
|
||||
@ -20,7 +20,7 @@ paramétrables à l'aide de formats utilisant un balisage XML assez simple.
|
||||
|
||||
## Marges et position du pied de page
|
||||
|
||||
Les bulletins sont formattés pour du papier A4.
|
||||
Les bulletins sont formatés pour du papier A4.
|
||||
|
||||
Les marges sont réglables via les valeurs dans la section "Marges additionnelles
|
||||
des bulletins". Ces valeurs s'ajoutent aux marges par défaut qui sont assez
|
||||
@ -29,7 +29,7 @@ des bulletins". Ces valeurs s'ajoutent aux marges par défaut qui sont assez
|
||||
Le pied de page (*Edité par ScoDoc le ...*) n'est pas affecté par le réglage des
|
||||
marges, et est positionné à l'aide des paramètres "Position horizontale du pied
|
||||
de page pdf" (resp. verticale) dans la section "Mise en forme des documents
|
||||
PDF". Ces valeurs affectent tous les documents PDF générés par ScoDoc.
|
||||
PDF". Ces valeurs affectent tous les documents PDF générés par ScoDoc.
|
||||
|
||||
## Valeurs remplacées
|
||||
|
||||
@ -109,7 +109,7 @@ Variable |
|
||||
date_dmy | date courante, au format jj/mm/aaaa
|
||||
date_iso | date courante, au format aaaa-mm-jj
|
||||
|
||||
## Balises XML utilisées dans les formats
|
||||
## Balises XML utilisées dans les formats
|
||||
|
||||
Le balisage XML est celui de [ReportLab](http://www.reportlab.com/)
|
||||
(intra-paragraph markup, voir page 70 du [guide
|
||||
@ -168,13 +168,16 @@ Notez qu'il est possible de ne préciser que l'une des deux dimensions hauteur o
|
||||
largeur. Dans ce cas, la dimension manquante est déduite du ratio (rapport
|
||||
hauteur/largeur) de l'image originale. Voir un exemple d'utilisation plus bas.
|
||||
|
||||
### Fond de page.
|
||||
Les modalités d'utilisation des fonds de pages sont similaires pour les PV, les lettres individuelles de décision et les bulletins.
|
||||
Celles-ci sont décrites ici: [Paramétrage des PV. Images de fond de page](ParametragePV.md)
|
||||
### Fond de page
|
||||
|
||||
Les modalités d'utilisation des fonds de pages sont similaires pour les PV, les
|
||||
lettres individuelles de décision et les bulletins. Celles-ci sont décrites ici:
|
||||
[Paramétrage des PV. Images de fond de page](ParametragePV.md)
|
||||
|
||||
## Exemples
|
||||
|
||||
### Exemple 1: Bulletins par défaut
|
||||
### Exemple 1: Bulletins par défaut
|
||||
|
||||
Les bulletins édités par défaut sont obtenus avec:
|
||||
|
||||
* Paragraphe de titre:
|
||||
@ -221,9 +224,8 @@ Année scolaire: %(anneescolaire)s
|
||||
</para>
|
||||
```
|
||||
|
||||
### Exemple 2: ancien bulletins
|
||||
|
||||
|
||||
### Exemple 2: ancien bulletins
|
||||
Les bulletins édités par défaut avant le 20/9/2009 étaient obtenus avec:
|
||||
|
||||
* Paragraphe de titre:
|
||||
@ -259,7 +261,8 @@ Les bulletins édités par défaut avant le 20/9/2009 étaient obtenus avec:
|
||||
```
|
||||
|
||||
|
||||
### Exemple 3: en-tête avec logo
|
||||
### Exemple 3: en-tête avec logo
|
||||
|
||||
Même structure que le premier exemple, avec un logo. Notez que les dimensions du logo (en mm ou cm) doivent avoir le même rapport (hauteur/largeur) que l'image utilisée, sans quoi l'apparence est déformée.
|
||||
|
||||
* Paragraphe de titre:
|
||||
@ -284,3 +287,12 @@ Année scolaire: %(anneescolaire)s
|
||||
</para>
|
||||
```
|
||||
|
||||
|
||||
!!! note "Voir aussi"
|
||||
|
||||
- [Gestion des logos](GestionLogos.md)
|
||||
- [Guide administrateur ScoDoc](GuideAdminSys.md)
|
||||
- [Guide du responsable de formation](GuideAdminFormation.md)
|
||||
- [Guide utilisateur](GuideUtilisateur.md)
|
||||
- [Contacts](Contact.md)
|
||||
- <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1" target="_blank">Tutoriels sur YouTube <img src="/img/tube.png" alt="" style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>
|
||||
|
@ -28,11 +28,16 @@ L'URL complète est de la forme:
|
||||
|
||||
## Configuration de ScoDoc pour utiliser l'API
|
||||
|
||||
Il est nécessaire de disposer d'un compte utilisateur avec les droits adéquats.
|
||||
Il est nécessaire de disposer d'un compte utilisateur avec les droits adéquats.
|
||||
|
||||
Les droits à accorder dépendent des fonctionnalités nécessaires. la permission `ScoView` est généralement suffisante car elle permet toutes les consultations.
|
||||
Cependant si, par l'API, on veut effectuer des opérations de modification ou encore consulter les comptes utilisateurs, d'autres droits (`ScoChangeGroups`, `ScoUsersView`, `ScoSuperAdmin`, ...) peuvent être requis.
|
||||
La consultation du [tableau récapitulatif](#tableau-recapitulatif-des-entrees-de-lapi) ou la ligne `permission`de chaque entrée vous donnera la permission requise pour chaque opération.
|
||||
Les droits à accorder dépendent des fonctionnalités nécessaires. la permission
|
||||
`ScoView` est généralement suffisante car elle permet toutes les consultations.
|
||||
Cependant si, par l'API, on veut effectuer des opérations de modification ou
|
||||
encore consulter les comptes utilisateurs, d'autres droits (`ScoChangeGroups`,
|
||||
`ScoUsersView`, `ScoSuperAdmin`, ...) peuvent être requis. La consultation du
|
||||
[tableau récapitulatif](#tableau-recapitulatif-des-entrees-de-lapi) ou la ligne
|
||||
`permission`de chaque entrée vous donnera la permission requise pour chaque
|
||||
opération.
|
||||
|
||||
En général, il est recommandé de créer un rôle, de lui attribuer les permissions
|
||||
que l'on veut utiliser, puis de créer un utilisateur ayant ce rôle.
|
||||
@ -40,7 +45,7 @@ que l'on veut utiliser, puis de créer un utilisateur ayant ce rôle.
|
||||
En ligne de commande, cela peut se faire comme suit (voir détail des commandes
|
||||
[sur le guide de configuration](GuideConfig.md)).
|
||||
|
||||
```
|
||||
```bash
|
||||
# se connecter comme utilisateur scodoc
|
||||
su - scodoc
|
||||
|
||||
@ -68,7 +73,7 @@ Si vous êtes intéressé par le développement, voir
|
||||
* [la section sur les tests unitaires de l'API](TestsScoDoc.md#tests-de-lapi-scodoc9);
|
||||
* [la documentation interne](Internals.md#vues-de-lapi-et-permissions).
|
||||
|
||||
!!! note "Voir aussi"
|
||||
!!! note
|
||||
|
||||
- Si vous utilisez le CAS, pensez à laisser les comptes utilisateurs API se
|
||||
connecter via ScoDoc sans CAS. Pour cela, cocher l'option
|
||||
@ -143,8 +148,8 @@ L'API est accessible à l'adresse:
|
||||
`https://scodoc.monsite.tld/ScoDoc/api/<fonction>`, et aussi via les *routes
|
||||
départementales* de la forme
|
||||
`https://scodoc.monsite.tld/ScoDoc/<dept_acronyme>/api/<fonction>` pour un accès
|
||||
avec des droits restreints au département indiqué. La liste des `<fonction>` est
|
||||
donnée dans [Référence](#reference).
|
||||
avec des droits restreints au département indiqué. La liste des `<fonctions>` est
|
||||
donnée ci-dessous dans [Référence](#reference).
|
||||
|
||||
#### Authentification
|
||||
|
||||
|
@ -58,6 +58,14 @@ peu différent de celui des tests unitaire: on test un *client* de l'API. Il fau
|
||||
donc un serveur, tournant sur la même machine ou sur une machine distante. Ce
|
||||
serveur doit avoir été configuré avec des données de test.
|
||||
|
||||
### TL;DR
|
||||
|
||||
Si votre install de développement est bien configurée, il suffit de lancer
|
||||
|
||||
```bash
|
||||
tools/test_api.sh
|
||||
```
|
||||
|
||||
### Configuration du serveur pour tester l'API
|
||||
|
||||
1. modifier `/opt/scodoc/.env` pour indiquer
|
||||
|
Loading…
Reference in New Issue
Block a user