3
from django import shortcuts
5
from google.appengine.api import users
9
def respond(request, template, params=None):
10
"""Helper to render a response.
12
This function assumes that the user is logged in.
15
request: The request object
16
template: The template name; '.html' is appended automatically.
17
params: A dict giving the template parameters; modified in-place.
20
Whatever render_to_response(template, params) returns.
23
Whatever render_to_response(template, params) raises.
30
params['user'] = request.user
31
params['sign_out'] = users.CreateLogoutURL('/')
32
params['is_admin'] = users.is_current_user_admin()
34
params['sign_in'] = users.CreateLoginURL(request.path)
36
if hasattr(request, 'profile') and request.profile is not None:
37
profile = request.profile
38
params['sidebar'] = models.Sidebar.render(profile)
39
params['is_superuser'] = profile.is_superuser
41
params['is_superuser'] = False
42
params['sidebar'] = models.Sidebar.render(None)
44
params['configuration'] = configuration
46
if not template.endswith('.html'):
49
return shortcuts.render_to_response(template, params)
52
def page_not_found(request, error_message=None):
53
"""Returns a 404 response based on a template.
56
request: the http request that was forbidden
57
error_message: a message to display that will override the default message
60
A http response with the status code of 404
62
response = respond(request, '404', {'error_message': error_message})
63
response.status_code = 404