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 .models import User, Reference, QSO
from .validators import CallUsernameValidator
from .validators import CallUsernameValidator, CallLogValidator
class CustomUserCreationForm(UserCreationForm):
class Meta:
@ -62,7 +62,7 @@ class QSOForm(forms.ModelForm):
raise forms.ValidationError("Reference already exists")
try:
CallUsernameValidator()(data)
CallLogValidator()(data)
except forms.ValidationError:
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
class CallUsernameValidator(validators.RegexValidator):
#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 = _(
'Enter a valid Callsign as Username, ALL UPPERCASE, if needed with /A /B,'
'e.g. DL7BST, DN1BER/A, DL/OE1FOO'
'Enter a valid Callsign as Username, ALL UPPERCASE, if needed with -1 / -2,'
'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

Loading…
Cancel
Save