petites amélioration du code

This commit is contained in:
Emmanuel Viennet 2023-09-18 22:47:25 +02:00
parent d21af70abb
commit b124468399
2 changed files with 58 additions and 60 deletions

View File

@ -811,63 +811,58 @@ def formsemestre_description(
# genere liste html pour accès aux groupes de ce semestre # genere liste html pour accès aux groupes de ce semestre
def _make_listes_sem(formsemestre: FormSemestre, with_absences=True): def _make_listes_sem(formsemestre: FormSemestre) -> str:
# construit l'URL "destination" """La section avec les groupes et l'assiduité"""
# (a laquelle on revient apres saisie absences)
destination = url_for(
"notes.formsemestre_status",
scodoc_dept=g.scodoc_dept,
formsemestre_id=formsemestre.id,
)
#
H = [] H = []
# pas de menu absences si pas autorise: # pas de menu absences si pas autorise:
if with_absences and not current_user.has_permission(Permission.ScoAbsChange): can_edit_abs = current_user.has_permission(Permission.ScoAbsChange)
with_absences = False
# #
H.append( H.append(
f"""<h3>Listes de {formsemestre.titre} f"""<h3>Listes de {formsemestre.titre}
<span class="infostitresem">({formsemestre.mois_debut()} - {formsemestre.mois_fin()})</span></h3>""" <span class="infostitresem">({formsemestre.mois_debut()} - {formsemestre.mois_fin()})</span></h3>"""
) )
weekday = datetime.datetime.today().weekday()
try:
if with_absences:
form_abs_tmpl = f""" form_abs_tmpl = f"""
<td> <td>
<a class="btn" href="{ <a class="btn" href="{
url_for("assiduites.visu_assi_group", scodoc_dept=g.scodoc_dept) url_for("assiduites.visu_assi_group",
}?group_ids=%(group_id)s&date_debut={formsemestre.date_debut.isoformat()}&date_fin={formsemestre.date_fin.isoformat()}"><button>Visualiser l'assiduité</button></a> scodoc_dept=g.scodoc_dept,
date_debut=formsemestre.date_debut.isoformat(),
date_fin=formsemestre.date_fin.isoformat()
)}&group_ids=%(group_id)s">
<button>Bilan assiduité</button></a>
""" """
if can_edit_abs:
form_abs_tmpl += f""" form_abs_tmpl += f"""
<a class="btn" href="{ <a class="btn" href="{
url_for("assiduites.signal_assiduites_group", scodoc_dept=g.scodoc_dept) url_for("assiduites.visu_assiduites_group",
}?group_ids=%(group_id)s&jour={ scodoc_dept=g.scodoc_dept,
datetime.date.today().isoformat() formsemestre_id=formsemestre.id,
}&formsemestre_id={formsemestre.id}"><button>Saisie journalière</button></a> jour = datetime.date.today().isoformat()
)}&group_ids=%(group_id)s">
<button>Visualiser l'assiduité</button></a>
<a class="btn" href="{ <a class="btn" href="{
url_for("assiduites.signal_assiduites_diff", scodoc_dept=g.scodoc_dept) url_for("assiduites.signal_assiduites_group",
}?group_ids=%(group_id)s&formsemestre_id={ scodoc_dept=g.scodoc_dept,
formsemestre.formsemestre_id jour=datetime.date.today().isoformat(),
}"><button>Saisie différée</button></a> formsemestre_id=formsemestre.id,
)}&group_ids=%(group_id)s">
<button>Saisie journalière</button></a>
<a class="btn" href="{ <a class="btn" href="{
url_for("assiduites.bilan_dept", scodoc_dept=g.scodoc_dept) url_for("assiduites.signal_assiduites_diff",
}?group_id=%(group_id)s&formsemestre_id={ scodoc_dept=g.scodoc_dept,
formsemestre.formsemestre_id formsemestre_id=formsemestre.id,
}"><button>Justificatifs en attente</button></a> )}&group_ids=%(group_id)s">
</td> <button>Saisie différée</button></a>
<a class="btn" href="{
url_for("assiduites.bilan_dept",
scodoc_dept=g.scodoc_dept,
formsemestre=formsemestre.id,
)}&group_id=%(group_id)s">
<button>Justificatifs en attente</button></a>
""" """
else: form_abs_tmpl += "</td>"
form_abs_tmpl = f"""
<td>
<a class="btn" href="{
url_for("assiduites.visu_assiduites_group", scodoc_dept=g.scodoc_dept)
}?group_ids=%(group_id)s&jour={datetime.date.today().isoformat()}&formsemestre_id={formsemestre.id}"><button>Voir l'assiduité</button></a>
</td>
"""
except ScoInvalidDateError: # dates incorrectes dans semestres ?
form_abs_tmpl = ""
# #
H.append('<div id="grouplists">') H.append('<div id="grouplists">')
# Genere liste pour chaque partition (categorie de groupes) # Genere liste pour chaque partition (categorie de groupes)
@ -875,7 +870,7 @@ def _make_listes_sem(formsemestre: FormSemestre, with_absences=True):
if not partition["partition_name"]: if not partition["partition_name"]:
H.append("<h4>Tous les étudiants</h4>") H.append("<h4>Tous les étudiants</h4>")
else: else:
H.append("<h4>Groupes de %(partition_name)s</h4>" % partition) H.append(f"""<h4>Groupes de {partition["partition_name"]}</h4>""")
partition_is_empty = True partition_is_empty = True
groups = sco_groups.get_partition_groups(partition) groups = sco_groups.get_partition_groups(partition)
if groups: if groups:

View File

@ -704,8 +704,8 @@ def signal_assiduites_group():
@permission_required(Permission.ScoView) @permission_required(Permission.ScoView)
def visu_assiduites_group(): def visu_assiduites_group():
""" """
signal_assiduites_group Saisie des assiduités des groupes pour le jour donnée Visualisation des assiduités des groupes pour le jour donné
dans le formsemestre_id et le moduleimpl_id
Returns: Returns:
str: l'html généré str: l'html généré
""" """
@ -721,15 +721,17 @@ def visu_assiduites_group():
map(str, group_ids) map(str, group_ids)
# Vérification du moduleimpl_id # Vérification du moduleimpl_id
if moduleimpl_id is not None:
try: try:
moduleimpl_id = int(moduleimpl_id) moduleimpl_id = int(moduleimpl_id)
except (TypeError, ValueError): except (TypeError, ValueError) as exc:
moduleimpl_id = None raise ScoValueError("identifiant de moduleimpl invalide") from exc
# Vérification du formsemestre_id # Vérification du formsemestre_id
if formsemestre_id is not None:
try: try:
formsemestre_id = int(formsemestre_id) formsemestre_id = int(formsemestre_id)
except (TypeError, ValueError): except (TypeError, ValueError) as exc:
formsemestre_id = None raise ScoValueError("identifiant de formsemestre invalide") from exc
groups_infos = sco_groups_view.DisplayedGroupsInfos( groups_infos = sco_groups_view.DisplayedGroupsInfos(
group_ids, moduleimpl_id=moduleimpl_id, formsemestre_id=formsemestre_id group_ids, moduleimpl_id=moduleimpl_id, formsemestre_id=formsemestre_id
@ -924,6 +926,7 @@ def etat_abs_date():
@scodoc @scodoc
@permission_required(Permission.ScoView) @permission_required(Permission.ScoView)
def visu_assi_group(): def visu_assi_group():
"""Visualisation de l'assiduité d'un groupe entre deux dates"""
dates = { dates = {
"debut": request.args.get("date_debut"), "debut": request.args.get("date_debut"),
"fin": request.args.get("date_fin"), "fin": request.args.get("date_fin"),