Assiduite: fix JS bug + misc code review

This commit is contained in:
Emmanuel Viennet 2023-12-31 22:18:13 +01:00
parent 97ec0524c4
commit f7d16900b1
3 changed files with 24 additions and 22 deletions

View File

@ -646,8 +646,10 @@ function updateDate() {
);
openAlertModal("Attention", div, "", "#eec660");
$(dateInput).datepicker("setDate", date_fra);
/* BUG TODO MATHIAS
$(dateInput).datepicker("setDate", date_fra); // XXX ??? non définie
dateInput.value = date_fra;
*/
date = lastWorkDay;
dateStr = formatDate(lastWorkDay, {

View File

@ -1,4 +1,9 @@
<h2>Signalement différé de l'assiduité {{gr |safe}}</h2>
<h3>{{sem | safe }}</h3>
{{diff | safe}}
<div class="help">
<h3>Explication de la saisie différée</h3>
<p>Si la colonne n'est pas valide elle sera affichée en rouge, passez le curseur sur la colonne pour afficher
@ -13,9 +18,6 @@
<p>Vous pouvez supprimer une colonne en appuyant sur la croix qui se situe dans le coin haut droit de la colonne.
</p>
</div>
<h3>{{sem | safe }}</h3>
{{diff | safe}}
<script>
const etudsDefDem = {{ defdem | safe }}

View File

@ -876,7 +876,7 @@ def calendrier_assi_etud():
).build()
@bp.route("/SignalAssiduiteGr")
@bp.route("/signal_assiduites_group")
@scodoc
@permission_required(Permission.AbsChange)
def signal_assiduites_group():
@ -915,7 +915,10 @@ def signal_assiduites_group():
# Gestion des groupes
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,
select_all_when_unspecified=True,
)
if not groups_infos.members:
return (
@ -1680,13 +1683,16 @@ def _preparer_objet(
return objet_prepare
@bp.route("/SignalAssiduiteDifferee")
@bp.route("/signal_assiduites_diff")
@scodoc
@permission_required(Permission.AbsChange)
def signal_assiduites_diff():
"""TODO documenter"""
# Récupération des paramètres de la requête
group_ids: list[int] = request.args.get("group_ids", None)
formsemestre_id: int = request.args.get("formsemestre_id", -1)
formsemestre: FormSemestre = FormSemestre.get_formsemestre(formsemestre_id)
date: str = request.args.get("jour", datetime.date.today().isoformat())
date_deb: str = request.args.get("date_deb")
date_fin: str = request.args.get("date_fin")
@ -1705,18 +1711,8 @@ def signal_assiduites_diff():
date_fin: datetime.date = date_deb + datetime.timedelta(days=6)
etudiants: list[dict] = []
titre = None
# Vérification du formsemestre_id
try:
formsemestre_id = int(formsemestre_id)
except (TypeError, ValueError):
formsemestre_id = None
formsemestre: FormSemestre = FormSemestre.query.get_or_404(formsemestre_id)
# --- Vérification de la date ---
real_date = scu.is_iso_formated(date, True).date()
if real_date < formsemestre.date_debut:
@ -1730,7 +1726,9 @@ def signal_assiduites_diff():
else:
group_ids = group_ids.split(",")
map(str, group_ids)
groups_infos = sco_groups_view.DisplayedGroupsInfos(group_ids)
groups_infos = sco_groups_view.DisplayedGroupsInfos(
group_ids, formsemestre_id=formsemestre.id, select_all_when_unspecified=True
)
if not groups_infos.members:
return (
html_sco_header.sco_header(page_title="Assiduité: saisie différée")
@ -1745,7 +1743,9 @@ def signal_assiduites_diff():
for m in groups_infos.members
]
)
# XXX utiliser des instances d'Identite et non des dict
# puis trier avec etud.sort_key
# afin de bien prendre en compte nom usuel etc
etudiants = list(sorted(etudiants, key=lambda x: x["nom"]))
# Génération de l'HTML
@ -1764,8 +1764,6 @@ def signal_assiduites_diff():
],
)
sem = formsemestre.to_dict()
if groups_infos.tous_les_etuds_du_sem:
gr_tit = "en"
else:
@ -1793,7 +1791,7 @@ def signal_assiduites_diff():
},
),
gr=gr_tit,
sem=sem["titre_num"],
sem=formsemestre.titre_num(),
defdem=_get_etuds_dem_def(formsemestre),
timeMorning=ScoDocSiteConfig.get("assi_morning_time", "08:00:00"),
timeNoon=ScoDocSiteConfig.get("assi_lunch_time", "13:00:00"),