X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/8fefd8bdaca07a3f5607de79c081dc0f7876fbc7..fa684e7b11bba7f7fce1c0e7832b34d0b8593db4:/apps/ajaxable/utils.py diff --git a/apps/ajaxable/utils.py b/apps/ajaxable/utils.py index ac8d5c6f9..02e87671e 100755 --- a/apps/ajaxable/utils.py +++ b/apps/ajaxable/utils.py @@ -4,7 +4,6 @@ from django.http import (HttpResponse, HttpResponseRedirect, HttpResponseForbidden) from django.shortcuts import render_to_response from django.template import RequestContext -from django.utils.cache import patch_vary_headers from django.utils.encoding import force_unicode from django.utils.functional import Promise from django.utils.http import urlquote_plus @@ -81,8 +80,8 @@ class AjaxableFormView(object): @method_decorator(vary_on_headers('X-Requested-With')) def __call__(self, request, *args, **kwargs): """A view displaying a form, or JSON if request is AJAX.""" - #form_class = placeholdized(self.form_class) if self.placeholdize else self.form_class - form_args, form_kwargs = self.form_args(request, *args, **kwargs) + obj = self.get_object(request, *args, **kwargs) + form_args, form_kwargs = self.form_args(request, obj) if self.form_prefix: form_kwargs['prefix'] = self.form_prefix @@ -124,12 +123,19 @@ class AjaxableFormView(object): form = self.form_class(*form_args, **form_kwargs) response_data = None - template = self.template if request.is_ajax() else self.full_template + title = self.title + if request.is_ajax(): + template = self.template + else: + template = self.full_template + cd = self.context_description(request, obj) + if cd: + title += ": " + cd if self.placeholdize: form = placeholdized(form) context = { self.formname: form, - "title": self.title, + "title": title, "placeholdize": self.placeholdize, "submit": self.submit, "response_data": response_data, @@ -137,18 +143,36 @@ class AjaxableFormView(object): "view_args": args, "view_kwargs": kwargs, } - context.update(self.extra_context()) + context.update(self.extra_context(request, obj)) return render_to_response(template, context, context_instance=RequestContext(request)) - def form_args(self, request, *args, **kwargs): + def redirect_or_refresh(self, request, path, message=None): + """If the form is AJAX, refresh the page. If not, go to `path`.""" + if request.is_ajax(): + output = "" + if message: + output = "