forked from ScoDoc/ScoDoc
ajout_justificatif_etud: upload fichiers + corrige permissions
This commit is contained in:
parent
48bce33329
commit
1699febab8
@ -1,6 +1,6 @@
|
||||
# ScoDoc - Gestion de la scolarité - Version ScoDoc 9
|
||||
|
||||
(c) Emmanuel Viennet 1999 - 2022 (voir LICENCE.txt).
|
||||
(c) Emmanuel Viennet 1999 - 2024 (voir LICENCE.txt).
|
||||
|
||||
Installation: voir instructions à jour sur <https://scodoc.org/GuideInstallDebian11>
|
||||
|
||||
|
@ -651,10 +651,11 @@ def justif_import(justif_id: int = None):
|
||||
)
|
||||
@scodoc
|
||||
@login_required
|
||||
@permission_required(Permission.AbsJustifView)
|
||||
@permission_required(Permission.ScoView)
|
||||
def justif_export(justif_id: int | None = None, filename: str | None = None):
|
||||
"""
|
||||
Retourne un fichier d'une archive d'un justificatif
|
||||
Retourne un fichier d'une archive d'un justificatif.
|
||||
La permission est ScoView + (AbsJustifView ou être l'auteur du justifcatif)
|
||||
"""
|
||||
# On récupère le justificatif concerné
|
||||
query: Query = Justificatif.query.filter_by(id=justif_id)
|
||||
@ -662,6 +663,13 @@ def justif_export(justif_id: int | None = None, filename: str | None = None):
|
||||
query = query.join(Identite).filter_by(dept_id=g.scodoc_dept_id)
|
||||
justificatif_unique: Justificatif = query.first_or_404()
|
||||
|
||||
# Vérification des permissions
|
||||
if not (
|
||||
current_user.has_permission(Permission.AbsJustifView)
|
||||
or justificatif_unique.user_id == current_user.id
|
||||
):
|
||||
return json_error(401, "non autorisé à voir ce fichier")
|
||||
|
||||
# On récupère l'archive concernée
|
||||
archive_name: str = justificatif_unique.fichier
|
||||
if archive_name is None:
|
||||
|
@ -423,7 +423,7 @@ class Justificatif(db.Model):
|
||||
)
|
||||
|
||||
db.session.add(nouv_justificatif)
|
||||
|
||||
db.session.commit()
|
||||
log(f"create_justificatif: etudid={etud.id} {nouv_justificatif}")
|
||||
Scolog.logdb(
|
||||
method="create_justificatif",
|
||||
|
@ -3,6 +3,3 @@
|
||||
Conçu et développé sur ScoDoc 7 par Cléo Baras (IUT de Grenoble) pour le DUT.
|
||||
|
||||
Actuellement non opérationnel dans ScoDoc 9.
|
||||
|
||||
|
||||
|
||||
|
@ -131,9 +131,9 @@ class RowAssi(tb.Row):
|
||||
def _get_etud_stats(self, etud: Identite) -> dict[str, list[str, float, float]]:
|
||||
# XXX TODO @iziram commentaire sur la fonction et la var. retour
|
||||
retour: dict[str, tuple[str, float, float]] = {
|
||||
"present": ["Présences", 0.0, 0.0],
|
||||
"retard": ["Retards", 0.0, 0.0],
|
||||
"absent": ["Absences", 0.0, 0.0],
|
||||
"retard": ["Retards", 0.0, 0.0],
|
||||
"present": ["Présences", 0.0, 0.0],
|
||||
}
|
||||
|
||||
assi_metric = scu.translate_assiduites_metric(
|
||||
|
@ -34,7 +34,7 @@ div.submit > input {
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<form id="ajout-justificatif-etud" method="post">
|
||||
<form id="ajout-justificatif-etud" method="post" enctype="multipart/form-data">
|
||||
<fieldset>
|
||||
{{ form.hidden_tag() }}
|
||||
{# Dates et heures #}
|
||||
@ -66,10 +66,10 @@ div.submit > input {
|
||||
{{ render_field_errors(form, 'assi_raison') }}
|
||||
</div>
|
||||
{# Fichier(s) justificatif(s) #}
|
||||
<div><em>chargement fichier désactivé (travaux en cours), passer ensuite par "modifier le justificatif"</em>
|
||||
{# <div>{{ form.fichiers.label }}</div>
|
||||
<div>
|
||||
<div>{{ form.fichiers.label }}</div>
|
||||
{{ form.fichiers() }}
|
||||
{{ render_field_errors(form, 'fichiers') }} #}
|
||||
{{ render_field_errors(form, 'fichiers') }}
|
||||
</div>
|
||||
{# Date dépot #}
|
||||
{{ form.entry_date.label }} : {{ form.entry_date }}
|
||||
|
Loading…
Reference in New Issue
Block a user