diff --git a/README.md b/README.md
index d0194b45e849fc28419bdeed6a042ecb2522e0dd..b17799fee6b1c4508b3758fe39f1293a257250da 100644
--- a/README.md
+++ b/README.md
@@ -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>
diff --git a/app/api/justificatifs.py b/app/api/justificatifs.py
index d0b10ec46a0d6592d12791a1150ea6ddd286dd6e..fd71effbd77bb8c56486d24a2bca5b7ec5d0804b 100644
--- a/app/api/justificatifs.py
+++ b/app/api/justificatifs.py
@@ -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:
diff --git a/app/models/assiduites.py b/app/models/assiduites.py
index 85b0fe335cd8b6f02c75f0e77c3c042528e80f90..7e9ab274c4dd12ca17cfd4f1542b9b5353a8f355 100644
--- a/app/models/assiduites.py
+++ b/app/models/assiduites.py
@@ -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",
diff --git a/app/pe/README.md b/app/pe/README.md
index bace3081b3bab7fabf4d661fa6e83e06bbc80da8..b71bc863ae560eb59fbaac8cefdec7d309a8c55b 100644
--- a/app/pe/README.md
+++ b/app/pe/README.md
@@ -1,8 +1,5 @@
-# Module "Avis de poursuite d'étude"
+# Module "Avis de poursuite d'étude"
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.
-
-
-
diff --git a/app/tables/visu_assiduites.py b/app/tables/visu_assiduites.py
index 07fb7dec7336590a6c22eb2ec14611abd4d874e5..304ab405e7fda426b9afbdf0e26af68064d5437a 100644
--- a/app/tables/visu_assiduites.py
+++ b/app/tables/visu_assiduites.py
@@ -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(
diff --git a/app/templates/assiduites/pages/ajout_justificatif_etud.j2 b/app/templates/assiduites/pages/ajout_justificatif_etud.j2
index 007ded7ca8edbd47578aada02d9cf3f40de18148..4d28e6287e858c0e0fddb7969d83413d6d552802 100644
--- a/app/templates/assiduites/pages/ajout_justificatif_etud.j2
+++ b/app/templates/assiduites/pages/ajout_justificatif_etud.j2
@@ -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 }}