X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/f23e8f623a0670883682399799d40abda730ff16..cafe0a541b6349de15c0444bddf9493d8aa71df8:/forum/views/decorators.py?ds=sidebyside
diff --git a/forum/views/decorators.py b/forum/views/decorators.py
index bae9712..a98f1be 100644
--- a/forum/views/decorators.py
+++ b/forum/views/decorators.py
@@ -5,7 +5,7 @@ from django.shortcuts import render_to_response
from django.core.urlresolvers import reverse
from django.template import RequestContext
from django.utils.translation import ungettext, ugettext as _
-from forum.modules import ui
+from forum.modules import ui, decorate
import logging
def render(template=None, tab=None, tab_title='', weight=500, tabbed=True):
@@ -13,6 +13,9 @@ def render(template=None, tab=None, tab_title='', weight=500, tabbed=True):
def decorated(request, *args, **kwargs):
context = func(request, *args, **kwargs)
+ if isinstance(context, HttpResponse):
+ return context
+
if tab is not None:
context['tab'] = tab
@@ -32,6 +35,9 @@ def list(paginate, default_page_size):
def decorated(request, *args, **kwargs):
context = func(request, *args, **kwargs)
+ if isinstance(context, HttpResponse):
+ return context
+
pagesize = request.utils.page_size(default_page_size)
page = int(request.GET.get('page', 1))
@@ -81,35 +87,33 @@ class RefreshPageCommand(HttpResponse):
content=simplejson.dumps({'commands': {'refresh_page': []}, 'success': True}),
mimetype="application/json")
-def command(func):
- def decorated(request, *args, **kwargs):
- try:
- response = func(request, *args, **kwargs)
-
- if isinstance(response, HttpResponse):
- return response
-
- response['success'] = True
- except Exception, e:
- import traceback
- #traceback.print_exc()
-
- if isinstance(e, CommandException):
- response = {
- 'success': False,
- 'error_message': e.message
- }
- else:
- logging.error("%s: %s" % (func.__name__, str(e)))
- logging.error(traceback.format_exc())
- response = {
- 'success': False,
- 'error_message': _("We're sorry, but an unknown error ocurred.
Please try again in a while.")
- }
-
- if request.is_ajax():
- return HttpResponse(simplejson.dumps(response), mimetype="application/json")
+def command(func, request, *args, **kwargs):
+ try:
+ response = func(request, *args, **kwargs)
+
+ if isinstance(response, HttpResponse):
+ return response
+
+ response['success'] = True
+ except Exception, e:
+ import traceback
+ #traceback.print_exc()
+
+ if isinstance(e, CommandException):
+ response = {
+ 'success': False,
+ 'error_message': e.message
+ }
else:
- return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
+ logging.error("%s: %s" % (func.__name__, str(e)))
+ logging.error(traceback.format_exc())
+ response = {
+ 'success': False,
+ 'error_message': _("We're sorry, but an unknown error ocurred.
Please try again in a while.")
+ }
+
+ if request.is_ajax():
+ return HttpResponse(simplejson.dumps(response), mimetype="application/json")
+ else:
+ return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
- return decorated
\ No newline at end of file