forked from ScoDoc/ScoDoc
Tri parcours par numero et code; améliore table description semestre.
This commit is contained in:
parent
9d18ed4671
commit
72b0ed17b5
@ -55,7 +55,7 @@ class Module(db.Model):
|
|||||||
secondary=parcours_modules,
|
secondary=parcours_modules,
|
||||||
lazy="subquery",
|
lazy="subquery",
|
||||||
backref=db.backref("modules", lazy=True),
|
backref=db.backref("modules", lazy=True),
|
||||||
order_by="ApcParcours.numero",
|
order_by="ApcParcours.numero, ApcParcours.code",
|
||||||
)
|
)
|
||||||
|
|
||||||
app_critiques = db.relationship(
|
app_critiques = db.relationship(
|
||||||
|
@ -58,7 +58,10 @@ class UniteEns(db.Model):
|
|||||||
|
|
||||||
# Une UE appartient soit à tous les parcours (tronc commun), soit à un sous-ensemble
|
# Une UE appartient soit à tous les parcours (tronc commun), soit à un sous-ensemble
|
||||||
parcours = db.relationship(
|
parcours = db.relationship(
|
||||||
ApcParcours, secondary="ue_parcours", backref=db.backref("ues", lazy=True)
|
ApcParcours,
|
||||||
|
secondary="ue_parcours",
|
||||||
|
backref=db.backref("ues", lazy=True),
|
||||||
|
order_by="ApcParcours.numero, ApcParcours.code",
|
||||||
)
|
)
|
||||||
|
|
||||||
# relations
|
# relations
|
||||||
|
@ -594,6 +594,7 @@ def formsemestre_description_table(
|
|||||||
formsemestre: FormSemestre = FormSemestre.query.filter_by(
|
formsemestre: FormSemestre = FormSemestre.query.filter_by(
|
||||||
id=formsemestre_id, dept_id=g.scodoc_dept_id
|
id=formsemestre_id, dept_id=g.scodoc_dept_id
|
||||||
).first_or_404()
|
).first_or_404()
|
||||||
|
is_apc = formsemestre.formation.is_apc()
|
||||||
nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre)
|
nt: NotesTableCompat = res_sem.load_formsemestre_results(formsemestre)
|
||||||
use_ue_coefs = sco_preferences.get_preference("use_ue_coefs", formsemestre_id)
|
use_ue_coefs = sco_preferences.get_preference("use_ue_coefs", formsemestre_id)
|
||||||
parcours = codes_cursus.get_cursus_from_code(formsemestre.formation.type_parcours)
|
parcours = codes_cursus.get_cursus_from_code(formsemestre.formation.type_parcours)
|
||||||
@ -607,7 +608,7 @@ def formsemestre_description_table(
|
|||||||
else:
|
else:
|
||||||
ues = formsemestre.get_ues()
|
ues = formsemestre.get_ues()
|
||||||
columns_ids += [f"ue_{ue.id}" for ue in ues]
|
columns_ids += [f"ue_{ue.id}" for ue in ues]
|
||||||
if sco_preferences.get_preference("bul_show_ects", formsemestre_id):
|
if sco_preferences.get_preference("bul_show_ects", formsemestre_id) and not is_apc:
|
||||||
columns_ids += ["ects"]
|
columns_ids += ["ects"]
|
||||||
columns_ids += ["Inscrits", "Responsable", "Enseignants"]
|
columns_ids += ["Inscrits", "Responsable", "Enseignants"]
|
||||||
if with_evals:
|
if with_evals:
|
||||||
@ -634,6 +635,7 @@ def formsemestre_description_table(
|
|||||||
sum_coef = 0
|
sum_coef = 0
|
||||||
sum_ects = 0
|
sum_ects = 0
|
||||||
last_ue_id = None
|
last_ue_id = None
|
||||||
|
formsemestre_parcours_ids = {p.id for p in formsemestre.parcours}
|
||||||
for modimpl in formsemestre.modimpls_sorted:
|
for modimpl in formsemestre.modimpls_sorted:
|
||||||
# Ligne UE avec ECTS:
|
# Ligne UE avec ECTS:
|
||||||
ue = modimpl.module.ue
|
ue = modimpl.module.ue
|
||||||
@ -660,7 +662,7 @@ def formsemestre_description_table(
|
|||||||
ue_info[
|
ue_info[
|
||||||
f"_{k}_td_attrs"
|
f"_{k}_td_attrs"
|
||||||
] = f'style="background-color: {ue.color} !important;"'
|
] = f'style="background-color: {ue.color} !important;"'
|
||||||
if not formsemestre.formation.is_apc():
|
if not is_apc:
|
||||||
# n'affiche la ligne UE qu'en formation classique
|
# n'affiche la ligne UE qu'en formation classique
|
||||||
# car l'UE de rattachement n'a pas d'intérêt en BUT
|
# car l'UE de rattachement n'a pas d'intérêt en BUT
|
||||||
rows.append(ue_info)
|
rows.append(ue_info)
|
||||||
@ -701,8 +703,17 @@ def formsemestre_description_table(
|
|||||||
for ue in ues:
|
for ue in ues:
|
||||||
row[f"ue_{ue.id}"] = coef_dict.get(ue.id, 0.0) or ""
|
row[f"ue_{ue.id}"] = coef_dict.get(ue.id, 0.0) or ""
|
||||||
if with_parcours:
|
if with_parcours:
|
||||||
|
# Intersection des parcours du module avec ceux du formsemestre
|
||||||
row["parcours"] = ", ".join(
|
row["parcours"] = ", ".join(
|
||||||
sorted([pa.code for pa in modimpl.module.parcours])
|
[
|
||||||
|
pa.code
|
||||||
|
for pa in (
|
||||||
|
modimpl.module.parcours
|
||||||
|
if modimpl.module.parcours
|
||||||
|
else modimpl.formsemestre.parcours
|
||||||
|
)
|
||||||
|
if pa.id in formsemestre_parcours_ids
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
rows.append(row)
|
rows.append(row)
|
||||||
|
Loading…
Reference in New Issue
Block a user