Commit 9ad1c308 authored by Hamza Dely's avatar Hamza Dely
Browse files

[comptes/models] Déplacement des validateurs dans un module séparé

parent 4ec3d61f
......@@ -11,7 +11,6 @@ from django.db.models.signals import post_delete
from django.contrib.auth import get_backends
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
from django.core.mail import send_mail
from django.core.validators import RegexValidator
from django.core.exceptions import ValidationError, PermissionDenied
from django.template import loader
from django.urls import reverse
......@@ -21,14 +20,7 @@ from note_kfet import droits as m_droits
from note_kfet.utils import CumulativeDict
from note_kfet.environnement import ACCREDITATIONS_DEFAUT
## Regex utilisées pour la vérification des champs de modèles
PSEUDO_REGEX = r"^(\S|\S+.*\S+)$" # Pas de leading/trailing spaces
# XXX : Limiter aussi le nombre maximal d'espaces consécutifs dans le pseudo ?
# |---> r"(\S|\S+(\S|\s{,n})*\S+)", avec n bien choisi ?
DELETED_REGEX = r"^__deleted__[0-9]+$" # Les pseudos en '__deleted__[0-9]+' sont réservés
ID_REGEX = r'^#[0-9]+$' # Les pseudos en '#<nombre>' sont réservés à l'identification via ID BdE
TELEPHONE_REGEX = r"^[0-9 -]+$"
from comptes import validators
class Section(models.Model):
"""
......@@ -73,9 +65,9 @@ class Alias(models.Model):
blank=False,
null=False,
validators=[
RegexValidator(DELETED_REGEX, inverse_match=True),
RegexValidator(ID_REGEX, inverse_match=True),
RegexValidator(PSEUDO_REGEX),
validators.DeletedValidator(inverse_match=True),
validators.IDValidator(inverse_match=True),
validators.PseudoValidator(),
]
)
proprietaire = models.ForeignKey(
......@@ -505,8 +497,8 @@ class Adherent(AbstractBaseUser):
blank=False,
null=False,
validators=[
RegexValidator(ID_REGEX, inverse_match=True),
RegexValidator(PSEUDO_REGEX),
validators.IDValidator(inverse_match=True),
validators.PseudoValidator(),
],
)
nom = models.CharField(
......@@ -550,7 +542,7 @@ class Adherent(AbstractBaseUser):
max_length=50,
blank=True,
null=False,
validators=[RegexValidator(TELEPHONE_REGEX)],
validators=[validators.TelephoneValidator()],
)
adresse = models.TextField(
blank=True,
......
"""
Validateurs utilisés par les modèles de l'application Comptes
"""
from django.core.validators import RegexValidator
## Regex utilisées pour la vérification des champs de modèles
PSEUDO_REGEX = r"^(\S|\S+.*\S+)$" # Pas de leading/trailing spaces
# XXX : Limiter aussi le nombre maximal d'espaces consécutifs dans le pseudo ?
# |---> r"(\S|\S+(\S|\s{,n})*\S+)", avec n bien choisi ?
DELETED_REGEX = r"^__deleted__[0-9]+$" # Les pseudos en '__deleted__[0-9]+' sont réservés
ID_REGEX = r'^#[0-9]+$' # Les pseudos en '#<nombre>' sont réservés à l'identification via ID BdE
TELEPHONE_REGEX = r"^[0-9 -]+$"
class PseudoValidator(RegexValidator):
regex = PSEUDO_REGEX
class DeletedValidator(RegexValidator):
regex = DELETED_REGEX
class IDValidator(RegexValidator):
regex = ID_REGEX
class TelephoneValidator(RegexValidator):
regex = TELEPHONE_REGEX
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment