forked from ScoDoc/ScoDoc
BUT: tests unitaires yaml avec association UE/Competences
This commit is contained in:
parent
fcce474f5a
commit
d8a15926e4
@ -126,11 +126,13 @@ class ApcReferentielCompetences(db.Model, XMLModel):
|
|||||||
on cherche les niveaux qui sont présents dans tous les parcours et les range sous
|
on cherche les niveaux qui sont présents dans tous les parcours et les range sous
|
||||||
la clé "TC" (toujours présente mais éventuellement liste vide si pas de tronc commun).
|
la clé "TC" (toujours présente mais éventuellement liste vide si pas de tronc commun).
|
||||||
|
|
||||||
résultat:
|
Résultat: couple
|
||||||
|
( [ ApcParcours ],
|
||||||
{
|
{
|
||||||
"TC" : [ ApcNiveau ],
|
"TC" : [ ApcNiveau ],
|
||||||
parcour.id : [ ApcNiveau ]
|
parcour.id : [ ApcNiveau ]
|
||||||
}
|
}
|
||||||
|
)
|
||||||
"""
|
"""
|
||||||
parcours_ref = self.parcours.order_by(ApcParcours.numero).all()
|
parcours_ref = self.parcours.order_by(ApcParcours.numero).all()
|
||||||
if parcour is None:
|
if parcour is None:
|
||||||
|
@ -52,6 +52,7 @@ class UniteEns(db.Model):
|
|||||||
niveau_competence_id = db.Column(db.Integer, db.ForeignKey("apc_niveau.id"))
|
niveau_competence_id = db.Column(db.Integer, db.ForeignKey("apc_niveau.id"))
|
||||||
niveau_competence = db.relationship("ApcNiveau", back_populates="ues")
|
niveau_competence = db.relationship("ApcNiveau", back_populates="ues")
|
||||||
|
|
||||||
|
# Une ue appartient soit à tous les parcours (tronc commun), soit à un seul:
|
||||||
parcour_id = db.Column(db.Integer, db.ForeignKey("apc_parcours.id"), index=True)
|
parcour_id = db.Column(db.Integer, db.ForeignKey("apc_parcours.id"), index=True)
|
||||||
parcour = db.relationship("ApcParcours", back_populates="ues")
|
parcour = db.relationship("ApcParcours", back_populates="ues")
|
||||||
|
|
||||||
|
@ -1,9 +1,39 @@
|
|||||||
# Tests unitaires jury BUT
|
# Tests unitaires jury BUT
|
||||||
# Essais avec un BUT GB et deux parcours sur S1, S2, S3
|
# Essais avec un BUT GB et deux parcours sur S1, S2, S3
|
||||||
|
|
||||||
FormationFilename: scodoc_formation_BUT_GB_v1.xml
|
ReferentielCompetences:
|
||||||
ReferentielCompetencesFilename: but-GB-05012022-081625.xml
|
filename: but-GB-05012022-081625.xml
|
||||||
ReferentielCompetencesSpecialite: GB
|
specialite: GB
|
||||||
|
|
||||||
|
Formation:
|
||||||
|
filename: scodoc_formation_BUT_GB_v1.xml
|
||||||
|
# Association des UE aux compétences:
|
||||||
|
ues:
|
||||||
|
# Tronc commun GB:
|
||||||
|
'UE 11':
|
||||||
|
annee: BUT1
|
||||||
|
competence: Analyser
|
||||||
|
'UE 12':
|
||||||
|
annee: BUT1
|
||||||
|
competence: Experimenter
|
||||||
|
# Parcours SEE
|
||||||
|
'UE 1.3 SEE':
|
||||||
|
annee: BUT1
|
||||||
|
competence: Gérer
|
||||||
|
parcours: SEE
|
||||||
|
'UE 1.4 SEE':
|
||||||
|
annee: BUT1
|
||||||
|
competence: Traiter
|
||||||
|
parcours: SEE
|
||||||
|
# Parcours BMB
|
||||||
|
'UE 1.3 BMB':
|
||||||
|
annee: BUT1
|
||||||
|
competence: Mener
|
||||||
|
parcours: BMB
|
||||||
|
'UE 1.4 BMB':
|
||||||
|
annee: BUT1
|
||||||
|
competence: Réaliser
|
||||||
|
parcours: BMB
|
||||||
|
|
||||||
FormSemestres:
|
FormSemestres:
|
||||||
# S1 et S2 avec les parcours séparés:
|
# S1 et S2 avec les parcours séparés:
|
||||||
@ -45,6 +75,8 @@ Etudiants:
|
|||||||
notes_modules:
|
notes_modules:
|
||||||
R1.01: 12
|
R1.01: 12
|
||||||
R1.SEE.11: 15
|
R1.SEE.11: 15
|
||||||
|
deca:
|
||||||
|
codes_min: [ ]
|
||||||
S2_SEE:
|
S2_SEE:
|
||||||
parcours: SEE
|
parcours: SEE
|
||||||
S3:
|
S3:
|
||||||
|
@ -14,6 +14,7 @@ from app import db
|
|||||||
from app.auth.models import User
|
from app.auth.models import User
|
||||||
from app.but.import_refcomp import orebut_import_refcomp
|
from app.but.import_refcomp import orebut_import_refcomp
|
||||||
from app.models import (
|
from app.models import (
|
||||||
|
ApcNiveau,
|
||||||
ApcParcours,
|
ApcParcours,
|
||||||
ApcReferentielCompetences,
|
ApcReferentielCompetences,
|
||||||
Evaluation,
|
Evaluation,
|
||||||
@ -23,6 +24,7 @@ from app.models import (
|
|||||||
Module,
|
Module,
|
||||||
ModuleImpl,
|
ModuleImpl,
|
||||||
ModuleUECoef,
|
ModuleUECoef,
|
||||||
|
UniteEns,
|
||||||
)
|
)
|
||||||
|
|
||||||
from app.scodoc import sco_formations
|
from app.scodoc import sco_formations
|
||||||
@ -41,12 +43,14 @@ def setup_but_formation(doc: dict) -> Formation:
|
|||||||
"""Importe la formation BUT, l'associe au référentiel de compétences.
|
"""Importe la formation BUT, l'associe au référentiel de compétences.
|
||||||
Après cette fonction, on a une formation chargée, et associée à son ref. comp.
|
Après cette fonction, on a une formation chargée, et associée à son ref. comp.
|
||||||
"""
|
"""
|
||||||
refcomp_filename = doc["ReferentielCompetencesFilename"]
|
|
||||||
refcomp_specialite = doc["ReferentielCompetencesSpecialite"]
|
|
||||||
app.set_sco_dept(DEPT)
|
app.set_sco_dept(DEPT)
|
||||||
|
refcomp_infos = doc["ReferentielCompetences"]
|
||||||
|
formation_infos = doc["Formation"]
|
||||||
|
refcomp_filename = refcomp_infos["filename"]
|
||||||
|
refcomp_specialite = refcomp_infos["specialite"]
|
||||||
# Lecture fichier XML local:
|
# Lecture fichier XML local:
|
||||||
with open(
|
with open(
|
||||||
os.path.join(RESOURCES_DIR, "formations", doc["FormationFilename"]),
|
os.path.join(RESOURCES_DIR, "formations", formation_infos["filename"]),
|
||||||
encoding="utf-8",
|
encoding="utf-8",
|
||||||
) as f:
|
) as f:
|
||||||
doc = f.read()
|
doc = f.read()
|
||||||
@ -82,6 +86,29 @@ def setup_but_formation(doc: dict) -> Formation:
|
|||||||
assert referentiel_competence
|
assert referentiel_competence
|
||||||
formation.referentiel_competence_id = referentiel_competence.id
|
formation.referentiel_competence_id = referentiel_competence.id
|
||||||
db.session.add(formation)
|
db.session.add(formation)
|
||||||
|
# --- Association des UEs aux parcours niveaux de compétences
|
||||||
|
for ue_acronyme, ue_infos in formation_infos["ues"].items():
|
||||||
|
ue: UniteEns = formation.ues.filter_by(acronyme=ue_acronyme).first()
|
||||||
|
assert ue is not None # l'UE doit exister dans la formation avec cet acronyme
|
||||||
|
# Parcours:
|
||||||
|
if ue_infos.get("parcours", False):
|
||||||
|
parcour = referentiel_competence.parcours.filter_by(
|
||||||
|
code=ue_infos["parcours"]
|
||||||
|
).first()
|
||||||
|
assert parcour is not None # le parcours indiqué pour cette UE doit exister
|
||||||
|
ue.set_parcour(parcour)
|
||||||
|
|
||||||
|
# Niveaux compétences:
|
||||||
|
competence = referentiel_competence.competences.filter_by(
|
||||||
|
titre=ue_infos["competence"]
|
||||||
|
).first()
|
||||||
|
assert competence is not None # La compétence de titre indiqué doit exister
|
||||||
|
niveau: ApcNiveau = competence.niveaux.filter_by(
|
||||||
|
annee=ue_infos["annee"]
|
||||||
|
).first()
|
||||||
|
assert niveau is not None # le niveau de l'année indiquée doit exister
|
||||||
|
ue.set_niveau_competence(niveau)
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
return formation
|
return formation
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user