X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/7ef4abfc9ef8f8835f83cec90040a8d91a659d00..0e79f07515678e3e678c3637124a27cb81ee8a94:/apps/ajaxable/utils.py?ds=inline diff --git a/apps/ajaxable/utils.py b/apps/ajaxable/utils.py index 4ae6e869e..89b56228d 100755 --- a/apps/ajaxable/utils.py +++ b/apps/ajaxable/utils.py @@ -1,3 +1,7 @@ +# -*- coding: utf-8 -*- +# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# from functools import wraps from django.http import (HttpResponse, HttpResponseRedirect, @@ -7,28 +11,18 @@ 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) return obj -# shortcut for JSON reponses -class JSONResponse(HttpResponse): - def __init__(self, data={}, callback=None, **kwargs): - # get rid of mimetype - kwargs.pop('mimetype', None) - data = simplejson.dumps(data) - if callback: - data = callback + "(" + data + ");" - super(JSONResponse, self).__init__(data, mimetype="application/json", **kwargs) - def method_decorator(function_decorator): """Converts a function decorator to a method decorator. @@ -70,7 +64,7 @@ class AjaxableFormView(object): # override to customize form look template = "ajaxable/form.html" submit = _('Send') - + title = '' success_message = '' POST_login = False @@ -102,7 +96,7 @@ class AjaxableFormView(object): if form.is_valid(): add_args = self.success(form, request) response_data = { - 'success': True, + 'success': True, 'message': self.success_message, 'redirect': request.GET.get('next') } @@ -143,7 +137,7 @@ class AjaxableFormView(object): if self.placeholdize: form = placeholdized(form) context = { - self.formname: form, + self.formname: form, "title": title, "honeypot": self.honeypot, "placeholdize": self.placeholdize, @@ -158,12 +152,12 @@ class AjaxableFormView(object): context_instance=RequestContext(request)) def redirect_or_refresh(self, request, path, message=None): - """If the form is AJAX, refresh the page. If not, go to `path`.""" + """If the form is AJAX, refresh the page. If not, go to `path`.""" if request.is_ajax(): output = "" if message: output = "
" + message + "
" + output - return HttpResponse(output); + return HttpResponse(output) else: return HttpResponseRedirect(path) @@ -185,7 +179,7 @@ class AjaxableFormView(object): def success(self, form, request): """What to do when the form is valid. - + By default, just save the form. """