X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/cf21ebb1502a1f5b7dfc285b9f9e3af4ede3e993..a1e5a5980a2354b855e79479701c5198884f7d5f:/apps/ajaxable/utils.py?ds=inline diff --git a/apps/ajaxable/utils.py b/apps/ajaxable/utils.py index 52cf63833..2f03309f1 100755 --- a/apps/ajaxable/utils.py +++ b/apps/ajaxable/utils.py @@ -7,13 +7,13 @@ from django.template import RequestContext from django.utils.encoding import force_unicode from django.utils.functional import Promise from django.utils.http import urlquote_plus -from django.utils import simplejson +import json from django.utils.translation import ugettext_lazy as _ from django.views.decorators.vary import vary_on_headers from honeypot.decorators import verify_honeypot_value -class LazyEncoder(simplejson.JSONEncoder): +class LazyEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, Promise): return force_unicode(obj) @@ -24,7 +24,7 @@ class JSONResponse(HttpResponse): def __init__(self, data={}, callback=None, **kwargs): # get rid of mimetype kwargs.pop('mimetype', None) - data = simplejson.dumps(data) + data = json.dumps(data) if callback: data = callback + "(" + data + ");" super(JSONResponse, self).__init__(data, mimetype="application/json", **kwargs) @@ -101,14 +101,16 @@ class AjaxableFormView(object): form = self.form_class(*form_args, **form_kwargs) if form.is_valid(): add_args = self.success(form, request) - redirect = request.GET.get('next') - if not request.is_ajax() and redirect: - return HttpResponseRedirect(urlquote_plus( - redirect, safe='/?=&')) - response_data = {'success': True, - 'message': self.success_message, 'redirect': redirect} + response_data = { + 'success': True, + 'message': self.success_message, + 'redirect': request.GET.get('next') + } if add_args: response_data.update(add_args) + if not request.is_ajax() and response_data['redirect']: + return HttpResponseRedirect(urlquote_plus( + response_data['redirect'], safe='/?=&')) elif request.is_ajax(): # Form was sent with errors. Send them back. if self.form_prefix: