diff --git a/app/but/jury_but_view.py b/app/but/jury_but_view.py index 20bd249ae..b82007b86 100644 --- a/app/but/jury_but_view.py +++ b/app/but/jury_but_view.py @@ -256,7 +256,7 @@ def _gen_but_niveau_ue( return f"""
Les matières sont des groupes de modules dans une UE
d'une formation donnée. Les matières servent surtout pour la
présentation (bulletins, etc) mais n'ont pas de rôle dans le calcul
diff --git a/app/scodoc/sco_edit_module.py b/app/scodoc/sco_edit_module.py
index b7d6fab4e..c5b106a67 100644
--- a/app/scodoc/sco_edit_module.py
+++ b/app/scodoc/sco_edit_module.py
@@ -85,7 +85,7 @@ _moduleEditor = ndb.EditableTable(
"heures_tp": ndb.float_null_is_zero,
"numero": ndb.int_null_is_zero,
"coefficient": ndb.float_null_is_zero,
- "module_type": ndb.int_null_is_zero
+ "module_type": ndb.int_null_is_zero,
#'ects' : ndb.float_null_is_null
},
)
@@ -387,14 +387,16 @@ def module_edit(
"scodoc/help/modules.j2",
is_apc=is_apc,
semestre_id=semestre_id,
- formsemestres=FormSemestre.query.filter(
- ModuleImpl.formsemestre_id == FormSemestre.id,
- ModuleImpl.module_id == module_id,
- )
- .order_by(FormSemestre.date_debut)
- .all()
- if not create
- else None,
+ formsemestres=(
+ FormSemestre.query.filter(
+ ModuleImpl.formsemestre_id == FormSemestre.id,
+ ModuleImpl.module_id == module_id,
+ )
+ .order_by(FormSemestre.date_debut)
+ .all()
+ if not create
+ else None
+ ),
create=create,
),
]
@@ -413,9 +415,11 @@ def module_edit(
}
if module:
module_types |= {
- scu.ModuleType(module.module_type)
- if module.module_type
- else scu.ModuleType.STANDARD
+ (
+ scu.ModuleType(module.module_type)
+ if module.module_type
+ else scu.ModuleType.STANDARD
+ )
}
# Numéro du module
# cherche le numero adéquat (pour placer le module en fin de liste)
@@ -571,15 +575,17 @@ def module_edit(
"input_type": "menu",
"title": "Rattachement :" if is_apc else "Matière :",
"explanation": (
- "UE de rattachement, utilisée notamment pour les malus"
- + (
- " (module utilisé, ne peut pas être changé de semestre)"
- if in_use
- else ""
+ (
+ "UE de rattachement, utilisée notamment pour les malus"
+ + (
+ " (module utilisé, ne peut pas être changé de semestre)"
+ if in_use
+ else ""
+ )
)
- )
- if is_apc
- else "un module appartient à une seule matière.",
+ if is_apc
+ else "un module appartient à une seule matière."
+ ),
"labels": mat_names,
"allowed_values": ue_mat_ids,
"enabled": unlocked,
@@ -733,7 +739,7 @@ def module_edit(
"title": f"""{scu.EMO_WARNING }
L'UE {ue.acronyme} {ue.titre}
+ }">{ue.acronyme} {ue.titre or ''}
n'est pas associée à un niveau de compétences
""",
},
@@ -766,12 +772,14 @@ def module_edit(
request.base_url,
scu.get_request_args(),
descr,
- html_foot_markup=f""" Tableau de bord : """,
]
if formsemestre.est_courant():
@@ -1226,7 +1230,7 @@ def formsemestre_tableau_modules(
ue = modimpl.module.ue
if show_ues and (prev_ue_id != ue.id):
prev_ue_id = ue.id
- titre = ue.titre
+ titre = ue.titre or ""
if use_ue_coefs:
titre += f""" (coef. {ue.coefficient or 0.0})"""
H.append(
diff --git a/app/scodoc/sco_formsemestre_validation.py b/app/scodoc/sco_formsemestre_validation.py
index c8c955623..22a16b151 100644
--- a/app/scodoc/sco_formsemestre_validation.py
+++ b/app/scodoc/sco_formsemestre_validation.py
@@ -728,7 +728,9 @@ def formsemestre_recap_parcours_table(
)
# Dispense BUT ?
if (etudid, ue.id) in nt.dispense_ues:
- moy_ue_txt = "❎" if (ue_status and ue_status["is_capitalized"]) else "⭕"
+ moy_ue_txt = (
+ "❎" if (ue_status and ue_status["is_capitalized"]) else "⭕"
+ )
explanation_ue.append("non inscrit (dispense)")
else:
moy_ue_txt = scu.fmt_note(moy_ue)
@@ -1098,7 +1100,7 @@ def formsemestre_validate_previous_ue(formsemestre: FormSemestre, etud: Identite
ue_names = ["Choisir..."] + [
f"""{('S'+str(ue.semestre_idx)+' : ') if ue.semestre_idx is not None else ''
- }{ue.acronyme} {ue.titre} ({ue.ue_code or ""})"""
+ }{ue.acronyme} {ue.titre or ''} ({ue.ue_code or ""})"""
for ue in ues
]
ue_ids = [""] + [ue.id for ue in ues]
diff --git a/app/tables/recap.py b/app/tables/recap.py
index ff8c1eb76..f4882983c 100644
--- a/app/tables/recap.py
+++ b/app/tables/recap.py
@@ -682,9 +682,9 @@ class RowRecap(tb.Row):
self.add_ue_modimpls_cols(ue, ue_status["is_capitalized"])
self.nb_ues_etud_parcours = len(res.etud_parcours_ues_ids(etud.id))
- ue_valid_txt = (
- ue_valid_txt_html
- ) = f"{self.nb_ues_validables}/{self.nb_ues_etud_parcours}"
+ ue_valid_txt = ue_valid_txt_html = (
+ f"{self.nb_ues_validables}/{self.nb_ues_etud_parcours}"
+ )
if self.nb_ues_warning:
ue_valid_txt_html += " " + scu.EMO_WARNING
cell_class = ""
@@ -708,9 +708,9 @@ class RowRecap(tb.Row):
# sous-classé par JuryRow pour ajouter les codes
table: TableRecap = self.table
formsemestre: FormSemestre = table.res.formsemestre
- table.group_titles[
- "col_ue"
- ] = f"UEs du S{formsemestre.semestre_id} {formsemestre.annee_scolaire()}"
+ table.group_titles["col_ue"] = (
+ f"UEs du S{formsemestre.semestre_id} {formsemestre.annee_scolaire()}"
+ )
col_id = f"moy_ue_{ue.id}"
val = (
ue_status["moy"]
@@ -740,7 +740,7 @@ class RowRecap(tb.Row):
)
table.foot_title_row.cells[col_id].target_attrs[
"title"
- ] = f"""{ue.titre} S{ue.semestre_idx or '?'}"""
+ ] = f"""{ue.titre or ue.acronyme} S{ue.semestre_idx or '?'}"""
def add_ue_modimpls_cols(self, ue: UniteEns, is_capitalized: bool):
"""Ajoute à row les moyennes des modules (ou ressources et SAÉs) dans l'UE"""
diff --git a/app/templates/pn/form_ues.j2 b/app/templates/pn/form_ues.j2
index d53dde6fd..133ccb66a 100644
--- a/app/templates/pn/form_ues.j2
+++ b/app/templates/pn/form_ues.j2
@@ -1,7 +1,7 @@
{# Édition liste UEs APC #}
{% for semestre_idx in semestre_ids %}
Suppression de l'UE {ue.titre} ({ue.acronyme})
",
+ f"Suppression de l'UE {ue.titre or ''} ({ue.acronyme})
",
dest_url="",
parameters={"ue_id": ue.id},
cancel_url=url_for(
@@ -1452,7 +1452,7 @@ def ue_sharing_code(ue_code: str = "", ue_id: int = None, hide_ue_id: int = None
H.append("")
for ue in ues:
H.append(
- f"""
annulation
"
@@ -421,12 +425,18 @@ def _ue_form_description(
"input_type": "text",
"size": 4,
"template": itemtemplate,
- "title": ""
- + (f"S{ue.semestre_idx} " if ue.semestre_idx is not None else "")
- + f"{ue.acronyme} {ue.titre}"
- + f" ({ue.ects} ECTS)"
- if ue.ects is not None
- else "",
+ "title": (
+ ""
+ + (
+ f"S{ue.semestre_idx} "
+ if ue.semestre_idx is not None
+ else ""
+ )
+ + f"{ue.acronyme} {ue.titre or ''}"
+ + f" ({ue.ects} ECTS)"
+ if ue.ects is not None
+ else ""
+ ),
"attributes": [coef_disabled],
},
)
diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py
index a3941ab33..7da7746da 100755
--- a/app/scodoc/sco_formsemestre_status.py
+++ b/app/scodoc/sco_formsemestre_status.py
@@ -281,9 +281,11 @@ def formsemestre_status_menubar(formsemestre: FormSemestre) -> str:
menu_inscriptions = [
{
- "title": "Gérer les inscriptions aux UE et modules"
- if formsemestre.formation.is_apc()
- else "Gérer les inscriptions aux modules",
+ "title": (
+ "Gérer les inscriptions aux UE et modules"
+ if formsemestre.formation.is_apc()
+ else "Gérer les inscriptions aux modules"
+ ),
"endpoint": "notes.moduleimpl_inscriptions_stats",
"args": {"formsemestre_id": formsemestre_id},
}
@@ -619,9 +621,9 @@ def formsemestre_description_table(
if ue.color:
for k in list(ue_info.keys()):
if not k.startswith("_"):
- ue_info[
- f"_{k}_td_attrs"
- ] = f'style="background-color: {ue.color} !important;"'
+ ue_info[f"_{k}_td_attrs"] = (
+ f'style="background-color: {ue.color} !important;"'
+ )
if not is_apc:
# n'affiche la ligne UE qu'en formation classique
# car l'UE de rattachement n'a pas d'intérêt en BUT
@@ -1050,9 +1052,11 @@ def formsemestre_status(formsemestre_id=None, check_parcours=True):
formsemestre_id=formsemestre_id, page_title="Tableau de bord"
),
formsemestre_warning_apc_setup(formsemestre, nt),
- formsemestre_warning_etuds_sans_note(formsemestre, nt)
- if can_change_all_notes
- else "",
+ (
+ formsemestre_warning_etuds_sans_note(formsemestre, nt)
+ if can_change_all_notes
+ else ""
+ ),
"""
Unité d'Enseignement {{ue.acronyme|e}} {{ue.titre}}
+Unité d'Enseignement {{ue.acronyme|e}} {{(ue.titre or '')|e}}
{% endif %}
-
diff --git a/app/views/pn_modules.py b/app/views/pn_modules.py
index 5ec9d2081..cd9ec4db8 100644
--- a/app/views/pn_modules.py
+++ b/app/views/pn_modules.py
@@ -113,7 +113,7 @@ def table_modules_ue_coefs(formation_id, semestre_idx=None, parcours_id: int = N
"y": 1, # 1ere ligne
"style": "title_ue",
"data": ue.acronyme,
- "title": ue.titre,
+ "title": ue.titre or ue.acronymexs,
}
for (col, ue) in enumerate(ues, start=2)
]
@@ -214,11 +214,13 @@ def edit_modules_ue_coefs():
{lockicon}
""",
- """Formation verrouilée car un ou plusieurs
+ (
+ """Formation verrouilée car un ou plusieurs
semestres verrouillés l'utilisent.
"""
- if locked
- else "",
+ if locked
+ else ""
+ ),
render_template(
"pn/form_modules_ue_coefs.j2",
formation=formation,