Validate interval and window fields in form

This commit is contained in:
2023-01-14 14:45:19 +00:00
parent fbe5607899
commit dbf581245b
2 changed files with 27 additions and 8 deletions

View File

@@ -4,7 +4,7 @@ from django.core.exceptions import FieldDoesNotExist
from django.forms import ModelForm
from core.db import QueryError
from core.lib.rules import NotificationRuleData
from core.lib.rules import NotificationRuleData, RuleParseError
from .models import NotificationRule, NotificationSettings, User
@@ -106,11 +106,10 @@ class NotificationRuleForm(RestrictedFormMixin, ModelForm):
def clean(self):
cleaned_data = super(NotificationRuleForm, self).clean()
data = cleaned_data.get("data")
try:
parsed_data = NotificationRuleData(self.request.user, data)
except ValueError as e:
self.add_error("data", f"Parsing error: {e}")
parsed_data = NotificationRuleData(self.request.user, cleaned_data)
except RuleParseError as e:
self.add_error(e.field, f"Parsing error: {e}")
return
except QueryError as e:
self.add_error("data", f"Query error: {e}")