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

[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 ...@@ -11,7 +11,6 @@ from django.db.models.signals import post_delete
from django.contrib.auth import get_backends from django.contrib.auth import get_backends
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
from django.core.mail import send_mail from django.core.mail import send_mail
from django.core.validators import RegexValidator
from django.core.exceptions import ValidationError, PermissionDenied from django.core.exceptions import ValidationError, PermissionDenied
from django.template import loader from django.template import loader
from django.urls import reverse from django.urls import reverse
...@@ -21,14 +20,7 @@ from note_kfet import droits as m_droits ...@@ -21,14 +20,7 @@ from note_kfet import droits as m_droits
from note_kfet.utils import CumulativeDict from note_kfet.utils import CumulativeDict
from note_kfet.environnement import ACCREDITATIONS_DEFAUT from note_kfet.environnement import ACCREDITATIONS_DEFAUT
## Regex utilisées pour la vérification des champs de modèles from comptes import validators
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 Section(models.Model): class Section(models.Model):
""" """
...@@ -73,9 +65,9 @@ class Alias(models.Model): ...@@ -73,9 +65,9 @@ class Alias(models.Model):
blank=False, blank=False,
null=False, null=False,
validators=[ validators=[
RegexValidator(DELETED_REGEX, inverse_match=True), validators.DeletedValidator(inverse_match=True),
RegexValidator(ID_REGEX, inverse_match=True), validators.IDValidator(inverse_match=True),
RegexValidator(PSEUDO_REGEX), validators.PseudoValidator(),
] ]
) )
proprietaire = models.ForeignKey( proprietaire = models.ForeignKey(
...@@ -505,8 +497,8 @@ class Adherent(AbstractBaseUser): ...@@ -505,8 +497,8 @@ class Adherent(AbstractBaseUser):
blank=False, blank=False,
null=False, null=False,
validators=[ validators=[
RegexValidator(ID_REGEX, inverse_match=True), validators.IDValidator(inverse_match=True),
RegexValidator(PSEUDO_REGEX), validators.PseudoValidator(),
], ],
) )
nom = models.CharField( nom = models.CharField(
...@@ -550,7 +542,7 @@ class Adherent(AbstractBaseUser): ...@@ -550,7 +542,7 @@ class Adherent(AbstractBaseUser):
max_length=50, max_length=50,
blank=True, blank=True,
null=False, null=False,
validators=[RegexValidator(TELEPHONE_REGEX)], validators=[validators.TelephoneValidator()],
) )
adresse = models.TextField( adresse = models.TextField(
blank=True, 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