From bae8f3d8c20b5724abf5ac99776ae582d0a94689 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 15:55:08 -0500 Subject: [PATCH] Adding and making use of the new 404 error page :) --- mediagoblin/app.py | 2 +- mediagoblin/util.py | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 96a7ad61..1a115a22 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -133,7 +133,7 @@ class MediaGoblinApp(object): return request.get_response(redirect)(environ, start_response) # Okay, no matches. 404 time! - return exc.HTTPNotFound()(environ, start_response) + return util.render_404(request)(environ, start_response) controller = util.import_component(route_match['controller']) request.start_response = start_response diff --git a/mediagoblin/util.py b/mediagoblin/util.py index b588fa72..0b6428da 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -348,8 +348,10 @@ def get_locale_from_request(request): accept_lang_matches = request.accept_language.best_matches() # Your routing can explicitly specify a target language - if request.matchdict.has_key('locale'): - target_lang = request.matchdict['locale'] + matchdict = request.matchdict or {} + + if matchdict.has_key('locale'): + target_lang = matchdict['locale'] elif request.session.has_key('target_lang'): target_lang = request.session['target_lang'] # Pull the first acceptable language @@ -662,3 +664,11 @@ def gridify_cursor(this_cursor, num_cols=5): the number of columns in the list """ return gridify_list(list(this_cursor), num_cols) + + +def render_404(request): + """ + Render a 404. + """ + return render_to_response( + request, 'mediagoblin/404.html', {}, status=400) -- 2.25.1