diff --git a/helios/view_utils.py b/helios/view_utils.py index 3e3fb5a81461e0616af9b9ac2b937b2196071924..26da7046c50d1f6c8d62e256cd67175f76cf141f 100644 --- a/helios/view_utils.py +++ b/helios/view_utils.py @@ -4,22 +4,16 @@ Utilities for all views Ben Adida (12-30-2008) """ -from django.template import Context, Template, loader -from django.http import HttpResponse, Http404 +from django.conf import settings +from django.http import HttpResponse from django.shortcuts import render_to_response - -import utils - -from helios import datatypes - +from django.template import loader # nicely update the wrapper function from functools import update_wrapper -from helios_auth.security import get_user - import helios - -from django.conf import settings +import utils +from helios_auth.security import get_user ## ## BASICS @@ -33,14 +27,14 @@ FAILURE = HttpResponse("FAILURE") ## ## template abstraction ## -def prepare_vars(request, vars): - vars_with_user = vars.copy() +def prepare_vars(request, values): + vars_with_user = values.copy() if values is not None else {} vars_with_user['user'] = get_user(request) - + # csrf protection if request.session.has_key('csrf_token'): vars_with_user['csrf_token'] = request.session['csrf_token'] - + vars_with_user['utils'] = utils vars_with_user['settings'] = settings vars_with_user['HELIOS_STATIC'] = '/static/helios/helios' @@ -50,32 +44,32 @@ def prepare_vars(request, vars): return vars_with_user -def render_template(request, template_name, vars = {}, include_user=True): - t = loader.get_template(template_name + '.html') - - vars_with_user = prepare_vars(request, vars) - + +def render_template(request, template_name, values = None, include_user=True): + vars_with_user = prepare_vars(request, values) + if not include_user: del vars_with_user['user'] - + return render_to_response('helios/templates/%s.html' % template_name, vars_with_user) - -def render_template_raw(request, template_name, vars={}): + + +def render_template_raw(request, template_name, values=None): t = loader.get_template(template_name) - + # if there's a request, prep the vars, otherwise can't do it. if request: - full_vars = prepare_vars(request, vars) + full_vars = prepare_vars(request, values) else: - full_vars = vars + full_vars = values or {} - c = Context(full_vars) - return t.render(c) + return t.render(context=full_vars, request=request) def render_json(json_txt): return HttpResponse(json_txt, "application/json") + # decorator def return_json(func): """ @@ -92,4 +86,3 @@ def return_json(func): raise e return update_wrapper(convert_to_json,func) - diff --git a/helios_auth/view_utils.py b/helios_auth/view_utils.py index 1355ba450b75ff40c0122b42b860751852225479..6699ab28ab5030b4b8703ea4868f5ef1edd22a14 100644 --- a/helios_auth/view_utils.py +++ b/helios_auth/view_utils.py @@ -4,15 +4,13 @@ Utilities for all views Ben Adida (12-30-2008) """ -from django.template import Context, Template, loader -from django.http import HttpResponse, Http404 +from django.conf import settings +from django.http import HttpResponse from django.shortcuts import render_to_response - -from helios_auth.security import get_user +from django.template import loader import helios_auth - -from django.conf import settings +from helios_auth.security import get_user ## ## BASICS @@ -24,37 +22,37 @@ SUCCESS = HttpResponse("SUCCESS") ## template abstraction ## -def prepare_vars(request, vars): - vars_with_user = vars.copy() - +def prepare_vars(request, values): + vars_with_user = values.copy() + if request: vars_with_user['user'] = get_user(request) vars_with_user['csrf_token'] = request.session['csrf_token'] vars_with_user['SECURE_URL_HOST'] = settings.SECURE_URL_HOST - + vars_with_user['STATIC'] = '/static/auth' vars_with_user['MEDIA_URL'] = '/static/auth/' vars_with_user['TEMPLATE_BASE'] = helios_auth.TEMPLATE_BASE - + vars_with_user['settings'] = settings - + return vars_with_user - -def render_template(request, template_name, vars = {}): - t = loader.get_template(template_name + '.html') - - vars_with_user = prepare_vars(request, vars) - + + +def render_template(request, template_name, values=None): + vars_with_user = prepare_vars(request, values or {}) + return render_to_response('helios_auth/templates/%s.html' % template_name, vars_with_user) -def render_template_raw(request, template_name, vars={}): + +def render_template_raw(request, template_name, values=None): t = loader.get_template(template_name + '.html') - - vars_with_user = prepare_vars(request, vars) - c = Context(vars_with_user) - return t.render(c) + values = values or {} -def render_json(json_txt): - return HttpResponse(json_txt) + vars_with_user = prepare_vars(request, values) + + return t.render(context=vars_with_user, request=request) +def render_json(json_txt): + return HttpResponse(json_txt) diff --git a/server_ui/view_utils.py b/server_ui/view_utils.py index e22fcd5bc6beae9bef9e10eb6accf402b3998b7b..df947214620fc0169b9569767a84e633cd0e7615 100644 --- a/server_ui/view_utils.py +++ b/server_ui/view_utils.py @@ -4,21 +4,17 @@ Utilities for single election views Ben Adida (2009-07-18) """ -from django.template import Context, Template, loader -from django.http import HttpResponse, Http404 +from django.conf import settings from django.shortcuts import render_to_response from helios_auth.security import get_user -from django.conf import settings ## ## template abstraction ## -def render_template(request, template_name, vars = {}): - t = loader.get_template(template_name + '.html') - - vars_with_user = vars.copy() +def render_template(request, template_name, values = None): + vars_with_user = values.copy() if values is not None else {} vars_with_user['user'] = get_user(request) vars_with_user['settings'] = settings vars_with_user['CURRENT_URL'] = request.path