From 7fc1db9d19e9c4c95746bfb98eb4c97c8dccc378 Mon Sep 17 00:00:00 2001 From: Nicholas Staples Date: Tue, 2 Feb 2016 16:50:13 +0000 Subject: [PATCH] Update error handlers to include appropriate headers. --- app/__init__.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 3ffd6e073..7e34c6c64 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -3,7 +3,7 @@ import re import ast import dateutil -from flask import Flask, session, Markup, escape, render_template +from flask import (Flask, session, Markup, escape, render_template, make_response) from flask._compat import string_types from flask.ext.sqlalchemy import SQLAlchemy from flask_login import LoginManager @@ -160,7 +160,7 @@ def useful_headers_after_request(response): if 'Cache-Control' in response.headers: del response.headers['Cache-Control'] response.headers.add( - 'Cache-Control', 'no-store, max-age=43200, no-cache, private, must-revalidate') + 'Cache-Control', 'no-store, no-cache, private, must-revalidate') return response @@ -168,16 +168,19 @@ def register_errorhandlers(application): def render_error(error): # If a HTTPException, pull the `code` attribute; default to 500 error_code = getattr(error, 'code', 500) - return render_template("error/{0}.html".format(error_code)), error_code + resp = make_response(render_template("error/{0}.html".format(error_code)), error_code) + return useful_headers_after_request(resp) for errcode in [401, 404, 500]: application.errorhandler(errcode)(render_error) def get_app_version(): - _version_re = re.compile(r'__version__\s+=\s+(.*)') - version = 'n/a' - dir_path = os.path.dirname(os.path.abspath(__file__)) - with open(os.path.join(dir_path, 'version.py'), 'rb') as f: - version = str(ast.literal_eval(_version_re.search( - f.read().decode('utf-8')).group(1))) - return version + build = 'n/a' + build_time = "n/a" + try: + from app import version + build = version.__build__ + build_time = version.__time__ + except: + pass + return build, build_time