reservation model: validate slice when form is refreshed
diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index 656ca42..0329cd6 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -498,10 +498,16 @@
redrawn.
"""
- """ don't validate anything """
+ """ don't validate anything other than slice """
+ dont_validate_fields = ("startTime", "duration")
+
def full_clean(self):
result = super(ReservationAddForm, self).full_clean()
- self._errors = forms.util.ErrorDict()
+
+ for fieldname in self.dont_validate_fields:
+ if fieldname in self._errors:
+ del self._errors[fieldname]
+
return result
""" don't save anything """
@@ -517,9 +523,14 @@
request._refresh = False
request._slice = None
if request.method == 'POST':
+ # "refresh" will be set to "1" if the form was submitted due to
+ # a change in the Slice dropdown.
if request.POST.get("refresh","1") == "1":
request._refresh = True
request.POST["refresh"] = "0"
+
+ # Keep track of the slice that was selected, so the
+ # reservedResource inline can filter items for the slice.
request._slice = request.POST.get("slice",None)
if (request._slice is not None):
request._slice = Slice.objects.get(id=request._slice)
@@ -530,6 +541,8 @@
def get_form(self, request, obj=None, **kwargs):
request._obj_ = obj
if obj is not None:
+ # For changes, set request._slice to the slice already set in the
+ # object.
request._slice = obj.slice
self.form = ReservationChangeForm
else: