This commit is contained in:
Emmanuel Viennet 2022-09-03 09:29:40 +02:00
parent a155655e00
commit d3fd164768
2 changed files with 22 additions and 21 deletions

View File

@ -336,7 +336,11 @@ class TF(object):
msg.append("valeur invalide (%s) pour le champ '%s'" % (val, field)) msg.append("valeur invalide (%s) pour le champ '%s'" % (val, field))
ok = 0 ok = 0
if "validator" in descr: if "validator" in descr:
if not descr["validator"](val, field): try:
valid = descr["validator"](val, field)
except Exception:
valid = False
if not valid:
msg.append("valeur invalide (%s) pour le champ '%s'" % (val, field)) msg.append("valeur invalide (%s) pour le champ '%s'" % (val, field))
ok = 0 ok = 0
elif descr.get("input_type") == "datedmy": elif descr.get("input_type") == "datedmy":

View File

@ -30,6 +30,7 @@ issu de ScoDoc7 / ZScolar.py
Emmanuel Viennet, 2021 Emmanuel Viennet, 2021
""" """
import datetime
import requests import requests
import time import time
@ -69,7 +70,8 @@ from app.scodoc.sco_exceptions import (
ScoException, ScoException,
ScoValueError, ScoValueError,
) )
from app.scodoc.TrivialFormulator import TrivialFormulator, tf_error_message
from app.scodoc.TrivialFormulator import DMY_REGEXP, TrivialFormulator, tf_error_message
from app.scodoc.gen_tables import GenTable from app.scodoc.gen_tables import GenTable
from app.scodoc import html_sco_header from app.scodoc import html_sco_header
from app.scodoc import sco_import_etuds from app.scodoc import sco_import_etuds
@ -1314,10 +1316,16 @@ def _etudident_create_or_edit_form(edit):
submitlabel = "Ajouter cet étudiant" submitlabel = "Ajouter cet étudiant"
H.append( H.append(
"""<h2>Création d'un étudiant</h2> """<h2>Création d'un étudiant</h2>
<p>En général, il est <b>recommandé</b> d'importer les étudiants depuis Apogée. <p class="warning">En général, il est <b>recommandé</b> d'importer les
N'utilisez ce formulaire que <b>pour les cas particuliers</b> ou si votre établissement étudiants depuis Apogée ou via un fichier Excel (menu <b>Inscriptions</b>
n'utilise pas d'autre logiciel de gestion des inscriptions.</p> dans le semestre).
<p><em>L'étudiant créé ne sera pas inscrit. </p>
<p>
N'utilisez ce formulaire au cas par cas que <b>pour les cas particuliers</b>
ou si votre établissement n'utilise pas d'autre logiciel de gestion des
inscriptions.
</p>
<p class"warning"><em>L'étudiant créé ne sera pas inscrit.
Pensez à l'inscrire dans un semestre !</em></p> Pensez à l'inscrire dans un semestre !</em></p>
""" """
) )
@ -1336,17 +1344,6 @@ def _etudident_create_or_edit_form(edit):
initvalues = initvalues[0] initvalues = initvalues[0]
submitlabel = "Modifier les données" submitlabel = "Modifier les données"
# recuperation infos Apogee
# Si on a le code NIP, fait juste une requete, sinon tente de rechercher par nom
# (la recherche par nom ne fonctionne plus à Paris 13)
# XXX A terminer
# code_nip = initvalues.get("code_nip", "")
# if code_nip:
# try:
# infos = sco_portal_apogee.get_etud_apogee(code_nip)
# except ValueError:
# infos = None
# pass # XXX a terminer
vals = scu.get_request_args() vals = scu.get_request_args()
nom = vals.get("nom", None) nom = vals.get("nom", None)
if nom is None: if nom is None:
@ -1363,16 +1360,14 @@ def _etudident_create_or_edit_form(edit):
formatted_infos = [ formatted_infos = [
""" """
<script type="text/javascript"> <script type="text/javascript">
/* <![CDATA[ */
function copy_nip(nip) { function copy_nip(nip) {
document.tf.code_nip.value = nip; document.tf.code_nip.value = nip;
} }
/* ]]> */
</script> </script>
<ol>""" <ol>"""
] ]
nanswers = len(infos) nanswers = len(infos)
nmax = 10 # nb max de reponse montrees nmax = 10 # nb max de reponse montrées
infos = infos[:nmax] infos = infos[:nmax]
for i in infos: for i in infos:
formatted_infos.append("<li><ul>") formatted_infos.append("<li><ul>")
@ -1431,6 +1426,8 @@ def _etudident_create_or_edit_form(edit):
"title": "Date de naissance", "title": "Date de naissance",
"input_type": "date", "input_type": "date",
"explanation": "j/m/a", "explanation": "j/m/a",
"validator": lambda val, _: DMY_REGEXP.match(val)
and (ndb.DateDMYtoISO(val) < datetime.date.today().isoformat()),
}, },
), ),
("lieu_naissance", {"title": "Lieu de naissance", "size": 32}), ("lieu_naissance", {"title": "Lieu de naissance", "size": 32}),
@ -1472,7 +1469,7 @@ def _etudident_create_or_edit_form(edit):
"title": "Année bac", "title": "Année bac",
"type": "int", "type": "int",
"min_value": 1945, "min_value": 1945,
"max_value": 2100, "max_value": datetime.date.today().year + 1,
"explanation": "année obtention du bac", "explanation": "année obtention du bac",
}, },
), ),