aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rrs/admin.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/rrs/admin.py b/rrs/admin.py
index 682a5a6c04..8176b8ad95 100644
--- a/rrs/admin.py
+++ b/rrs/admin.py
@@ -8,6 +8,7 @@ from django.utils.functional import curry
from django.contrib import admin
from django.contrib.admin import DateFieldListFilter
+from django import forms
from django.forms.models import BaseInlineFormSet
from django.core.exceptions import ValidationError
@@ -72,8 +73,33 @@ class MaintenancePlanLayerBranchInline(admin.StackedInline):
min_num = 1
extra = 0
+class MaintenancePlanAdminForm(forms.ModelForm):
+ model = MaintenancePlan
+
+ def clean_email_to(self):
+ val = self.cleaned_data['email_to']
+ if self.cleaned_data['email_enabled']:
+ if not val:
+ raise ValidationError('To email address must be specified if emails are enabled')
+ return val
+
+ def clean_email_from(self):
+ val = self.cleaned_data['email_from']
+ if self.cleaned_data['email_enabled']:
+ if not val:
+ raise ValidationError('From email address must be specified if emails are enabled')
+ return val
+
+ def clean_email_subject(self):
+ val = self.cleaned_data['email_subject']
+ if self.cleaned_data['email_enabled']:
+ if not val:
+ raise ValidationError('Email subject must be specified if emails are enabled')
+ return val
+
class MaintenancePlanAdmin(admin.ModelAdmin):
model = MaintenancePlan
+ form = MaintenancePlanAdminForm
inlines = [
MaintenancePlanLayerBranchInline,
]