forked from ScoDoc/ScoDoc
Fix: Assiduité: saisie/éditiion date dépôt justif. Fix #852
This commit is contained in:
parent
5446ac0ed2
commit
eefbe70944
@ -102,7 +102,7 @@ class AjoutAssiOrJustForm(FlaskForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
entry_date = StringField(
|
entry_date = StringField(
|
||||||
"Date de dépot ou saisie",
|
"Date de dépôt ou saisie",
|
||||||
validators=[validators.Length(max=10)],
|
validators=[validators.Length(max=10)],
|
||||||
render_kw={
|
render_kw={
|
||||||
"class": "datepicker",
|
"class": "datepicker",
|
||||||
@ -110,6 +110,16 @@ class AjoutAssiOrJustForm(FlaskForm):
|
|||||||
"id": "entry_date",
|
"id": "entry_date",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
entry_time = StringField(
|
||||||
|
"Heure dépôt",
|
||||||
|
default="",
|
||||||
|
validators=[validators.Length(max=5)],
|
||||||
|
render_kw={
|
||||||
|
"class": "timepicker",
|
||||||
|
"size": 5,
|
||||||
|
"id": "assi_heure_fin",
|
||||||
|
},
|
||||||
|
)
|
||||||
submit = SubmitField("Enregistrer")
|
submit = SubmitField("Enregistrer")
|
||||||
cancel = SubmitField("Annuler", render_kw={"formnovalidate": True})
|
cancel = SubmitField("Annuler", render_kw={"formnovalidate": True})
|
||||||
|
|
||||||
|
@ -418,7 +418,7 @@ class Justificatif(ScoDocModel):
|
|||||||
|
|
||||||
entry_date = db.Column(db.DateTime(timezone=True), server_default=db.func.now())
|
entry_date = db.Column(db.DateTime(timezone=True), server_default=db.func.now())
|
||||||
"date de création de l'élément: date de saisie"
|
"date de création de l'élément: date de saisie"
|
||||||
# pourrait devenir date de dépot au secrétariat, si différente
|
# pourrait devenir date de dépôt au secrétariat, si différente
|
||||||
|
|
||||||
user_id = db.Column(
|
user_id = db.Column(
|
||||||
db.Integer,
|
db.Integer,
|
||||||
|
@ -19,7 +19,7 @@ class Trace:
|
|||||||
"""gestionnaire de la trace des fichiers justificatifs
|
"""gestionnaire de la trace des fichiers justificatifs
|
||||||
|
|
||||||
Role des fichiers traces :
|
Role des fichiers traces :
|
||||||
- Sauvegarder la date de dépot du fichier
|
- Sauvegarder la date de dépôt du fichier
|
||||||
- Sauvegarder la date de suppression du fichier (dans le cas de plusieurs fichiers pour un même justif)
|
- Sauvegarder la date de suppression du fichier (dans le cas de plusieurs fichiers pour un même justif)
|
||||||
- Sauvegarder l'user_id de l'utilisateur ayant déposé le fichier (=> permet de montrer les fichiers qu'aux personnes qui l'on déposé / qui ont le rôle AssiJustifView)
|
- Sauvegarder l'user_id de l'utilisateur ayant déposé le fichier (=> permet de montrer les fichiers qu'aux personnes qui l'on déposé / qui ont le rôle AssiJustifView)
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ class JustificatifArchiver(BaseArchiver):
|
|||||||
|
|
||||||
TOTALK:
|
TOTALK:
|
||||||
- oid -> etudid
|
- oid -> etudid
|
||||||
- archive_id -> date de création de l'archive (une archive par dépot de document)
|
- archive_id -> date de création de l'archive (une archive par dépôt de document)
|
||||||
|
|
||||||
justificatif
|
justificatif
|
||||||
└── <dept_id>
|
└── <dept_id>
|
||||||
|
@ -100,7 +100,7 @@ div.submit > input {
|
|||||||
{{ form.description() }}
|
{{ form.description() }}
|
||||||
{{ render_field_errors(form, 'description') }}
|
{{ render_field_errors(form, 'description') }}
|
||||||
</div>
|
</div>
|
||||||
{# Date dépot #}
|
{# Date dépôt #}
|
||||||
{{ form.entry_date.label }} : {{ form.entry_date }}
|
{{ form.entry_date.label }} : {{ form.entry_date }}
|
||||||
<span class="help">laisser vide pour date courante</span>
|
<span class="help">laisser vide pour date courante</span>
|
||||||
{{ render_field_errors(form, 'entry_date') }}
|
{{ render_field_errors(form, 'entry_date') }}
|
||||||
|
@ -123,9 +123,9 @@ div.submit > input {
|
|||||||
{{ render_field_errors(form, 'fichiers') }}
|
{{ render_field_errors(form, 'fichiers') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{# Date dépot #}
|
{# Date dépôt #}
|
||||||
{{ form.entry_date.label }} : {{ form.entry_date }}
|
{{ form.entry_date.label }} : {{ form.entry_date }} à {{ form.entry_time }}
|
||||||
<span class="help">laisser vide pour date courante</span>
|
<span class="help" style="margin-left: 12px;">laisser vide pour date courante</span>
|
||||||
{{ render_field_errors(form, 'entry_date') }}
|
{{ render_field_errors(form, 'entry_date') }}
|
||||||
|
|
||||||
{# Submit #}
|
{# Submit #}
|
||||||
|
@ -334,7 +334,7 @@ def _get_dates_from_assi_form(
|
|||||||
dt_fin = datetime.datetime.combine(date_fin or date_debut, heure_fin)
|
dt_fin = datetime.datetime.combine(date_fin or date_debut, heure_fin)
|
||||||
if dt_fin <= dt_debut:
|
if dt_fin <= dt_debut:
|
||||||
form.set_error("dates début/fin incohérentes")
|
form.set_error("dates début/fin incohérentes")
|
||||||
# La date de dépot (si vide, la date actuelle)
|
# La date de dépôt (si vide, la date actuelle)
|
||||||
try:
|
try:
|
||||||
dt_entry_date = (
|
dt_entry_date = (
|
||||||
datetime.datetime.strptime(form.entry_date.data, "%d/%m/%Y")
|
datetime.datetime.strptime(form.entry_date.data, "%d/%m/%Y")
|
||||||
@ -344,7 +344,16 @@ def _get_dates_from_assi_form(
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
dt_entry_date = None
|
dt_entry_date = None
|
||||||
form.set_error("format de date de dépôt invalide", form.entry_date)
|
form.set_error("format de date de dépôt invalide", form.entry_date)
|
||||||
|
# L'heure de dépôt
|
||||||
|
try:
|
||||||
|
entry_time = datetime.time.fromisoformat(
|
||||||
|
form.entry_time.data or datetime.datetime.now().time().isoformat("seconds")
|
||||||
|
)
|
||||||
|
except ValueError:
|
||||||
|
dt_entry_date = None
|
||||||
|
form.set_error("format d'heure de dépôt invalide", form.entry_date)
|
||||||
|
if dt_entry_date:
|
||||||
|
dt_entry_date = datetime.datetime.combine(dt_entry_date, entry_time)
|
||||||
# Ajoute time zone serveur
|
# Ajoute time zone serveur
|
||||||
dt_debut_tz_server = scu.TIME_ZONE.localize(dt_debut)
|
dt_debut_tz_server = scu.TIME_ZONE.localize(dt_debut)
|
||||||
dt_fin_tz_server = scu.TIME_ZONE.localize(dt_fin)
|
dt_fin_tz_server = scu.TIME_ZONE.localize(dt_fin)
|
||||||
@ -576,6 +585,9 @@ def edit_justificatif_etud(justif_id: int):
|
|||||||
form.entry_date.data = (
|
form.entry_date.data = (
|
||||||
justif.entry_date.strftime("%d/%m/%Y") if justif.entry_date else ""
|
justif.entry_date.strftime("%d/%m/%Y") if justif.entry_date else ""
|
||||||
)
|
)
|
||||||
|
form.entry_time.data = (
|
||||||
|
justif.entry_date.strftime("%H:%M") if justif.entry_date else ""
|
||||||
|
)
|
||||||
form.etat.data = str(justif.etat)
|
form.etat.data = str(justif.etat)
|
||||||
|
|
||||||
redirect_url = url_for(
|
redirect_url = url_for(
|
||||||
|
Loading…
Reference in New Issue
Block a user