forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -1,6 +1,6 @@
|
|||||||
# ScoDoc - Gestion de la scolarité - Version ScoDoc 9
|
# 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>
|
Installation: voir instructions à jour sur <https://scodoc.org/GuideInstallDebian11>
|
||||||
|
|
||||||
|
@ -651,10 +651,11 @@ def justif_import(justif_id: int = None):
|
|||||||
)
|
)
|
||||||
@scodoc
|
@scodoc
|
||||||
@login_required
|
@login_required
|
||||||
@permission_required(Permission.AbsJustifView)
|
@permission_required(Permission.ScoView)
|
||||||
def justif_export(justif_id: int | None = None, filename: str | None = None):
|
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é
|
# On récupère le justificatif concerné
|
||||||
query: Query = Justificatif.query.filter_by(id=justif_id)
|
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)
|
query = query.join(Identite).filter_by(dept_id=g.scodoc_dept_id)
|
||||||
justificatif_unique: Justificatif = query.first_or_404()
|
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
|
# On récupère l'archive concernée
|
||||||
archive_name: str = justificatif_unique.fichier
|
archive_name: str = justificatif_unique.fichier
|
||||||
if archive_name is None:
|
if archive_name is None:
|
||||||
|
@ -423,7 +423,7 @@ class Justificatif(db.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
db.session.add(nouv_justificatif)
|
db.session.add(nouv_justificatif)
|
||||||
|
db.session.commit()
|
||||||
log(f"create_justificatif: etudid={etud.id} {nouv_justificatif}")
|
log(f"create_justificatif: etudid={etud.id} {nouv_justificatif}")
|
||||||
Scolog.logdb(
|
Scolog.logdb(
|
||||||
method="create_justificatif",
|
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.
|
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.
|
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]]:
|
def _get_etud_stats(self, etud: Identite) -> dict[str, list[str, float, float]]:
|
||||||
# XXX TODO @iziram commentaire sur la fonction et la var. retour
|
# XXX TODO @iziram commentaire sur la fonction et la var. retour
|
||||||
retour: dict[str, tuple[str, float, float]] = {
|
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],
|
"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(
|
assi_metric = scu.translate_assiduites_metric(
|
||||||
|
@ -34,7 +34,7 @@ div.submit > input {
|
|||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<form id="ajout-justificatif-etud" method="post">
|
<form id="ajout-justificatif-etud" method="post" enctype="multipart/form-data">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
{{ form.hidden_tag() }}
|
{{ form.hidden_tag() }}
|
||||||
{# Dates et heures #}
|
{# Dates et heures #}
|
||||||
@ -66,10 +66,10 @@ div.submit > input {
|
|||||||
{{ render_field_errors(form, 'assi_raison') }}
|
{{ render_field_errors(form, 'assi_raison') }}
|
||||||
</div>
|
</div>
|
||||||
{# Fichier(s) justificatif(s) #}
|
{# Fichier(s) justificatif(s) #}
|
||||||
<div><em>chargement fichier désactivé (travaux en cours), passer ensuite par "modifier le justificatif"</em>
|
<div>
|
||||||
{# <div>{{ form.fichiers.label }}</div>
|
<div>{{ form.fichiers.label }}</div>
|
||||||
{{ form.fichiers() }}
|
{{ form.fichiers() }}
|
||||||
{{ render_field_errors(form, 'fichiers') }} #}
|
{{ render_field_errors(form, 'fichiers') }}
|
||||||
</div>
|
</div>
|
||||||
{# Date dépot #}
|
{# Date dépot #}
|
||||||
{{ form.entry_date.label }} : {{ form.entry_date }}
|
{{ form.entry_date.label }} : {{ form.entry_date }}
|
||||||
|
Loading…
Reference in New Issue
Block a user