diff --git a/app/but/jury_but.py b/app/but/jury_but.py index 4f3fb5c9cab7c0eb80602a10281a67bd5a6ba23d..a12877d92edcf454fccfc6c8f6bbada239c58435 100644 --- a/app/but/jury_but.py +++ b/app/but/jury_but.py @@ -1108,7 +1108,7 @@ def list_ue_parcour_etud( ues = ( formsemestre.formation.query_ues_parcour(parcour) .filter(UniteEns.semestre_idx == formsemestre.semestre_id) - .order_by(UniteEns.numero) + .order_by(UniteEns.numero, UniteEns.acronyme) .all() ) return [ue for ue in ues if (etud.id, ue.id) not in res.dispense_ues] diff --git a/app/comp/jury.py b/app/comp/jury.py index 6e701a54fa3447ce0932b7d0baf568f85baffe5d..899d3ad8a0f8a94e64f38c26e28a120a23e41ba7 100644 --- a/app/comp/jury.py +++ b/app/comp/jury.py @@ -95,7 +95,7 @@ class ValidationsSemestre(ResultatsCache): for decision in ( decisions_jury_q.filter(db.text("ue_id is not NULL")) .join(UniteEns) - .order_by(UniteEns.numero) + .order_by(UniteEns.numero, UniteEns.acronyme) ): if decision.etudid not in decisions_jury_ues: decisions_jury_ues[decision.etudid] = {} diff --git a/app/models/formsemestre.py b/app/models/formsemestre.py index 86535265616f18fe4f227d3d2c962938990b687b..990eea672aa88a97de114f8cb4f5dc04ba2daf4a 100644 --- a/app/models/formsemestre.py +++ b/app/models/formsemestre.py @@ -471,7 +471,7 @@ class FormSemestre(models.ScoDocModel): ) if not with_sport: sem_ues = sem_ues.filter(UniteEns.type != codes_cursus.UE_SPORT) - ues = sem_ues.order_by(UniteEns.numero).all() + ues = sem_ues.order_by(UniteEns.numero, UniteEns.acronyme).all() _cache[key] = ues return ues @@ -1347,14 +1347,14 @@ class FormSemestre(models.ScoDocModel): etudid=etudid, formsemestre_id=self.id ) .join(UniteEns) - .order_by(UniteEns.numero) + .order_by(UniteEns.numero, UniteEns.acronyme) .all() ) # Validations BUT: vals_rcues = ( ApcValidationRCUE.query.filter_by(etudid=etudid, formsemestre_id=self.id) .join(UniteEns, ApcValidationRCUE.ue1) - .order_by(UniteEns.numero) + .order_by(UniteEns.numero, UniteEns.acronyme) .all() ) vals_annee = ( # issues de cette année scolaire seulement diff --git a/app/models/modules.py b/app/models/modules.py index ea15181c84d33afde7c164b854bdc0c694be2540..8e1d8c5b7205fb002777ce577941e43176e65027 100644 --- a/app/models/modules.py +++ b/app/models/modules.py @@ -386,7 +386,7 @@ class Module(models.ScoDocModel): ues = ( self.formation.ues.filter_by(semestre_idx=self.ue.semestre_idx) .filter(UniteEns.type != UE_SPORT) - .order_by(UniteEns.numero) + .order_by(UniteEns.numero, UniteEns.acronyme) .all() ) if not ues: diff --git a/app/scodoc/sco_formsemestre_validation.py b/app/scodoc/sco_formsemestre_validation.py index f82b54cded67663851af1d6c38a32d6232215ec3..0050396a4445f2dbafd3389d9bd08d949a689c10 100644 --- a/app/scodoc/sco_formsemestre_validation.py +++ b/app/scodoc/sco_formsemestre_validation.py @@ -1332,29 +1332,38 @@ def _get_etud_ue_validations_html(etud: Identite, formsemestre: FormSemestre) -> """HTML listant les validations d'UEs pour cet étudiant dans des formations de même code que celle du formsemestre indiqué. """ - validations: list[ScolarFormSemestreValidation] = ( + validations = get_etud_ue_validations(etud, formsemestre.formation) + if not validations: + return "" + return render_template( + "jury/ue_list_etud_validations.j2", + edit_mode=True, + etud=etud, + titre_boite="Validations d'UEs dans cette formation", + validations=validations, + ) + + +def get_etud_ue_validations( + etud: Identite, formation: Formation +) -> list[ScolarFormSemestreValidation]: + """Retourne les validations d'UEs pour cet étudiant dans des formations de même + code que celle indiquée. + """ + return ( ScolarFormSemestreValidation.query.filter_by(etudid=etud.id) .join(UniteEns) .join(Formation) - .filter_by(formation_code=formsemestre.formation.formation_code) + .filter_by(formation_code=formation.formation_code) .order_by( sa.desc(UniteEns.semestre_idx), + UniteEns.numero, UniteEns.acronyme, sa.desc(ScolarFormSemestreValidation.event_date), ) .all() ) - if not validations: - return "" - return render_template( - "jury/ue_list_etud_validations.j2", - edit_mode=True, - etud=etud, - titre_boite="Validations d'UEs dans cette formation", - validations=validations, - ) - def do_formsemestre_validate_previous_ue( formsemestre: FormSemestre,