forked from ScoDoc/ScoDoc
Assiduites : fix #686
This commit is contained in:
parent
3eb8869349
commit
6cbfd97031
@ -46,6 +46,7 @@ from app.models import (
|
|||||||
Module,
|
Module,
|
||||||
ModuleImpl,
|
ModuleImpl,
|
||||||
ScolarNews,
|
ScolarNews,
|
||||||
|
Assiduite,
|
||||||
)
|
)
|
||||||
from app.models.etudiants import Identite
|
from app.models.etudiants import Identite
|
||||||
|
|
||||||
@ -75,6 +76,8 @@ import app.scodoc.sco_utils as scu
|
|||||||
from app.scodoc.sco_utils import json_error
|
from app.scodoc.sco_utils import json_error
|
||||||
from app.scodoc.sco_utils import ModuleType
|
from app.scodoc.sco_utils import ModuleType
|
||||||
|
|
||||||
|
from flask_sqlalchemy.query import Query
|
||||||
|
|
||||||
|
|
||||||
def convert_note_from_string(
|
def convert_note_from_string(
|
||||||
note: str,
|
note: str,
|
||||||
@ -1102,30 +1105,21 @@ def _get_sorted_etuds(evaluation: Evaluation, etudids: list, formsemestre_id: in
|
|||||||
# Groupes auxquels appartient cet étudiant:
|
# Groupes auxquels appartient cet étudiant:
|
||||||
e["groups"] = sco_groups.get_etud_groups(etudid, formsemestre_id)
|
e["groups"] = sco_groups.get_etud_groups(etudid, formsemestre_id)
|
||||||
|
|
||||||
# Information sur absence (tenant compte de la demi-journée)
|
# Information sur absence
|
||||||
jour_iso = (
|
warn_abs_lst: str = ""
|
||||||
evaluation.date_debut.date().isoformat() if evaluation.date_debut else ""
|
if evaluation.date_debut is not None and evaluation.date_fin is not None:
|
||||||
)
|
assiduites_etud: Query = etud.assiduites.filter(
|
||||||
warn_abs_lst = []
|
Assiduite.etat == scu.EtatAssiduite.ABSENT,
|
||||||
# XXX TODO-ASSIDUITE (issue #686)
|
Assiduite.date_debut <= evaluation.date_fin,
|
||||||
if evaluation.is_matin():
|
Assiduite.date_fin >= evaluation.date_debut,
|
||||||
nbabs = 0 # TODO-ASSIDUITE sco_abs.count_abs(etudid, jour_iso, jour_iso, matin=True)
|
)
|
||||||
nbabsjust = 0 # TODO-ASSIDUITE sco_abs.count_abs_just(etudid, jour_iso, jour_iso, matin=True)
|
premiere_assi: Assiduite = assiduites_etud.first()
|
||||||
if nbabs:
|
if premiere_assi is not None:
|
||||||
if nbabsjust:
|
warn_abs_lst: str = (
|
||||||
warn_abs_lst.append("absent justifié le matin !")
|
f"absent {'justifié' if premiere_assi.est_just else ''}"
|
||||||
else:
|
)
|
||||||
warn_abs_lst.append("absent le matin !")
|
|
||||||
if evaluation.is_apresmidi():
|
|
||||||
nbabs = 0 # TODO-ASSIDUITE sco_abs.count_abs(etudid, jour_iso, jour_iso, matin=0)
|
|
||||||
nbabsjust = 0 # TODO-ASSIDUITE sco_abs.count_abs_just(etudid, jour_iso, jour_iso, matin=0)
|
|
||||||
if nbabs:
|
|
||||||
if nbabsjust:
|
|
||||||
warn_abs_lst.append("absent justifié l'après-midi !")
|
|
||||||
else:
|
|
||||||
warn_abs_lst.append("absent l'après-midi !")
|
|
||||||
|
|
||||||
e["absinfo"] = '<span class="sn_abs">' + " ".join(warn_abs_lst) + "</span> "
|
e["absinfo"] = '<span class="sn_abs">' + warn_abs_lst + "</span> "
|
||||||
|
|
||||||
# Note actuelle de l'étudiant:
|
# Note actuelle de l'étudiant:
|
||||||
if etudid in notes_db:
|
if etudid in notes_db:
|
||||||
|
Loading…
Reference in New Issue
Block a user