forked from ScoDoc/ScoDoc
Assiduité : fusion liste_etud bilan_etud
This commit is contained in:
parent
75ce1ccd31
commit
2ed4516a97
@ -28,6 +28,7 @@
|
|||||||
"""
|
"""
|
||||||
Génération de la "sidebar" (marge gauche des pages HTML)
|
Génération de la "sidebar" (marge gauche des pages HTML)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from flask import render_template, url_for
|
from flask import render_template, url_for
|
||||||
from flask import g, request
|
from flask import g, request
|
||||||
from flask_login import current_user
|
from flask_login import current_user
|
||||||
@ -193,7 +194,7 @@ def sidebar(etudid: int = None):
|
|||||||
formsemestre.date_debut.strftime(scu.DATE_FMT)
|
formsemestre.date_debut.strftime(scu.DATE_FMT)
|
||||||
} au {
|
} au {
|
||||||
formsemestre.date_fin.strftime(scu.DATE_FMT)
|
formsemestre.date_fin.strftime(scu.DATE_FMT)
|
||||||
}">({
|
}" data-tooltip>({
|
||||||
sco_preferences.get_preference("assi_metrique", None)})
|
sco_preferences.get_preference("assi_metrique", None)})
|
||||||
<br>{nbabsjust:1g} J., {nbabsnj:1g} N.J.</span>"""
|
<br>{nbabsjust:1g} J., {nbabsnj:1g} N.J.</span>"""
|
||||||
)
|
)
|
||||||
@ -227,12 +228,9 @@ def sidebar(etudid: int = None):
|
|||||||
<li><a href="{ url_for('assiduites.calendrier_assi_etud',
|
<li><a href="{ url_for('assiduites.calendrier_assi_etud',
|
||||||
scodoc_dept=g.scodoc_dept, etudid=etudid)
|
scodoc_dept=g.scodoc_dept, etudid=etudid)
|
||||||
}">Calendrier</a></li>
|
}">Calendrier</a></li>
|
||||||
<li><a href="{ url_for('assiduites.liste_assiduites_etud',
|
|
||||||
scodoc_dept=g.scodoc_dept, etudid=etudid)
|
|
||||||
}">Liste</a></li>
|
|
||||||
<li><a href="{ url_for('assiduites.bilan_etud',
|
<li><a href="{ url_for('assiduites.bilan_etud',
|
||||||
scodoc_dept=g.scodoc_dept, etudid=etudid)
|
scodoc_dept=g.scodoc_dept, etudid=etudid)
|
||||||
}">Bilan</a></li>
|
}" title="Les pages bilan et liste ont été fusionnées">Liste/Bilan</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
@ -86,9 +86,6 @@ Bilan assiduité de {{sco.etud.nomprenom}}
|
|||||||
|
|
||||||
<div class="scobox">
|
<div class="scobox">
|
||||||
<section class="nonvalide">
|
<section class="nonvalide">
|
||||||
<div class="help">Le tableau n'affiche que les assiduités non justifiées
|
|
||||||
et les justificatifs soumis / modifiés
|
|
||||||
</div>
|
|
||||||
{{tableau | safe }}
|
{{tableau | safe }}
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
@ -99,6 +96,9 @@ Bilan assiduité de {{sco.etud.nomprenom}}
|
|||||||
département)</p>
|
département)</p>
|
||||||
<p>Les statistiques sont calculées entre les deux dates sélectionnées. Après modification des dates,
|
<p>Les statistiques sont calculées entre les deux dates sélectionnées. Après modification des dates,
|
||||||
appuyer sur le bouton "Actualiser"</p>
|
appuyer sur le bouton "Actualiser"</p>
|
||||||
|
|
||||||
|
{% include "assiduites/explication_etats_justifs.j2" %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
{% extends "sco_page.j2" %}
|
|
||||||
|
|
||||||
{% block title %}
|
|
||||||
Assiduité de {{etud.nomprenom}}
|
|
||||||
{% endblock title %}
|
|
||||||
|
|
||||||
{% block styles %}
|
|
||||||
{{ super() }}
|
|
||||||
<link rel="stylesheet" href="{{scu.STATIC_DIR}}/css/assiduites.css">
|
|
||||||
{% endblock styles %}
|
|
||||||
|
|
||||||
{% block scripts %}
|
|
||||||
{{ super() }}
|
|
||||||
<script src="{{scu.STATIC_DIR}}/js/date_utils.js"></script>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
|
|
||||||
{% block app_content %}
|
|
||||||
<div class="pageContent">
|
|
||||||
|
|
||||||
<h2>Liste de l'assiduité et des justificatifs de {{sco.etud.html_link_fiche()|safe}}</h2>
|
|
||||||
{{tableau | safe }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% include "assiduites/explication_etats_justifs.j2" %}
|
|
||||||
|
|
||||||
{% endblock app_content %}
|
|
@ -57,7 +57,7 @@
|
|||||||
<b>Absences</b>
|
<b>Absences</b>
|
||||||
{% if sco.etud_cur_sem %}
|
{% if sco.etud_cur_sem %}
|
||||||
<span title="absences du {{ sco.etud_cur_sem['date_debut'].strftime('%d/%m/%Y') }}
|
<span title="absences du {{ sco.etud_cur_sem['date_debut'].strftime('%d/%m/%Y') }}
|
||||||
au {{ sco.etud_cur_sem['date_fin'].strftime('%d/%m/%Y') }}">({{sco.prefs["assi_metrique"]}})
|
au {{ sco.etud_cur_sem['date_fin'].strftime('%d/%m/%Y') }}" data-tooltip>({{sco.prefs["assi_metrique"]}})
|
||||||
<br />{{'%1g'|format(sco.nb_abs_just)}} J., {{'%1g'|format(sco.nb_abs_nj)}} N.J.</span>
|
<br />{{'%1g'|format(sco.nb_abs_just)}} J., {{'%1g'|format(sco.nb_abs_nj)}} N.J.</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<ul>
|
<ul>
|
||||||
@ -73,10 +73,8 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<li><a href="{{ url_for('assiduites.calendrier_assi_etud', scodoc_dept=g.scodoc_dept,
|
<li><a href="{{ url_for('assiduites.calendrier_assi_etud', scodoc_dept=g.scodoc_dept,
|
||||||
etudid=sco.etud.id) }}">Calendrier</a></li>
|
etudid=sco.etud.id) }}">Calendrier</a></li>
|
||||||
<li><a href="{{ url_for('assiduites.liste_assiduites_etud', scodoc_dept=g.scodoc_dept,
|
|
||||||
etudid=sco.etud.id) }}">Liste</a></li>
|
|
||||||
<li><a href="{{ url_for('assiduites.bilan_etud', scodoc_dept=g.scodoc_dept,
|
<li><a href="{{ url_for('assiduites.bilan_etud', scodoc_dept=g.scodoc_dept,
|
||||||
etudid=sco.etud.id) }}">Bilan</a></li>
|
etudid=sco.etud.id) }}" title="Les pages bilan et liste ont été fusionnées">Liste/Bilan</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div> {# /etud-insidebar #}
|
</div> {# /etud-insidebar #}
|
||||||
|
@ -511,51 +511,6 @@ def _record_assiduite_etud(
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/liste_assiduites_etud")
|
|
||||||
@scodoc
|
|
||||||
@permission_required(Permission.ScoView)
|
|
||||||
def liste_assiduites_etud():
|
|
||||||
"""
|
|
||||||
liste_assiduites_etud Affichage de toutes les assiduites et justificatifs d'un etudiant
|
|
||||||
Args:
|
|
||||||
etudid (int): l'identifiant de l'étudiant
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
str: l'html généré
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Récupération de l'étudiant concerné
|
|
||||||
etudid = request.args.get("etudid", -1)
|
|
||||||
etud: Identite = Identite.query.get_or_404(etudid)
|
|
||||||
if etud.dept_id != g.scodoc_dept_id:
|
|
||||||
abort(404, "étudiant inexistant dans ce département")
|
|
||||||
|
|
||||||
# Gestion d'une assiduité unique (redirigé depuis le calendrier) TODO-Assiduites
|
|
||||||
assiduite_id: int = request.args.get("assiduite_id", -1)
|
|
||||||
|
|
||||||
# Préparation de la page
|
|
||||||
tableau = _prepare_tableau(
|
|
||||||
liste_assi.AssiJustifData.from_etudiants(
|
|
||||||
etud,
|
|
||||||
),
|
|
||||||
filename=f"assiduites-justificatifs-{etud.id}",
|
|
||||||
afficher_etu=False,
|
|
||||||
filtre=liste_assi.AssiFiltre(type_obj=0),
|
|
||||||
options=liste_assi.AssiDisplayOptions(show_module=True),
|
|
||||||
cache_key=f"tableau-etud-{etud.id}",
|
|
||||||
)
|
|
||||||
if not tableau[0]:
|
|
||||||
return tableau[1]
|
|
||||||
# Page HTML:
|
|
||||||
return render_template(
|
|
||||||
"assiduites/pages/liste_assiduites.j2",
|
|
||||||
assi_id=assiduite_id,
|
|
||||||
etud=etud,
|
|
||||||
tableau=tableau[1],
|
|
||||||
sco=ScoData(etud),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/bilan_etud")
|
@bp.route("/bilan_etud")
|
||||||
@scodoc
|
@scodoc
|
||||||
@permission_required(Permission.ScoView)
|
@permission_required(Permission.ScoView)
|
||||||
@ -583,28 +538,19 @@ def bilan_etud():
|
|||||||
sco_preferences.get_preference("assi_metrique", dept_id=g.scodoc_dept_id),
|
sco_preferences.get_preference("assi_metrique", dept_id=g.scodoc_dept_id),
|
||||||
)
|
)
|
||||||
|
|
||||||
# Récupération des assiduités et justificatifs de l'étudiant
|
# Préparation de la page
|
||||||
data = liste_assi.AssiJustifData(
|
tableau = _prepare_tableau(
|
||||||
etud.assiduites.filter(
|
liste_assi.AssiJustifData.from_etudiants(
|
||||||
Assiduite.etat != scu.EtatAssiduite.PRESENT, Assiduite.est_just == False
|
etud,
|
||||||
),
|
),
|
||||||
etud.justificatifs.filter(
|
filename=f"assiduites-justificatifs-{etud.id}",
|
||||||
Justificatif.etat.in_(
|
|
||||||
[scu.EtatJustificatif.ATTENTE, scu.EtatJustificatif.MODIFIE]
|
|
||||||
)
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
table = _prepare_tableau(
|
|
||||||
data,
|
|
||||||
afficher_etu=False,
|
afficher_etu=False,
|
||||||
filename=f"Bilan assiduité {etud.nomprenom}",
|
filtre=liste_assi.AssiFiltre(type_obj=0),
|
||||||
titre="Bilan de l'assiduité de l'étudiant",
|
options=liste_assi.AssiDisplayOptions(show_module=True),
|
||||||
cache_key=f"tableau-etud-{etud.id}-bilan",
|
cache_key=f"tableau-etud-{etud.id}",
|
||||||
)
|
)
|
||||||
|
if not tableau[0]:
|
||||||
if not table[0]:
|
return tableau[1]
|
||||||
return table[1]
|
|
||||||
|
|
||||||
# Génération de la page HTML
|
# Génération de la page HTML
|
||||||
return render_template(
|
return render_template(
|
||||||
@ -614,7 +560,7 @@ def bilan_etud():
|
|||||||
date_debut=date_debut,
|
date_debut=date_debut,
|
||||||
date_fin=date_fin,
|
date_fin=date_fin,
|
||||||
sco=ScoData(etud),
|
sco=ScoData(etud),
|
||||||
tableau=table[1],
|
tableau=tableau[1],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -654,7 +600,7 @@ def edit_justificatif_etud(justif_id: int):
|
|||||||
back_url = request.args.get("back_url", None)
|
back_url = request.args.get("back_url", None)
|
||||||
|
|
||||||
redirect_url = back_url or url_for(
|
redirect_url = back_url or url_for(
|
||||||
"assiduites.liste_assiduites_etud",
|
"assiduites.bilan_etud",
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
etudid=justif.etudiant.id,
|
etudid=justif.etudiant.id,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user