forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -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:
|
||||||
|
@ -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"),
|
||||||
|
Loading…
Reference in New Issue
Block a user