Enhanced call validation for log and registration

py3
Sebastian Lohff 7 years ago
parent c4b3b68c9c
commit d9e12e362d

@ -6,7 +6,7 @@ from crispy_forms.layout import Submit
from django.urls import reverse from django.urls import reverse
from .models import User, Reference, QSO from .models import User, Reference, QSO
from .validators import CallUsernameValidator from .validators import CallUsernameValidator, CallLogValidator
class CustomUserCreationForm(UserCreationForm): class CustomUserCreationForm(UserCreationForm):
class Meta: class Meta:
@ -62,7 +62,7 @@ class QSOForm(forms.ModelForm):
raise forms.ValidationError("Reference already exists") raise forms.ValidationError("Reference already exists")
try: try:
CallUsernameValidator()(data) CallLogValidator()(data)
except forms.ValidationError: except forms.ValidationError:
raise forms.ValidationError("Enter a valid callsign (1-2 chars, a number, 1-4 chars, maybe a /[A-Z])") raise forms.ValidationError("Enter a valid callsign (1-2 chars, a number, 1-4 chars, maybe a /[A-Z])")

@ -9,10 +9,20 @@ import re
@deconstructible @deconstructible
class CallUsernameValidator(validators.RegexValidator): class CallUsernameValidator(validators.RegexValidator):
#regex = r'^[\w.@+-]+$' #regex = r'^[\w.@+-]+$'
regex = r'^(?:[A-Z]+/)?[A-Z]{1,2}[0-9][A-Z]{1,4}(?:-[0-9])?(?:/p)?$' regex = r'^(?:[A-Z]+/)?[A-Z]{1,2}[0-9][A-Z]{1,4}(?:-[0-9])??$'
message = _( message = _(
'Enter a valid Callsign as Username, ALL UPPERCASE, if needed with /A /B,' 'Enter a valid Callsign as Username, ALL UPPERCASE, if needed with -1 / -2,'
'e.g. DL7BST, DN1BER/A, DL/OE1FOO' 'e.g. DL7BST, DN1BER-1, DL/OE1FOO.'
)
flags = re.ASCII if six.PY3 else 0
@deconstructible
class CallLogValidator(validators.RegexValidator):
#regex = r'^[\w.@+-]+$'
regex = r'^(?:[A-Z]+/)?[A-Z]{1,2}[0-9][A-Z]{1,4}(?:-[0-9])?(?:/[A-Z]{1,3})?$'
message = _(
'Enter a valid callsign, ALL UPPERCASE, if needed with -1 / -2,'
'e.g. DL7BST, DN1BER-1, DL/OE1FOO, DN1FTW-1/p'
) )
flags = re.ASCII if six.PY3 else 0 flags = re.ASCII if six.PY3 else 0

Loading…
Cancel
Save