# 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:
2023-05-17 14:08:57 +02:00
parent 67e050764b
commit 9136b89e00
11 changed files with 79 additions and 28 deletions

View File

@@ -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",

View File

@@ -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",

View 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},
)