forked from ScoDoc/ScoDoc
Fix #361
This commit is contained in:
parent
a155655e00
commit
d3fd164768
@ -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":
|
||||||
|
@ -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",
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
Loading…
Reference in New Issue
Block a user