forked from ScoDoc/ScoDoc
Fix: cas BUT semestre sans parcours mais UE avec parcours.
This commit is contained in:
parent
730f2e9cb7
commit
af94a2a727
@ -230,7 +230,7 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
|||||||
}
|
}
|
||||||
self.etuds_parcour_id = etuds_parcour_id
|
self.etuds_parcour_id = etuds_parcour_id
|
||||||
ue_ids = [ue.id for ue in self.ues if ue.type != UE_SPORT]
|
ue_ids = [ue.id for ue in self.ues if ue.type != UE_SPORT]
|
||||||
|
ue_ids_set = set(ue_ids)
|
||||||
if self.formsemestre.formation.referentiel_competence is None:
|
if self.formsemestre.formation.referentiel_competence is None:
|
||||||
return pd.DataFrame(
|
return pd.DataFrame(
|
||||||
1.0, index=etuds_parcour_id.keys(), columns=ue_ids, dtype=float
|
1.0, index=etuds_parcour_id.keys(), columns=ue_ids, dtype=float
|
||||||
@ -240,7 +240,10 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
|||||||
np.nan, index=etuds_parcour_id.keys(), columns=ue_ids, dtype=float
|
np.nan, index=etuds_parcour_id.keys(), columns=ue_ids, dtype=float
|
||||||
)
|
)
|
||||||
# Construit pour chaque parcours du référentiel l'ensemble de ses UE
|
# Construit pour chaque parcours du référentiel l'ensemble de ses UE
|
||||||
# (considère aussi le cas des semestres sans parcours: None)
|
# - considère aussi le cas des semestres sans parcours (clé parcour None)
|
||||||
|
# - retire les UEs qui ont un parcours mais qui ne sont pas dans l'un des
|
||||||
|
# parcours du semestre
|
||||||
|
|
||||||
ue_by_parcours = {} # parcours_id : {ue_id:0|1}
|
ue_by_parcours = {} # parcours_id : {ue_id:0|1}
|
||||||
for (
|
for (
|
||||||
parcour
|
parcour
|
||||||
@ -250,6 +253,7 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
|||||||
for ue in self.formsemestre.formation.query_ues_parcour(parcour).filter(
|
for ue in self.formsemestre.formation.query_ues_parcour(parcour).filter(
|
||||||
UniteEns.semestre_idx == self.formsemestre.semestre_id
|
UniteEns.semestre_idx == self.formsemestre.semestre_id
|
||||||
)
|
)
|
||||||
|
if ue.id in ue_ids_set
|
||||||
}
|
}
|
||||||
#
|
#
|
||||||
for etudid in etuds_parcour_id:
|
for etudid in etuds_parcour_id:
|
||||||
|
@ -216,8 +216,8 @@ class Formation(db.Model):
|
|||||||
|
|
||||||
def query_ues_parcour(
|
def query_ues_parcour(
|
||||||
self, parcour: ApcParcours, with_sport: bool = False
|
self, parcour: ApcParcours, with_sport: bool = False
|
||||||
) -> flask_sqlalchemy.BaseQuery:
|
) -> Query:
|
||||||
"""Les UEs (non bonus) d'un parcours de la formation
|
"""Les UEs (sans bonus, sauf si with_sport) d'un parcours de la formation
|
||||||
(déclarée comme faisant partie du parcours ou du tronc commun, sans aucun parcours)
|
(déclarée comme faisant partie du parcours ou du tronc commun, sans aucun parcours)
|
||||||
Si parcour est None, les UE sans parcours.
|
Si parcour est None, les UE sans parcours.
|
||||||
Exemple: pour avoir les UE du semestre 3, faire
|
Exemple: pour avoir les UE du semestre 3, faire
|
||||||
|
@ -15,10 +15,8 @@ from functools import cached_property
|
|||||||
from operator import attrgetter
|
from operator import attrgetter
|
||||||
|
|
||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
from flask_sqlalchemy.query import Query
|
|
||||||
|
|
||||||
from flask import flash, g
|
from flask import flash, g
|
||||||
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
|
||||||
@ -26,10 +24,7 @@ from app import db, log
|
|||||||
from app.auth.models import User
|
from app.auth.models import User
|
||||||
from app.models import APO_CODE_STR_LEN, CODE_STR_LEN, SHORT_STR_LEN
|
from app.models import APO_CODE_STR_LEN, CODE_STR_LEN, SHORT_STR_LEN
|
||||||
from app.models.but_refcomp import (
|
from app.models.but_refcomp import (
|
||||||
ApcAnneeParcours,
|
|
||||||
ApcNiveau,
|
|
||||||
ApcParcours,
|
ApcParcours,
|
||||||
ApcParcoursNiveauCompetence,
|
|
||||||
ApcReferentielCompetences,
|
ApcReferentielCompetences,
|
||||||
parcours_formsemestre,
|
parcours_formsemestre,
|
||||||
)
|
)
|
||||||
@ -298,12 +293,14 @@ class FormSemestre(db.Model):
|
|||||||
"""
|
"""
|
||||||
formation: Formation = self.formation
|
formation: Formation = self.formation
|
||||||
if formation.is_apc():
|
if formation.is_apc():
|
||||||
|
# UEs de tronc commun (sans parcours indiqué)
|
||||||
sem_ues = {
|
sem_ues = {
|
||||||
ue.id: ue
|
ue.id: ue
|
||||||
for ue in formation.query_ues_parcour(
|
for ue in formation.query_ues_parcour(
|
||||||
None, with_sport=with_sport
|
None, with_sport=with_sport
|
||||||
).filter(UniteEns.semestre_idx == self.semestre_id)
|
).filter(UniteEns.semestre_idx == self.semestre_id)
|
||||||
}
|
}
|
||||||
|
# Ajoute les UE de parcours
|
||||||
for parcour in self.parcours:
|
for parcour in self.parcours:
|
||||||
sem_ues.update(
|
sem_ues.update(
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user