Update opolka/ScoDoc from ScoDoc/ScoDoc #2

Merged
opolka merged 1272 commits from ScoDoc/ScoDoc:master into master 2024-05-27 09:11:04 +02:00
2 changed files with 58 additions and 60 deletions
Showing only changes of commit b124468399 - Show all commits

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() form_abs_tmpl = f"""
try: <td>
if with_absences: <a class="btn" href="{
form_abs_tmpl = f""" url_for("assiduites.visu_assi_group",
<td> scodoc_dept=g.scodoc_dept,
<a class="btn" href="{ date_debut=formsemestre.date_debut.isoformat(),
url_for("assiduites.visu_assi_group", scodoc_dept=g.scodoc_dept) date_fin=formsemestre.date_fin.isoformat()
}?group_ids=%(group_id)s&date_debut={formsemestre.date_debut.isoformat()}&date_fin={formsemestre.date_fin.isoformat()}"><button>Visualiser l'assiduité</button></a> )}&group_ids=%(group_id)s">
""" <button>Bilan assiduité</button></a>
form_abs_tmpl += f""" """
<a class="btn" href="{
url_for("assiduites.signal_assiduites_group", scodoc_dept=g.scodoc_dept) if can_edit_abs:
}?group_ids=%(group_id)s&jour={ form_abs_tmpl += f"""
datetime.date.today().isoformat() <a class="btn" href="{
}&formsemestre_id={formsemestre.id}"><button>Saisie journalière</button></a> url_for("assiduites.visu_assiduites_group",
<a class="btn" href="{ scodoc_dept=g.scodoc_dept,
url_for("assiduites.signal_assiduites_diff", scodoc_dept=g.scodoc_dept) formsemestre_id=formsemestre.id,
}?group_ids=%(group_id)s&formsemestre_id={ jour = datetime.date.today().isoformat()
formsemestre.formsemestre_id )}&group_ids=%(group_id)s">
}"><button>Saisie différée</button></a> <button>Visualiser l'assiduité</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_group",
}?group_id=%(group_id)s&formsemestre_id={ scodoc_dept=g.scodoc_dept,
formsemestre.formsemestre_id jour=datetime.date.today().isoformat(),
}"><button>Justificatifs en attente</button></a> formsemestre_id=formsemestre.id,
</td> )}&group_ids=%(group_id)s">
""" <button>Saisie journalière</button></a>
else: <a class="btn" href="{
form_abs_tmpl = f""" url_for("assiduites.signal_assiduites_diff",
<td> scodoc_dept=g.scodoc_dept,
<a class="btn" href="{ formsemestre_id=formsemestre.id,
url_for("assiduites.visu_assiduites_group", scodoc_dept=g.scodoc_dept) )}&group_ids=%(group_id)s">
}?group_ids=%(group_id)s&jour={datetime.date.today().isoformat()}&formsemestre_id={formsemestre.id}"><button>Voir l'assiduité</button></a> <button>Saisie différée</button></a>
</td> <a class="btn" href="{
""" url_for("assiduites.bilan_dept",
except ScoInvalidDateError: # dates incorrectes dans semestres ? scodoc_dept=g.scodoc_dept,
form_abs_tmpl = "" formsemestre=formsemestre.id,
)}&group_id=%(group_id)s">
<button>Justificatifs en attente</button></a>
"""
form_abs_tmpl += "</td>"
# #
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
try: if moduleimpl_id is not None:
moduleimpl_id = int(moduleimpl_id) try:
except (TypeError, ValueError): moduleimpl_id = int(moduleimpl_id)
moduleimpl_id = None except (TypeError, ValueError) as exc:
raise ScoValueError("identifiant de moduleimpl invalide") from exc
# Vérification du formsemestre_id # Vérification du formsemestre_id
try: if formsemestre_id is not None:
formsemestre_id = int(formsemestre_id) try:
except (TypeError, ValueError): formsemestre_id = int(formsemestre_id)
formsemestre_id = None except (TypeError, ValueError) as exc:
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"),