diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py index 2c7846f..37173a7 100644 --- a/circle/dashboard/views.py +++ b/circle/dashboard/views.py @@ -632,18 +632,22 @@ class FormOperationMixin(object): form_class = None + def get_form_kwargs(self): + return {} + def get_context_data(self, **kwargs): ctx = super(FormOperationMixin, self).get_context_data(**kwargs) if self.request.method == 'POST': - ctx['form'] = self.form_class(self.request.POST) + ctx['form'] = self.form_class(self.request.POST, + **self.get_form_kwargs()) else: - ctx['form'] = self.form_class() + ctx['form'] = self.form_class(**self.get_form_kwargs()) return ctx def post(self, request, extra=None, *args, **kwargs): if extra is None: extra = {} - form = self.form_class(self.request.POST) + form = self.form_class(self.request.POST, **self.get_form_kwargs()) if form.is_valid(): extra.update(form.cleaned_data) resp = super(FormOperationMixin, self).post( @@ -659,6 +663,14 @@ class FormOperationMixin(object): return self.get(request) +class RequestFormOperationMixin(FormOperationMixin): + + def get_form_kwargs(self): + val = super(FormOperationMixin, self).get_form_kwargs() + val.update({'request': self.request}) + return val + + class VmCreateDiskView(FormOperationMixin, VmOperationView): op = 'create_disk'