# Improves form date checking
* adds validator to make sure no dates like `01.01.1` can be accepted. All dates must be somewhat later than 01.01.1950
This commit is contained in:
@@ -12,6 +12,7 @@ from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from konova.forms.modals.base_form import BaseModalForm
|
||||
from konova.models import AbstractDocument
|
||||
from konova.utils import validators
|
||||
from konova.utils.message_templates import DOCUMENT_EDITED, FILE_SIZE_TOO_LARGE, FILE_TYPE_UNSUPPORTED
|
||||
from user.models import UserActionLogEntry
|
||||
|
||||
@@ -34,6 +35,7 @@ class NewDocumentModalForm(BaseModalForm):
|
||||
label=_("Created on"),
|
||||
label_suffix=_(""),
|
||||
help_text=_("When has this file been created? Important for photos."),
|
||||
validators=[validators.reasonable_date],
|
||||
widget=forms.DateInput(
|
||||
attrs={
|
||||
"type": "date",
|
||||
|
||||
@@ -14,6 +14,7 @@ from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from konova.forms.modals.base_form import BaseModalForm
|
||||
from konova.models import Resubmission
|
||||
from konova.utils import validators
|
||||
|
||||
|
||||
class ResubmissionModalForm(BaseModalForm):
|
||||
@@ -21,6 +22,7 @@ class ResubmissionModalForm(BaseModalForm):
|
||||
label_suffix=_(""),
|
||||
label=_("Date"),
|
||||
help_text=_("When do you want to be reminded?"),
|
||||
validators=[validators.reasonable_date],
|
||||
widget=forms.DateInput(
|
||||
attrs={
|
||||
"type": "date",
|
||||
|
||||
28
konova/utils/validators.py
Normal file
28
konova/utils/validators.py
Normal file
@@ -0,0 +1,28 @@
|
||||
"""
|
||||
Author: Michel Peltriaux
|
||||
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
||||
Contact: ksp-servicestelle@sgdnord.rlp.de
|
||||
Created on: 17.05.23
|
||||
|
||||
"""
|
||||
from datetime import datetime
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
def reasonable_date(value):
|
||||
""" Validator which checks that no dates like "01.01.1" can be entered
|
||||
|
||||
Args:
|
||||
value ():
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
min_date = datetime.fromisoformat("1950-01-01").date()
|
||||
if value < min_date:
|
||||
raise ValidationError(
|
||||
_("This date is unrealistic. Please enter the correct date (>1950)."),
|
||||
params={"value": value},
|
||||
)
|
||||
Reference in New Issue
Block a user