BUT: dispenses d'UE / jury avec RCUE incomplet
This commit is contained in:
parent
11f78d1595
commit
460ce79d92
@ -581,14 +581,14 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
|||||||
)
|
)
|
||||||
ues_impair_sans_rcue.discard(ue_impair.id)
|
ues_impair_sans_rcue.discard(ue_impair.id)
|
||||||
break
|
break
|
||||||
if rcue is None and not self.a_cheval:
|
# if rcue is None and not self.a_cheval:
|
||||||
raise NoRCUEError(deca=self, ue=ue_pair)
|
# raise NoRCUEError(deca=self, ue=ue_pair)
|
||||||
if rcue is not None:
|
if rcue is not None:
|
||||||
rcues_annee.append(rcue)
|
rcues_annee.append(rcue)
|
||||||
# Si jury annuel (pas à cheval), on doit avoir tous les RCUEs:
|
# Si jury annuel (pas à cheval), on doit avoir tous les RCUEs:
|
||||||
if len(ues_impair_sans_rcue) > 0 and not self.a_cheval:
|
# if len(ues_impair_sans_rcue) > 0 and not self.a_cheval:
|
||||||
ue = UniteEns.query.get(ues_impair_sans_rcue.pop())
|
# ue = UniteEns.query.get(ues_impair_sans_rcue.pop())
|
||||||
raise NoRCUEError(deca=self, ue=ue)
|
# raise NoRCUEError(deca=self, ue=ue)
|
||||||
return rcues_annee
|
return rcues_annee
|
||||||
|
|
||||||
def compute_decisions_niveaux(self) -> dict[int, "DecisionsProposeesRCUE"]:
|
def compute_decisions_niveaux(self) -> dict[int, "DecisionsProposeesRCUE"]:
|
||||||
@ -911,7 +911,7 @@ def list_ue_parcour_etud(
|
|||||||
formsemestre: FormSemestre, etud: Identite, res: ResultatsSemestreBUT
|
formsemestre: FormSemestre, etud: Identite, res: ResultatsSemestreBUT
|
||||||
) -> tuple[ApcParcours, list[UniteEns]]:
|
) -> tuple[ApcParcours, list[UniteEns]]:
|
||||||
"""Parcour dans lequel l'étudiant est inscrit,
|
"""Parcour dans lequel l'étudiant est inscrit,
|
||||||
et liste des UEs à valider pour ce semestre
|
et liste des UEs à valider pour ce semestre (sans les UE "dispensées")
|
||||||
"""
|
"""
|
||||||
if res.etuds_parcour_id[etud.id] is None:
|
if res.etuds_parcour_id[etud.id] is None:
|
||||||
parcour = None
|
parcour = None
|
||||||
@ -926,6 +926,7 @@ def list_ue_parcour_etud(
|
|||||||
.order_by(UniteEns.numero)
|
.order_by(UniteEns.numero)
|
||||||
.all()
|
.all()
|
||||||
)
|
)
|
||||||
|
ues = [ue for ue in ues if (etud.id, ue.id) not in res.dispense_ues]
|
||||||
return parcour, ues
|
return parcour, ues
|
||||||
|
|
||||||
|
|
||||||
|
@ -554,8 +554,8 @@ def _list_but_ue_inscriptions(res: NotesTableCompat, read_only: bool = True) ->
|
|||||||
"""</table>
|
"""</table>
|
||||||
</form>
|
</form>
|
||||||
<div class="help">
|
<div class="help">
|
||||||
L'inscription ou désinscription aux UE du BUT n'affecte pas les inscriptions aux modules
|
L'inscription ou désinscription aux UEs du BUT n'affecte pas les inscriptions aux modules
|
||||||
mais permet de "dispenser" un étudiant de suivre certaines UE de son parcours.
|
mais permet de "dispenser" un étudiant de suivre certaines UEs de son parcours.
|
||||||
Il peut s'agit d'étudiants redoublants ayant déjà acquis l'UE, ou d'autres cas particuliers.
|
Il peut s'agit d'étudiants redoublants ayant déjà acquis l'UE, ou d'autres cas particuliers.
|
||||||
La dispense d'UE est réversible à tout moment (avant le jury de fin de semestre)
|
La dispense d'UE est réversible à tout moment (avant le jury de fin de semestre)
|
||||||
et n'affecte pas les notes saisies.
|
et n'affecte pas les notes saisies.
|
||||||
|
Loading…
Reference in New Issue
Block a user