From df304281bafd8050b12ae0415ee1831ba0eef742 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 18 Mar 2022 19:55:46 +0100 Subject: [PATCH] meilleur message d'erreur si chaine trop longue dans un champs --- app/scodoc/TrivialFormulator.py | 7 +++++++ app/scodoc/sco_edit_ue.py | 9 ++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/scodoc/TrivialFormulator.py b/app/scodoc/TrivialFormulator.py index 1cf4ea924..c8acefaf5 100644 --- a/app/scodoc/TrivialFormulator.py +++ b/app/scodoc/TrivialFormulator.py @@ -293,6 +293,13 @@ class TF(object): % (val, field, descr["max_value"]) ) ok = 0 + if ok and (typ[:3] == "str") and "max_length" in descr: + if len(self.values[field]) > descr["max_length"]: + msg.append( + "Le champ '%s' est trop long (max %d caractères)" + % (field, descr["max_length"]) + ) + ok = 0 # allowed values if "allowed_values" in descr: diff --git a/app/scodoc/sco_edit_ue.py b/app/scodoc/sco_edit_ue.py index a91a8b144..f393061d3 100644 --- a/app/scodoc/sco_edit_ue.py +++ b/app/scodoc/sco_edit_ue.py @@ -35,7 +35,7 @@ from flask_login import current_user from app import db from app import log -from app.models import APO_CODE_STR_LEN +from app.models import APO_CODE_STR_LEN, SHORT_STR_LEN from app.models import Formation, UniteEns, ModuleImpl, Module from app.models.formations import Matiere import app.scodoc.notesdb as ndb @@ -372,7 +372,10 @@ def ue_edit(ue_id=None, create=False, formation_id=None, default_semestre_idx=No { "size": 12, "title": "Code UE", - "explanation": "code interne (non vide). Toutes les UE partageant le même code (et le même code de formation) sont compatibles (compensation de semestres, capitalisation d'UE). Voir liste ci-dessous.", + "max_length": SHORT_STR_LEN, + "explanation": """code interne (non vide). Toutes les UE partageant le même code + (et le même code de formation) sont compatibles (compensation de semestres, capitalisation d'UE). + Voir liste ci-dessous.""", }, ), ( @@ -381,7 +384,7 @@ def ue_edit(ue_id=None, create=False, formation_id=None, default_semestre_idx=No "title": "Code Apogée", "size": 25, "explanation": "(optionnel) code élément pédagogique Apogée ou liste de codes ELP séparés par des virgules", - "validator": lambda val, _: len(val) < APO_CODE_STR_LEN, + "max_length": APO_CODE_STR_LEN, }, ), (