Test unitaire 'GMP Le Mans'. Modification calcul des niveaux de parcours (cas étudiants non inscrits). Modification contrainte unicité validation année.

This commit is contained in:
Emmanuel Viennet 2022-12-20 00:16:38 -03:00
parent 3cdc4b207a
commit 938d644505
10 changed files with 1214 additions and 20 deletions

View File

@ -297,10 +297,18 @@ class DecisionsProposeesAnnee(DecisionsProposees):
if self.formsemestre_impair if self.formsemestre_impair
else self.formsemestre_pair.formation else self.formsemestre_pair.formation
) )
self.niveaux_competences = ApcNiveau.niveaux_annee_de_parcours( (
self.parcour, self.annee_but, formation.referentiel_competence parcours,
).all() # non triés niveaux_by_parcours,
"liste des niveaux de compétences associés à cette année" ) = formation.referentiel_competence.get_niveaux_by_parcours(
self.annee_but, self.parcour
)
self.niveaux_competences = niveaux_by_parcours["TC"] + (
niveaux_by_parcours[self.parcour.id] if self.parcour else []
)
"""liste non triée des niveaux de compétences associés à cette année pour cet étudiant.
= niveaux du tronc commun + niveau du parcours de l'étudiant.
"""
self.decisions_rcue_by_niveau = self.compute_decisions_niveaux() self.decisions_rcue_by_niveau = self.compute_decisions_niveaux()
"les décisions rcue associées aux niveau_id" "les décisions rcue associées aux niveau_id"
self.dec_rcue_by_ue = self._dec_rcue_by_ue() self.dec_rcue_by_ue = self._dec_rcue_by_ue()
@ -482,7 +490,8 @@ class DecisionsProposeesAnnee(DecisionsProposees):
def compute_ues_annee(self) -> list[list[UniteEns], list[UniteEns]]: def compute_ues_annee(self) -> list[list[UniteEns], list[UniteEns]]:
"""UEs à valider cette année pour cet étudiant, selon son parcours. """UEs à valider cette année pour cet étudiant, selon son parcours.
Ramène [ listes des UE du semestre impair, liste des UE du semestre pair ]. Affecte self.parcour suivant l'inscription de l'étudiant et
ramène [ listes des UE du semestre impair, liste des UE du semestre pair ].
""" """
ues_sems = [] ues_sems = []
for (formsemestre, res) in ( for (formsemestre, res) in (
@ -685,6 +694,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
) )
self.recorded = True self.recorded = True
db.session.commit()
self.invalidate_formsemestre_cache() self.invalidate_formsemestre_cache()
def invalidate_formsemestre_cache(self): def invalidate_formsemestre_cache(self):
@ -709,7 +719,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
if not dec.recorded: if not dec.recorded:
# rappel: le code par défaut est en tête # rappel: le code par défaut est en tête
code = dec.codes[0] if dec.codes else None code = dec.codes[0] if dec.codes else None
# s'il n'y a pas de code, efface # enregistre le code jury seulement s'il n'y a pas déjà de code
dec.record(code, no_overwrite=True) dec.record(code, no_overwrite=True)
def erase(self, only_one_sem=False): def erase(self, only_one_sem=False):

View File

@ -114,7 +114,7 @@ class ApcReferentielCompetences(db.Model, XMLModel):
} }
def get_niveaux_by_parcours( def get_niveaux_by_parcours(
self, annee, parcour: "ApcParcours" = None self, annee: int, parcour: "ApcParcours" = None
) -> tuple[list["ApcParcours"], dict]: ) -> tuple[list["ApcParcours"], dict]:
""" """
Construit la liste des niveaux de compétences pour chaque parcours Construit la liste des niveaux de compétences pour chaque parcours

View File

@ -274,7 +274,7 @@ class ApcValidationAnnee(db.Model):
__tablename__ = "apc_validation_annee" __tablename__ = "apc_validation_annee"
# Assure unicité de la décision: # Assure unicité de la décision:
__table_args__ = (db.UniqueConstraint("etudid", "annee_scolaire"),) __table_args__ = (db.UniqueConstraint("etudid", "annee_scolaire", "ordre"),)
id = db.Column(db.Integer, primary_key=True) id = db.Column(db.Integer, primary_key=True)
etudid = db.Column( etudid = db.Column(
db.Integer, db.Integer,

View File

@ -15,7 +15,7 @@ from functools import cached_property
import flask_sqlalchemy import flask_sqlalchemy
from flask import flash, g from flask import flash, g
from sqlalchemy import or_ from sqlalchemy import and_, or_
from sqlalchemy.sql import text from sqlalchemy.sql import text
import app.scodoc.sco_utils as scu import app.scodoc.sco_utils as scu
@ -262,7 +262,7 @@ class FormSemestre(db.Model):
les modules mis en place dans ce semestre. les modules mis en place dans ce semestre.
- Formations APC / BUT: les UEs de la formation qui - Formations APC / BUT: les UEs de la formation qui
- ont le même numéro de semestre que ce formsemestre - ont le même numéro de semestre que ce formsemestre
- sont associées à l'un des parcours de la formation (ou à aucun) - sont associées à l'un des parcours de ce formsemestre (ou à aucun)
""" """
if self.formation.get_parcours().APC_SAE: if self.formation.get_parcours().APC_SAE:
@ -287,8 +287,11 @@ class FormSemestre(db.Model):
return sem_ues.order_by(UniteEns.numero) return sem_ues.order_by(UniteEns.numero)
def query_ues_parcours_etud(self, etudid: int) -> flask_sqlalchemy.BaseQuery: def query_ues_parcours_etud(self, etudid: int) -> flask_sqlalchemy.BaseQuery:
"""UE que suit l'étudiant dans ce semestre BUT """XXX inutilisé à part pour un test unitaire => supprimer ?
UEs que suit l'étudiant dans ce semestre BUT
en fonction du parcours dans lequel il est inscrit. en fonction du parcours dans lequel il est inscrit.
Si l'étudiant n'est inscrit à aucun parcours,
renvoie uniquement les UEs de tronc commun (sans parcours).
Si voulez les UE d'un parcours, il est plus efficace de passer par Si voulez les UE d'un parcours, il est plus efficace de passer par
`formation.query_ues_parcour(parcour)`. `formation.query_ues_parcour(parcour)`.
@ -299,7 +302,13 @@ class FormSemestre(db.Model):
UniteEns.niveau_competence_id == ApcNiveau.id, UniteEns.niveau_competence_id == ApcNiveau.id,
ApcParcoursNiveauCompetence.competence_id == ApcNiveau.competence_id, ApcParcoursNiveauCompetence.competence_id == ApcNiveau.competence_id,
ApcParcoursNiveauCompetence.annee_parcours_id == ApcAnneeParcours.id, ApcParcoursNiveauCompetence.annee_parcours_id == ApcAnneeParcours.id,
ApcAnneeParcours.parcours_id == FormSemestreInscription.parcour_id, or_(
ApcAnneeParcours.parcours_id == FormSemestreInscription.parcour_id,
and_(
FormSemestreInscription.parcour_id.is_(None),
UniteEns.parcour_id.is_(None),
),
),
) )
@cached_property @cached_property

View File

@ -0,0 +1,40 @@
"""ApcValidationAnnee: modifie contrainte
Revision ID: 3c12f5850cff
Revises: f95656fdd3ef
Create Date: 2022-12-19 23:12:29.382528
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = "3c12f5850cff"
down_revision = "f95656fdd3ef"
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(
"apc_validation_annee_etudid_annee_scolaire_key",
"apc_validation_annee",
type_="unique",
)
op.create_unique_constraint(
None, "apc_validation_annee", ["etudid", "annee_scolaire", "ordre"]
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint(None, "apc_validation_annee", type_="unique")
op.create_unique_constraint(
"apc_validation_annee_etudid_annee_scolaire_key",
"apc_validation_annee",
["etudid", "annee_scolaire"],
)
# ### end Alembic commands ###

4
pytest.ini Normal file
View File

@ -0,0 +1,4 @@
[pytest]
markers =
slow: marks tests as slow (deselect with '-m "not slow"')
lemans

View File

@ -0,0 +1,680 @@
<?xml version="1.0" encoding="utf-8"?>
<formation id="19" dept_id="3" titre="BUT Génie Mécanique et Productique V2022" version="2" type_parcours="700" acronyme="BUT GMP" titre_officiel="Bachelor Universitaire Technologique : Génie Mécanique et Productique" formation_code="FCOD1" formation_id="19" refcomp_version_orebut="2021-12-11 00:00:00" refcomp_specialite="GMP" refcomp_type_titre="B.U.T.">
<ue acronyme="UE1.1-C1" numero="0" titre="SPECIFIER" type="0" ue_code="UE1" ects="8.0" is_external="0" code_apogee="431U101" coefficient="15.0" semestre_idx="1" color="#b80004" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Déterminer le besoin dun client dans un cas simple" apc_niveau_annee="BUT1" apc_niveau_ordre="1" reference="179">
<matiere titre="SAE1-1 : Analyse de produit grand public" numero="1"/>
<matiere titre="R1.1 Spécifier" numero="2">
<module titre="Science des matériaux" abbrev="SDM" code="R1.02" heures_cours="6.0" heures_td="8.0" heures_tp="0.0" coefficient="2.0" ects="" semestre_id="1" numero="103" code_apogee="431R116" module_type="2">
<coefficients ue_reference="179" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Electricité - Automatisme" abbrev="Elec-Auto-Info" code="R1.08" heures_cours="6.0" heures_td="14.0" heures_tp="8.0" coefficient="2.0" ects="" semestre_id="1" numero="110" code_apogee="431R122" module_type="2">
<coefficients ue_reference="179" coef="1.5"/>
<coefficients ue_reference="181" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Analyse de produits grand public" abbrev="SAE analyse produits" code="SAE1.1" heures_cours="1.0" heures_td="16.0" heures_tp="4.0" coefficient="6.0" ects="" semestre_id="1" numero="141" code_apogee="431S101" module_type="3">
<coefficients ue_reference="179" coef="7.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE1.1" abbrev="Malus UE1.1" code="Malus UE1.1" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="1" numero="144" code_apogee="431MAL11" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE1.2-C2" numero="1" titre="DETERMINER" type="0" ue_code="UE1.2" ects="9.0" is_external="0" code_apogee="431U102" coefficient="23.0" semestre_idx="1" color="#f97b3d" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Proposer des solutions dans un cas simple" apc_niveau_annee="BUT1" apc_niveau_ordre="1" reference="181">
<matiere titre="SAE1-2 : Modification d&amp;apos;un système mécanique" numero="1"/>
<matiere titre="R1.2 : Déterminer" numero="2">
<module titre="Mécanique" abbrev="Méca" code="R1.01" heures_cours="8.0" heures_td="20.0" heures_tp="0.0" coefficient="4.0" ects="" semestre_id="1" numero="101" code_apogee="431R101" module_type="2">
<coefficients ue_reference="181" coef="3.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Maths appliquées et outils scientifiques" abbrev="Maths" code="R1.03" heures_cours="1.0" heures_td="10.0" heures_tp="0.0" coefficient="1.0" ects="" semestre_id="1" numero="104" code_apogee="431R117" module_type="2">
<coefficients ue_reference="179" coef="2.0"/>
<coefficients ue_reference="181" coef="4.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Outils pour lingénierie" abbrev="Ingénierie" code="R1.05" heures_cours="0.5" heures_td="3.0" heures_tp="10.0" coefficient="2.0" ects="" semestre_id="1" numero="106" code_apogee="431R119" module_type="2">
<coefficients ue_reference="181" coef="2.0"/>
<coefficients ue_reference="183" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Modification d'un système mécanique" abbrev="SAE modification d'un système" code="SAE1.2" heures_cours="0.0" heures_td="22.0" heures_tp="0.0" coefficient="10.0" ects="" semestre_id="1" numero="142" code_apogee="431S102" module_type="3">
<coefficients ue_reference="181" coef="8.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE1.2" abbrev="Malus UE1.2" code="Malus UE1.2" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="1" numero="162" code_apogee="431MAL12" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE1.3-C3" numero="2" titre="CONCRETISER" type="0" ue_code="UE1.3-C3" ects="8.0" is_external="0" code_apogee="431U103" coefficient="22.0" semestre_idx="1" color="#feb40b" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Concrétiser une solution simple " apc_niveau_annee="BUT1" apc_niveau_ordre="1" reference="183">
<matiere titre="SAE1-3 : De la maquette numérique au prototype physique" numero="1"/>
<matiere titre="R1.3 : Concrétiser" numero="2">
<module titre="Ingénierie de construction mécanique" abbrev="Construction mécanique" code="R1.04" heures_cours="2.0" heures_td="6.0" heures_tp="11.0" coefficient="3.0" ects="" semestre_id="1" numero="105" code_apogee="431R118" module_type="2">
<coefficients ue_reference="179" coef="1.5"/>
<coefficients ue_reference="183" coef="2.5"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Production - Méthodes" abbrev="Production - Méthodes" code="R1.06" heures_cours="0.0" heures_td="8.0" heures_tp="12.0" coefficient="2.0" ects="" semestre_id="1" numero="107" code_apogee="431R120" module_type="2">
<coefficients ue_reference="179" coef="1.0"/>
<coefficients ue_reference="183" coef="5.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Métrologie" abbrev="Métrologie" code="R1.07" heures_cours="0.0" heures_td="6.0" heures_tp="10.0" coefficient="2.0" ects="" semestre_id="1" numero="108" code_apogee="431R121" module_type="2">
<coefficients ue_reference="183" coef="1.5"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="De la maquette numérique au prototype physique" abbrev="SAE maquette numérique" code="SAE1.3" heures_cours="0.0" heures_td="27.0" heures_tp="8.0" coefficient="10.0" ects="" semestre_id="1" numero="143" code_apogee="431S103" module_type="3">
<coefficients ue_reference="183" coef="7.0"/>
</module>
<module titre="Malus UE1.3" abbrev="Malus UE1.3" code="Malus UE1.3" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="1" numero="163" code_apogee="431MAL13" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE1.4-C4" numero="3" titre="GERER" type="0" ue_code="UE1.4-C4" ects="5.0" is_external="0" code_apogee="431U104" coefficient="15.0" semestre_idx="1" color="#80cb3f" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Déterminer les sources dinformation en entreprise" apc_niveau_annee="BUT1" apc_niveau_ordre="1" reference="185">
<matiere titre="SAE1-4 : Organisation structurelle de l&amp;apos;entreprise" numero="1"/>
<matiere titre="R1.4 : Piloter" numero="2">
<module titre="Expression - Communication" abbrev="Expression" code="R1.09" heures_cours="0.0" heures_td="5.0" heures_tp="2.0" coefficient="1.0" ects="" semestre_id="1" numero="113" code_apogee="431R123" module_type="2">
<coefficients ue_reference="179" coef="1.0"/>
<coefficients ue_reference="185" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Langues" abbrev="Anglais" code="R1.10" heures_cours="0.0" heures_td="4.0" heures_tp="2.0" coefficient="1.0" ects="" semestre_id="1" numero="114" code_apogee="431R124" module_type="2">
<coefficients ue_reference="179" coef="1.0"/>
<coefficients ue_reference="185" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Projet personnel et professionnel" abbrev="P.P.P." code="R1.11" heures_cours="1.0" heures_td="12.0" heures_tp="2.0" coefficient="3.0" ects="" semestre_id="1" numero="115" code_apogee="431R125" module_type="2">
<coefficients ue_reference="185" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Organisation structurelle de l'entreprise" abbrev="SAE entreprise" code="SAE1.4" heures_cours="1.0" heures_td="14.0" heures_tp="0.0" coefficient="6.0" ects="" semestre_id="1" numero="214" code_apogee="431S104" module_type="3">
<coefficients ue_reference="185" coef="4.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE1.4" abbrev="Malus UE1.4" code="Malus UE1.4" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="1" numero="265" code_apogee="431MAL14" module_type="1"/>
</matiere>
</ue>
<ue acronyme="Bonus S1" numero="4" titre="BONUS SPORT Semestre 1" type="1" ue_code="401EN001" ects="0.0" is_external="0" code_apogee="401EN001" coefficient="0.0" semestre_idx="1" color="#05162e" coef_rcue="1.0" parcour_id="" reference="187">
<matiere titre="BONUS SPORT Semestre 1" numero="1">
<module titre="Sport S1" abbrev="Sport" code="Bonus S1" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="1" numero="255" code_apogee="431BON02" module_type="0"/>
</matiere>
</ue>
<ue acronyme="UE2.1-C1" numero="5" titre="SPECIFIER" type="0" ue_code="UCOD77" ects="6.0" is_external="0" code_apogee="432U201" coefficient="14.0" semestre_idx="2" color="#b80004" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Déterminer le besoin dun client dans un cas simple" apc_niveau_annee="BUT1" apc_niveau_ordre="1" reference="180">
<matiere titre="SPECIFIER" numero="1">
<module titre="Mécanique" abbrev="Méca" code="R2.01" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="201" code_apogee="432R201" module_type="2">
<coefficients ue_reference="182" coef="3.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Dimensionnement des Structures" abbrev="DDS" code="R2.02" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="202" code_apogee="432R202" module_type="2">
<coefficients ue_reference="182" coef="3.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Sciences des matériaux" abbrev="SDM" code="R2.03" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="203" code_apogee="432R203" module_type="2">
<coefficients ue_reference="180" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Outils pour ingénierie" abbrev="Cotation" code="R2.06" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="206" code_apogee="432R206" module_type="2">
<coefficients ue_reference="180" coef="1.0"/>
<coefficients ue_reference="184" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Production Méthodes" abbrev="Production méthodes" code="R2.07" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="207" code_apogee="432R207" module_type="2">
<coefficients ue_reference="180" coef="3.0"/>
<coefficients ue_reference="184" coef="4.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Spécification des processus élaboration d'une pièce" abbrev="" code="SAE2.01" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="241" code_apogee="432S201" module_type="3">
<coefficients ue_reference="180" coef="5.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE2.1" abbrev="Malus UE2.1" code="Malus UE2.1" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="285" code_apogee="432MAL21" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE2.2-C2" numero="6" titre="DETERMINER" type="0" ue_code="UCOD7" ects="11.0" is_external="0" code_apogee="432U202" coefficient="24.0" semestre_idx="2" color="#f97b3d" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Proposer des solutions dans un cas simple" apc_niveau_annee="BUT1" apc_niveau_ordre="1" reference="182">
<matiere titre="DETERMINER" numero="1">
<module titre="Auto-Elec-Info" abbrev="Auto" code="R2.10" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="211" code_apogee="432R216" module_type="2">
<coefficients ue_reference="182" coef="3.0"/>
<coefficients ue_reference="186" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Projet Personnel et professionnel" abbrev="PPP" code="R2.13" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="215" code_apogee="432R219" module_type="2">
<coefficients ue_reference="182" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Implantation ilôt robotisé de production" abbrev="" code="SAE2.02" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="242" code_apogee="432S202" module_type="3">
<coefficients ue_reference="182" coef="4.0"/>
</module>
<module titre="Conception pièce de sécurité" abbrev="" code="SAE2.05" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="245" code_apogee="432S205" module_type="3">
<coefficients ue_reference="182" coef="4.0"/>
<coefficients ue_reference="184" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE2.2" abbrev="Malus UE2.2" code="Malus UE2.2" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="295" code_apogee="432MAL22" module_type="1"/>
<module titre="" abbrev="" code="S2.Portfolio" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="775" code_apogee="432P201" module_type="3">
<coefficients ue_reference="180" coef="1.0"/>
<coefficients ue_reference="182" coef="2.0"/>
<coefficients ue_reference="184" coef="2.0"/>
<coefficients ue_reference="186" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
</matiere>
</ue>
<ue acronyme="UE2.3-C3" numero="7" titre="CONCRETISER" type="0" ue_code="UCOD8" ects="8.0" is_external="0" code_apogee="432U203" coefficient="23.0" semestre_idx="2" color="#feb40b" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Concrétiser une solution simple " apc_niveau_annee="BUT1" apc_niveau_ordre="1" reference="184">
<matiere titre="CONCRETISER" numero="1">
<module titre="Mathématiques appliqués et outils scientifiques" abbrev="Math" code="R2.04" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="204" code_apogee="432R204" module_type="2">
<coefficients ue_reference="182" coef="1.0"/>
<coefficients ue_reference="184" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Ingénierie de la construction mécanique" abbrev="Construction" code="R2.05" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="205" code_apogee="432R205" module_type="2">
<coefficients ue_reference="182" coef="2.0"/>
<coefficients ue_reference="184" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Métrologie" abbrev="Métro" code="R2.08" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="208" code_apogee="432R208" module_type="2">
<coefficients ue_reference="184" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Fabrication pièce unitaire" abbrev="" code="SAE2.03" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="243" code_apogee="432S203" module_type="3">
<coefficients ue_reference="184" coef="4.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE2.3" abbrev="Malus UE2.3" code="Malus UE2.3" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="305" code_apogee="432MAL23" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE2.4-C4" numero="8" titre="GERER" type="0" ue_code="UCOD9" ects="5.0" is_external="0" code_apogee="432U204" coefficient="14.0" semestre_idx="2" color="#80cb3f" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Déterminer les sources dinformation en entreprise" apc_niveau_annee="BUT1" apc_niveau_ordre="1" reference="186">
<matiere titre="GERER" numero="1">
<module titre="Organisation et pilotage industriel" abbrev="O.P.I." code="R2.09" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="209" code_apogee="432R209" module_type="2">
<coefficients ue_reference="182" coef="1.0"/>
<coefficients ue_reference="186" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Expression - Communication" abbrev="Expression" code="R2.11" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="213" code_apogee="432R217" module_type="2">
<coefficients ue_reference="180" coef="1.0"/>
<coefficients ue_reference="186" coef="1.5"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Langues" abbrev="Anglais" code="R2.12" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="214" code_apogee="432R218" module_type="2">
<coefficients ue_reference="180" coef="1.0"/>
<coefficients ue_reference="186" coef="1.5"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Pilotage production stabilisée" abbrev="" code="SAE2.04" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="244" code_apogee="432S204" module_type="3">
<coefficients ue_reference="186" coef="4.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE2.4" abbrev="Malus UE2.4" code="Malus UE2.4" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="315" code_apogee="432MAL24" module_type="1"/>
</matiere>
</ue>
<ue acronyme="Bonus S2" numero="9" titre="BONUS SPORT Semestre 2" type="1" ue_code="402EN001" ects="0.0" is_external="0" code_apogee="402EN001" coefficient="0.0" semestre_idx="2" color="#05162e" coef_rcue="1.0" parcour_id="" reference="188">
<matiere titre="BONUS SPORT Semestre 2" numero="1">
<module titre="Sport S2" abbrev="Sport" code="Bonus S2" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="2" numero="275" code_apogee="432BON02" module_type="0"/>
</matiere>
</ue>
<ue acronyme="UE3.1-C1" numero="10" titre="Spécifier" type="0" ue_code="UE3.1" ects="4.0" is_external="0" code_apogee="433U301" coefficient="0.0" semestre_idx="3" color="#b80004" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Déterminer le besoin dun client dans un cas industriel en collaboration" apc_niveau_annee="BUT2" apc_niveau_ordre="2" reference="189">
<matiere titre="Spécifier" numero="1">
<module titre="Science des matériaux" abbrev="SDM" code="R3.03" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="345" code_apogee="433R303" module_type="2">
<coefficients ue_reference="189" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Langues" abbrev="Anglais" code="R3.11" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="425" code_apogee="433R311" module_type="2">
<coefficients ue_reference="189" coef="1.0"/>
<coefficients ue_reference="190" coef="0.5"/>
<coefficients ue_reference="194" coef="0.5"/>
<coefficients ue_reference="201" coef="0.5"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE3.1" abbrev="Malus UE3.1" code="Malus UE3.1" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="455" code_apogee="433MAL31" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE3.2-C2" numero="11" titre="Déterminer" type="0" ue_code="UE3.2" ects="8.0" is_external="0" code_apogee="433U302" coefficient="0.0" semestre_idx="3" color="#f97b3d" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Proposer des solutions dans un cas complexe" apc_niveau_annee="BUT2" apc_niveau_ordre="2" reference="190">
<matiere titre="Déterminer" numero="1">
<module titre="Mécanique" abbrev="Méca" code="R3.01" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="325" code_apogee="433R301" module_type="2">
<coefficients ue_reference="190" coef="2.0"/>
<coefficients ue_reference="191" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Dimensionnement des structures" abbrev="DDS" code="R3.02" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="335" code_apogee="433R302" module_type="2">
<coefficients ue_reference="190" coef="2.0"/>
<coefficients ue_reference="191" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Ingénierie des systèmes cyberphysiques" abbrev="Auto-Elec-Info" code="R3.09" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="405" code_apogee="433R309" module_type="2">
<coefficients ue_reference="189" coef="1.0"/>
<coefficients ue_reference="190" coef="1.0"/>
<coefficients ue_reference="192" coef="1.0"/>
</module>
<module titre="Expression communication" abbrev="Expression" code="R3.10" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="415" code_apogee="433R310" module_type="2">
<coefficients ue_reference="190" coef="0.5"/>
<coefficients ue_reference="191" coef="0.5"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Répondre à un besoin industriel" abbrev="Besoin industriel" code="S3.01" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="445" code_apogee="433S301" module_type="3">
<coefficients ue_reference="189" coef="5.0"/>
<coefficients ue_reference="190" coef="8.0"/>
<coefficients ue_reference="191" coef="7.0"/>
<coefficients ue_reference="192" coef="5.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE3.2" abbrev="Malus UE3.2" code="Malus UE3.2" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="465" code_apogee="433MAL32" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE3.3-C3" numero="12" titre="Concrétiser" type="0" ue_code="UE3.3" ects="7.0" is_external="0" code_apogee="433U303" coefficient="0.0" semestre_idx="3" color="#feb40b" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Concrétiser une solution complexe en collaboration" apc_niveau_annee="BUT2" apc_niveau_ordre="2" reference="191">
<matiere titre="Concrétiser" numero="1">
<module titre="Mathématiques appliquées" abbrev="Maths" code="R3.04" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="355" code_apogee="433R304" module_type="2">
<coefficients ue_reference="190" coef="1.0"/>
<coefficients ue_reference="192" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Ingénierie de construction mécanique" abbrev="Construction" code="R3.05" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="365" code_apogee="433R305" module_type="2">
<coefficients ue_reference="190" coef="1.0"/>
<coefficients ue_reference="191" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Production-Méthodes" abbrev="Production-Méthodes" code="R3.06" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="375" code_apogee="433R306" module_type="2">
<coefficients ue_reference="190" coef="2.0"/>
<coefficients ue_reference="191" coef="2.5"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Organisation et pilotage industriel" abbrev="O.P.I." code="R3.08" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="395" code_apogee="433R308" module_type="2">
<coefficients ue_reference="191" coef="1.0"/>
<coefficients ue_reference="192" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE3.3" abbrev="Malus UE3.3" code="Malus UE3.3" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="475" code_apogee="433MAL33" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE3.4-C4" numero="13" titre="Gérer" type="0" ue_code="UE3.4" ects="5.0" is_external="0" code_apogee="433U304" coefficient="0.0" semestre_idx="3" color="#80cb3f" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Utiliser les outils permettant dévaluer les performances" apc_niveau_annee="BUT2" apc_niveau_ordre="2" reference="192">
<matiere titre="Gérer" numero="1">
<module titre="Métrologie" abbrev="Métrologie" code="R3.07" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="385" code_apogee="433R307" module_type="2">
<coefficients ue_reference="192" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE3.4" abbrev="Malus UE3.4" code="Malus UE3.4" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="485" code_apogee="433MAL34" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE3.5.IPI" numero="14" titre="Parcours" type="0" ue_code="UE3.5" ects="6.0" is_external="0" code_apogee="433U305" coefficient="0.0" semestre_idx="3" color="#548687" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Participer au pilotage industriel" apc_niveau_annee="BUT2" apc_niveau_ordre="1" reference="194">
<matiere titre="Parcours" numero="1">
<module titre="Projet personnel et professionnel" abbrev="P.P.P." code="R3.12" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="435" code_apogee="433R312" module_type="2">
<coefficients ue_reference="194" coef="1.0"/>
<coefficients ue_reference="201" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE3.5" abbrev="Malus UE3.5" code="Malus UE3.5" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="495" code_apogee="433MAL35" module_type="1"/>
<module titre="Innovation" abbrev="Innovation" code="R3.IPI.13" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="695" code_apogee="433R314" module_type="2">
<coefficients ue_reference="194" coef="4.5"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
</module>
<module titre="Améliorer" abbrev="Améliorer" code="S3.IPI.02" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="715" code_apogee="433S304" module_type="3">
<coefficients ue_reference="194" coef="6.0"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
</module>
</matiere>
</ue>
<ue acronyme="UE3.5.SNRV" numero="15" titre="Parcours" type="0" ue_code="UE3.5.SNRV" ects="6.0" is_external="0" code_apogee="433U305" coefficient="0.0" semestre_idx="3" color="#444054" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Virtualiser dans un contexte monodisciplinaire" apc_niveau_annee="BUT2" apc_niveau_ordre="1" reference="201">
<matiere titre="Parcours SNRV" numero="1">
<module titre="Simulation" abbrev="Simulation" code="R3.SNRV.13" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="705" code_apogee="433R313" module_type="2">
<coefficients ue_reference="201" coef="4.5"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
</module>
<module titre="Exploiter" abbrev="Exploiter" code="S3.SNRV.02" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="725" code_apogee="433S302" module_type="3">
<coefficients ue_reference="201" coef="6.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
</module>
</matiere>
</ue>
<ue acronyme="Bonus S3" numero="16" titre="BONUS SPORT semestre 3" type="1" ue_code="403EN001" ects="0.0" is_external="0" code_apogee="403EN001" coefficient="0.0" semestre_idx="3" color="#05162e" coef_rcue="1.0" parcour_id="" reference="193">
<matiere titre="BONUS SPORT semestre 3" numero="1">
<module titre="Sport S3" abbrev="Sport S3" code="Bonus S3" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="3" numero="675" code_apogee="433BON02" module_type="0"/>
</matiere>
</ue>
<ue acronyme="UE4.1-C1" numero="17" titre="Spécifier" type="0" ue_code="UCOD42" ects="4.0" is_external="0" code_apogee="434U401" coefficient="0.0" semestre_idx="4" color="#b80004" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Déterminer le besoin dun client dans un cas industriel en collaboration" apc_niveau_annee="BUT2" apc_niveau_ordre="2" reference="195">
<matiere titre="Spécifier" numero="1">
<module titre="Mécanique" abbrev="Mécanique" code="R4.01" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="505" code_apogee="434R401" module_type="2">
<coefficients ue_reference="196" coef="3.0"/>
<coefficients ue_reference="197" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Dimensionnement des structures" abbrev="D.D.S." code="R4.02" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="515" code_apogee="434R402" module_type="2">
<coefficients ue_reference="196" coef="2.0"/>
<coefficients ue_reference="197" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Science des matériaux" abbrev="S.D.M." code="R4.03" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="525" code_apogee="434R403" module_type="2">
<coefficients ue_reference="196" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Mathématiques appliquées" abbrev="Maths" code="R4.04" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="535" code_apogee="434R404" module_type="2">
<coefficients ue_reference="198" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Ingénierie des constructions mécaniques" abbrev="Contruction" code="R4.05" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="545" code_apogee="434R405" module_type="2">
<coefficients ue_reference="196" coef="1.0"/>
<coefficients ue_reference="197" coef="3.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Production-Méthodes" abbrev="Production-Méthodes" code="R4.06" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="555" code_apogee="434R406" module_type="2">
<coefficients ue_reference="195" coef="3.0"/>
<coefficients ue_reference="198" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Organisation et pilotage industriel" abbrev="O.P.I." code="R4.07" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="565" code_apogee="434R407" module_type="2">
<coefficients ue_reference="196" coef="1.0"/>
<coefficients ue_reference="198" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Ingénierie des système Cyberphysiques" abbrev="Auto-Elec-Info" code="R4.08" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="575" code_apogee="434R408" module_type="2">
<coefficients ue_reference="196" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Expression communication" abbrev="Expression" code="R4.09" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="585" code_apogee="434R409" module_type="2">
<coefficients ue_reference="195" coef="1.0"/>
<coefficients ue_reference="198" coef="1.0"/>
</module>
<module titre="Langues" abbrev="Anglais" code="R4.10" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="595" code_apogee="434R410" module_type="2">
<coefficients ue_reference="197" coef="1.0"/>
<coefficients ue_reference="198" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Projet personnel professionnel" abbrev="P.P.P." code="R4.11" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="605" code_apogee="434R411" module_type="2">
<coefficients ue_reference="195" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Répondre à un besoin industriel" abbrev="Besoin industriel" code="S4.01" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="615" code_apogee="434S401" module_type="3">
<coefficients ue_reference="196" coef="3.0"/>
<coefficients ue_reference="197" coef="4.0"/>
<coefficients ue_reference="195" coef="2.0"/>
<coefficients ue_reference="198" coef="3.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
<module titre="Malus UE4.1" abbrev="Malus UE4.1" code="Malus UE4.1" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="625" code_apogee="434MAL41" module_type="1"/>
<module titre="" abbrev="" code="S4.Portfolio" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="795" code_apogee="434S404" module_type="3">
<coefficients ue_reference="195" coef="1.0"/>
<coefficients ue_reference="196" coef="2.0"/>
<coefficients ue_reference="197" coef="1.0"/>
<coefficients ue_reference="198" coef="1.0"/>
<coefficients ue_reference="199" coef="1.0"/>
<coefficients ue_reference="202" coef="1.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
</matiere>
</ue>
<ue acronyme="UE4.2-C2" numero="18" titre="Déterminer" type="0" ue_code="UCOD43" ects="8.0" is_external="0" code_apogee="434U402" coefficient="0.0" semestre_idx="4" color="#f97b3d" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Proposer des solutions dans un cas complexe" apc_niveau_annee="BUT2" apc_niveau_ordre="2" reference="196">
<matiere titre="Déterminer" numero="1">
<module titre="Malus UE4.2" abbrev="Malus UE4.2" code="Malus UE4.2" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="635" code_apogee="434MAL42" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE4.3-C3" numero="19" titre="Concrétiser" type="0" ue_code="UCOD44" ects="8.0" is_external="0" code_apogee="434U403" coefficient="0.0" semestre_idx="4" color="#feb40b" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Concrétiser une solution complexe en collaboration" apc_niveau_annee="BUT2" apc_niveau_ordre="2" reference="197">
<matiere titre="Concrétiser" numero="1">
<module titre="Malus UE4.3" abbrev="Malus UE4.3" code="Malus UE4.3" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="645" code_apogee="434MAL43" module_type="1"/>
<module titre="" abbrev="" code="S4.Stage" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="785" code_apogee="434S403" module_type="3">
<coefficients ue_reference="199" coef="2.0"/>
<coefficients ue_reference="198" coef="3.0"/>
<coefficients ue_reference="197" coef="4.0"/>
<coefficients ue_reference="196" coef="4.0"/>
<coefficients ue_reference="195" coef="3.0"/>
<coefficients ue_reference="202" coef="2.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
<parcours code="MPI" numero="0" libelle="Management de process industriel"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
<parcours code="CPD" numero="0" libelle="Conception et production durables"/>
<parcours code="CAI" numero="0" libelle="Chargé daffaires industrielles"/>
</module>
</matiere>
</ue>
<ue acronyme="UE4.4-C4" numero="20" titre="Gérer" type="0" ue_code="UCOD45" ects="5.0" is_external="0" code_apogee="434U404" coefficient="0.0" semestre_idx="4" color="#80cb3f" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Utiliser les outils permettant dévaluer les performances" apc_niveau_annee="BUT2" apc_niveau_ordre="2" reference="198">
<matiere titre="Gérer" numero="1">
<module titre="Malus UE4.4" abbrev="Malus UE4.4" code="Malus UE4.4" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="655" code_apogee="434MAL44" module_type="1"/>
</matiere>
</ue>
<ue acronyme="UE4.5.II" numero="21" titre="Parcours" type="0" ue_code="UCOD46" ects="5.0" is_external="0" code_apogee="434U405" coefficient="0.0" semestre_idx="4" color="#05162e" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Expérimenter la démarche dinnovation" apc_niveau_annee="BUT2" apc_niveau_ordre="1" reference="199">
<matiere titre="Parcours" numero="1">
<module titre="Malus UE4.5" abbrev="Malus UE4.5" code="Malus UE4.5" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="665" code_apogee="434MAL45" module_type="1"/>
<module titre="Innovation" abbrev="Innovation" code="R4.II.12" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="735" code_apogee="434R412" module_type="2">
<coefficients ue_reference="199" coef="6.0"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
</module>
<module titre="Utiliser des concepts" abbrev="Utiliser des concepts" code="S4.II.02" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="755" code_apogee="434S402" module_type="3">
<coefficients ue_reference="199" coef="3.0"/>
<parcours code="II" numero="0" libelle="Innovation pour l'industrie"/>
</module>
</matiere>
</ue>
<ue acronyme="UE4.5.SNRV" numero="22" titre="Parcours" type="0" ue_code="UE5.SNRV" ects="5.0" is_external="0" code_apogee="434U405" coefficient="0.0" semestre_idx="4" color="#444054" coef_rcue="1.0" parcour_id="" apc_niveau_libelle="Virtualiser dans un contexte monodisciplinaire" apc_niveau_annee="BUT2" apc_niveau_ordre="1" reference="202">
<matiere titre="Parcours" numero="1">
<module titre="Simulation" abbrev="Simulation" code="R4.SNRV.12" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="745" code_apogee="434R412" module_type="2">
<coefficients ue_reference="202" coef="6.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
</module>
<module titre="Utiliser la réalité virtuelle" abbrev="Utiliser la réalité virtuelle" code="S4.SNRV.02" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="765" code_apogee="434S403" module_type="3">
<coefficients ue_reference="202" coef="3.0"/>
<parcours code="SNRV" numero="0" libelle="Simulation numérique et réalité virtuelle"/>
</module>
</matiere>
</ue>
<ue acronyme="Bonus S4" numero="23" titre="BONUS SPORT S4" type="1" ue_code="404EN001" ects="0.0" is_external="0" code_apogee="404EN001" coefficient="0.0" semestre_idx="4" color="#548687" coef_rcue="1.0" parcour_id="" reference="200">
<matiere titre="BONUS SPORT S4" numero="1">
<module titre="Sport" abbrev="Sport" code="Bonus S4" heures_cours="0.0" heures_td="0.0" heures_tp="0.0" coefficient="0.0" ects="" semestre_id="4" numero="685" code_apogee="434BON02" module_type="0"/>
</matiere>
</ue>
</formation>

View File

@ -0,0 +1,421 @@
# Tests unitaires jury BUT - IUTLM GMP
# Essais avec un BUT GMP, 4 UE + 1 bonus et deux parcours sur S3 S4
# Contrib Martin M.
ReferentielCompetences:
filename: but-GMP-05012022-081650.xml
specialite: GMP
Formation:
filename: scodoc_formation_BUT_GMP_lm.xml
# Association des UE aux compétences:
ues:
# S1 : Tronc commun GMP
'UE1.1-C1':
annee: BUT1
competence: Spécifier
'UE1.2-C2':
annee: BUT1
competence: Développer
'UE1.3-C3':
annee: BUT1
competence: Réaliser
'UE1.4-C4':
annee: BUT1
competence: Exploiter
# S2 : Tronc commun GMP
'UE2.1-C1':
annee: BUT1
competence: Spécifier
'UE2.2-C2':
annee: BUT1
competence: Développer
'UE2.3-C3':
annee: BUT1
competence: Réaliser
'UE2.4-C4':
annee: BUT1
competence: Exploiter
# S3 : Tronc commun GMP
'UE3.1-C1':
annee: BUT2
competence: Spécifier
'UE3.2-C2':
annee: BUT2
competence: Développer
'UE3.3-C3':
annee: BUT2
competence: Réaliser
'UE3.4-C4':
annee: BUT2
competence: Exploiter
# S3 : Parcours II
'UE3.5.IPI':
annee: BUT2
competence: Innover
parcours: II
# S3 : Parcour SNRV
'UE3.5.SNRV':
annee: BUT2
competence: Virtualiser
parcours: SNRV
# S4 : Tronc commun GMP
'UE4.1-C1':
annee: BUT2
competence: Spécifier
'UE4.2-C2':
annee: BUT2
competence: Développer
'UE4.3-C3':
annee: BUT2
competence: Réaliser
'UE4.4-C4':
annee: BUT2
competence: Exploiter
# S4 : Parcours II
'UE4.5.II':
annee: BUT2
competence: Innover
parcours: II
# S4 : Parcour SNRV
'UE4.5.SNRV':
annee: BUT2
competence: Virtualiser
parcours: SNRV
modules_parcours:
# cette section permet d'associer des modules à des parcours
# les codes modules peuvent être des regexp
II: [ .*II.* ]
SNRV: [ .*SNRV.* ]
FormSemestres:
# S1 et S2 :
S1 :
idx: 1
date_debut: 2022-09-01
date_fin: 2023-01-15
S2 :
idx: 2
date_debut: 2023-01-16
date_fin: 2023-06-30
# S3 avec les deux parcours réunis:
S3:
idx: 3
date_debut: 2023-09-01
date_fin: 2024-01-13
codes_parcours: ['II', 'SNRV']
Etudiants:
gmp01:
prenom: etugmp01
civilite: M
formsemestres:
S1:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"SAE1.1": 11.8
"SAE1.2": 14.30
"SAE1.3": 14.45
"SAE1.4": 9.6
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: False
nb_competences: 4
nb_rcue_annee: 0
decisions_ues:
"UE1.1-C1":
codes: [ "ADM", "..." ]
moy_ue: 11.8
"UE1.2-C2":
codes: [ "ADM", "..." ]
moy_ue: 14.30
"UE1.3-C3":
codes: [ "ADM", "..." ]
moy_ue: 14.45
"UE1.4-C4":
codes: [ "AJ", "..." ]
moy_ue: 9.6
S2:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"SAE2.01": 10.08
"SAE2.02": 07.14
"SAE2.03": 10.67
"SAE2.04": 08.55
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: True
nb_competences: 4
nb_rcue_annee: 4
valide_moitie_rcue: True
codes: [ "PASD", "..." ]
decisions_ues:
"UE2.1-C1":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 10.08
"UE2.2-C2":
codes: [ "CMP", "..." ]
code_valide: CMP
moy_ue: 07.14
"UE2.3-C3":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 10.67
"UE2.4-C4":
codes: [ "AJ", "..." ]
code_valide: AJ
moy_ue: 08.55
decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE (donc du S1)
"UE1.1-C1":
code_valide: ADM
rcue:
moy_rcue: 10.94
est_compensable: False
"UE1.2-C2":
code_valide: CMP
rcue:
moy_rcue: 10.72
est_compensable: True
"UE1.3-C3":
code_valide: ADM
rcue:
moy_rcue: 12.56
est_compensable: False
"UE1.4-C4":
code_valide: AJ
rcue:
moy_rcue: 9.075
est_compensable: False
S3:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"S3.01": 9
"S3.SNRV.02": 12.5
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: False
nb_competences: 4 # et non 5 car pas inscrit à un parcours
nb_rcue_annee: 0
decisions_ues:
"UE3.1-C1":
codes: [ "AJ", "..." ]
code_valide: AJ
moy_ue: 9
"UE3.2-C2":
codes: [ "AJ", "..." ]
code_valide: AJ
moy_ue: 9
"UE3.3-C3":
codes: [ "AJ", "..." ]
code_valide: AJ
moy_ue: 9
"UE3.4-C4":
codes: [ "AJ", "..." ]
code_valide: AJ
moy_ue: 9
# "UE3.5.SNRV":
# codes: [ "ADM", "..." ]
# code_valide: ADM
# moy_ue: 12.5
gmp02:
prenom: etugmp02
civilite: F
formsemestres:
S1:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"SAE1.1": 14.5
"SAE1.2": 13.2
"SAE1.3": 9.5
"SAE1.4": 8.7
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: False
nb_competences: 4
nb_rcue_annee: 0
decisions_ues:
"UE1.1-C1":
codes: [ "ADM", "..." ]
moy_ue: 14.5
"UE1.2-C2":
codes: [ "ADM", "..." ]
moy_ue: 13.2
"UE1.3-C3":
codes: [ "AJ", "..." ]
moy_ue: 9.5
"UE1.4-C4":
codes: [ "AJ", "..." ]
moy_ue: 8.7
S2:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"SAE2.01": 14.4
"SAE2.02": 17.8
"SAE2.03": 11.2
"SAE2.04": 9.2
attendu: # les codes jury que l'on doit vérifier
deca:
#passage_de_droit: true
nb_competences: 4
nb_rcue_annee: 4
#res_pair: None
valide_moitie_rcue: true
codes: [ "PASD", "..." ]
decisions_ues:
"UE2.1-C1":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 14.4
"UE2.2-C2":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 17.8
"UE2.3-C3":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 11.2
"UE2.4-C4":
codes: [ "AJ", "..." ]
code_valide: AJ
moy_ue: 9.2
decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE
"UE1.1-C1":
code_valide: ADM
rcue:
moy_rcue: 14.45
est_compensable: False
"UE1.2-C2":
code_valide: ADM
rcue:
moy_rcue: 15.5
est_compensable: False
"UE1.3-C3":
code_valide: CMP
rcue:
moy_rcue: 10.35
est_compensable: True
"UE1.4-C4":
code_valide: AJ
rcue:
moy_rcue: 8.95
est_compensable: False
S3:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"S3.01": 12
"S3.SNRV.02": 14
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: False
nb_competences: 4 # et non 5 car pas inscrit à un parcours
nb_rcue_annee: 0
decisions_ues:
"UE3.1-C1":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 12
"UE3.2-C2":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 12
"UE3.3-C3":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 12
"UE3.4-C4":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 12
# "UE3.5.SNRV":
# codes: [ "ADM", "..." ]
# code_valide: ADM
# moy_ue: 14
gmp03:
prenom: etugmp03
civilite: X
formsemestres:
S1:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"SAE1.1": 12.7
"SAE1.2": 8.4
"SAE1.3": 10.1
"SAE1.4": 9.8
attendu: # les codes jury que l'on doit vérifier
deca:
passage_de_droit: False
nb_competences: 4
nb_rcue_annee: 0
decisions_ues:
"UE1.1-C1":
codes: [ "ADM", "..." ]
moy_ue: 12.7
"UE1.2-C2":
codes: [ "AJ", "..." ]
moy_ue: 8.4
"UE1.3-C3":
codes: [ "ADM", "..." ]
moy_ue: 10.1
"UE1.4-C4":
codes: [ "AJ", "..." ]
moy_ue: 9.8
S2:
notes_modules: # on joue avec les SAE seulement car elles sont "diagonales"
"SAE2.01": 10.2
"SAE2.02": 9.6
"SAE2.03": 14.3
"SAE2.04": 8.4
attendu: # les codes jury que l'on doit vérifier
deca:
nb_competences: 4 # et non 5 car pas inscrit à un parcours
nb_rcue_annee: 4
valide_moitie_rcue: false
codes: [ "RED", "..." ]
decisions_ues:
"UE2.1-C1":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 10.2
"UE2.2-C2":
codes: [ "AJ", "..." ]
code_valide: AJ
moy_ue: 9.6
"UE2.3-C3":
codes: [ "ADM", "..." ]
code_valide: ADM
moy_ue: 14.3
"UE2.4-C4":
codes: [ "AJ", "..." ]
code_valide: AJ
moy_ue: 8.4
decisions_rcues: # on repère ici les RCUE par l'acronyme de leur 1ere UE (du S1 donc)
"UE1.1-C1":
code_valide: ADM
rcue:
moy_rcue: 11.45
est_compensable: False
"UE1.2-C2":
code_valide: AJ
rcue:
moy_rcue: 9
est_compensable: False
"UE1.3-C3":
code_valide: ADM
rcue:
moy_rcue: 12.2
est_compensable: False
"UE1.4-C4":
code_valide: AJ
rcue:
moy_rcue: 9.1
est_compensable: False

View File

@ -1,6 +1,7 @@
""" Test jury BUT avec parcours """ Test jury BUT avec parcours
""" """
import pytest
from tests.unit import yaml_setup from tests.unit import yaml_setup
import app import app
@ -18,6 +19,7 @@ from config import TestConfig
DEPT = TestConfig.DEPT_TEST DEPT = TestConfig.DEPT_TEST
@pytest.mark.slow
def test_but_jury_GB(test_client): def test_but_jury_GB(test_client):
"""Tests sur un cursus GB """Tests sur un cursus GB
- construction des semestres et de leurs étudianst à partir du yaml - construction des semestres et de leurs étudianst à partir du yaml
@ -49,6 +51,29 @@ def test_but_jury_GB(test_client):
# _test_but_jury(S1_redoublant, doc) # _test_but_jury(S1_redoublant, doc)
@pytest.mark.slow
@pytest.mark.lemans
def test_but_jury_GMP_lm(test_client):
"""Tests sur un cursus GMP fournit par Le Mans"""
app.set_sco_dept(DEPT)
# Construit la base de test GB une seule fois
# puis lance les tests de jury
doc = yaml_setup.setup_from_yaml("tests/unit/cursus_but_gmp_iutlm.yaml")
formsemestres = FormSemestre.query.order_by(FormSemestre.semestre_id).all()
# Vérifie les deca de tous les semestres:
for formsemestre in formsemestres:
_check_deca(formsemestre)
# Saisie de toutes les décisions de jury
for formsemestre in formsemestres:
formsemestre_validation_auto_but(formsemestre, only_adm=False)
# Vérifie résultats attendus:
for formsemestre in formsemestres:
_test_but_jury(formsemestre, doc)
def _check_deca(formsemestre: FormSemestre, etud: Identite = None): def _check_deca(formsemestre: FormSemestre, etud: Identite = None):
"""vérifie les champs principaux de l'instance de DecisionsProposeesAnnee""" """vérifie les champs principaux de l'instance de DecisionsProposeesAnnee"""
etud = etud or formsemestre.etuds.first() etud = etud or formsemestre.etuds.first()
@ -68,7 +93,9 @@ def _check_deca(formsemestre: FormSemestre, etud: Identite = None):
assert deca.rcues_annee == [] # S1, pas de RCUEs assert deca.rcues_annee == [] # S1, pas de RCUEs
assert deca.inscription_etat == scu.INSCRIT assert deca.inscription_etat == scu.INSCRIT
assert deca.inscription_etat_impair == scu.INSCRIT assert deca.inscription_etat_impair == scu.INSCRIT
assert deca.parcour == formsemestre.parcours[0] # un seul parcours dans ce sem. assert (deca.parcour is None) or (
deca.parcour.id in {p.id for p in formsemestre.parcours}
)
nb_ues = ( nb_ues = (
len(deca.formsemestre_pair.query_ues_parcours_etud(etud.id).all()) len(deca.formsemestre_pair.query_ues_parcours_etud(etud.id).all())

View File

@ -249,7 +249,7 @@ def setup_formsemestres(formation: Formation, doc: str):
"""Création des formsemestres pour tester les parcours BUT""" """Création des formsemestres pour tester les parcours BUT"""
for titre, infos in doc["FormSemestres"].items(): for titre, infos in doc["FormSemestres"].items():
parcours = [] parcours = []
for code_parcour in infos["codes_parcours"]: for code_parcour in infos.get("codes_parcours", []):
parcour = formation.referentiel_competence.parcours.filter_by( parcour = formation.referentiel_competence.parcours.filter_by(
code=code_parcour code=code_parcour
).first() ).first()
@ -274,8 +274,8 @@ def inscrit_les_etudiants(formation: Formation, doc: dict):
etud = Identite.create_etud( etud = Identite.create_etud(
dept_id=g.scodoc_dept_id, dept_id=g.scodoc_dept_id,
nom=nom, nom=nom,
prenom=infos["prenom"], prenom=infos.get("prenom", "prénom"),
civilite=infos["civilite"], civilite=infos.get("civilite", "X"),
) )
db.session.add(etud) db.session.add(etud)
db.session.commit() db.session.commit()
@ -288,14 +288,14 @@ def inscrit_les_etudiants(formation: Formation, doc: dict):
partition_parcours = formsemestre.partitions.filter_by( partition_parcours = formsemestre.partitions.filter_by(
partition_name=scu.PARTITION_PARCOURS partition_name=scu.PARTITION_PARCOURS
).first() ).first()
if partition_parcours is None: if partition_parcours is not None and "parcours" in sem_infos:
group_ids = []
else:
group = partition_parcours.groups.filter_by( group = partition_parcours.groups.filter_by(
group_name=sem_infos["parcours"] group_name=sem_infos["parcours"]
).first() ).first()
assert group is not None # le groupe de parcours doit exister assert group is not None # le groupe de parcours doit exister
group_ids = [group.id] group_ids = [group.id]
else:
group_ids = []
sco_formsemestre_inscriptions.do_formsemestre_inscription_with_modules( sco_formsemestre_inscriptions.do_formsemestre_inscription_with_modules(
formsemestre.id, formsemestre.id,
etud.id, etud.id,
@ -379,7 +379,10 @@ def _check_decisions_rcues(
# Descend dans le RCUE: # Descend dans le RCUE:
if "rcue" in dec_rcue_att: if "rcue" in dec_rcue_att:
if "moy_rcue" in dec_rcue_att["rcue"]: if "moy_rcue" in dec_rcue_att["rcue"]:
assert dec_rcue.rcue.moy_rcue == dec_rcue_att["rcue"]["moy_rcue"] assert (
abs(dec_rcue.rcue.moy_rcue - dec_rcue_att["rcue"]["moy_rcue"])
< scu.NOTES_PRECISION
)
if "est_compensable" in dec_rcue_att["rcue"]: if "est_compensable" in dec_rcue_att["rcue"]:
assert ( assert (
dec_rcue.rcue.est_compensable() dec_rcue.rcue.est_compensable()