From 34092d490edabebf254327fc2d97ff5281c7bb9f Mon Sep 17 00:00:00 2001 From: Andrew Hosgood Date: Wed, 20 Dec 2023 12:51:08 +0000 Subject: [PATCH] Final platform config --- .platform/routes.yaml | 1 - app/__init__.py | 4 ++-- app/lib/__init__.py | 1 + app/lib/cache_key_prefix.py | 6 ++++++ app/search/routes.py | 15 +++++---------- app/templates/base.html | 2 +- app/wagtail/api.py | 4 +++- app/wagtail/routes.py | 13 ++++--------- 8 files changed, 22 insertions(+), 24 deletions(-) create mode 100644 app/lib/cache_key_prefix.py diff --git a/.platform/routes.yaml b/.platform/routes.yaml index 58e2f0eb..e7a44d8f 100644 --- a/.platform/routes.yaml +++ b/.platform/routes.yaml @@ -1,7 +1,6 @@ "https://{default}/": type: upstream upstream: app:http - # "https://{default}/media": # type: redirect # to: "https://develop-sr3snxi-rasrzs7pi6sd4.uk-1.platformsh.site/media" diff --git a/app/__init__.py b/app/__init__.py index c44f72a6..d088468d 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,5 +1,5 @@ -import re import logging +import re from datetime import datetime from app.lib import cache @@ -13,7 +13,7 @@ def create_app(config_class=Config): app = Flask(__name__, static_url_path="/static") app.config.from_object(config_class) - gunicorn_error_logger = logging.getLogger('gunicorn.error') + gunicorn_error_logger = logging.getLogger("gunicorn.error") app.logger.handlers.extend(gunicorn_error_logger.handlers) app.logger.setLevel(gunicorn_error_logger.level) diff --git a/app/lib/__init__.py b/app/lib/__init__.py index 57e70fa9..f7e69794 100644 --- a/app/lib/__init__.py +++ b/app/lib/__init__.py @@ -1,2 +1,3 @@ from .cache import cache +from .cache_key_prefix import cache_key_prefix from .pagination_list import pagination_list diff --git a/app/lib/cache_key_prefix.py b/app/lib/cache_key_prefix.py new file mode 100644 index 00000000..46730c9c --- /dev/null +++ b/app/lib/cache_key_prefix.py @@ -0,0 +1,6 @@ +from flask import request + + +def cache_key_prefix(): + """Make a key that includes GET parameters.""" + return request.full_path diff --git a/app/search/routes.py b/app/search/routes.py index 3ccd704b..beb3a20c 100644 --- a/app/search/routes.py +++ b/app/search/routes.py @@ -1,15 +1,10 @@ -from app.lib import cache +from app.lib import cache, cache_key_prefix from app.search import bp from flask import render_template, request -def make_cache_key_prefix(): - """Make a key that includes GET parameters.""" - return request.full_path - - @bp.route("/") -@cache.cached(key_prefix=make_cache_key_prefix) +@cache.cached(key_prefix=cache_key_prefix) def index(): query = request.args["q"] if "q" in request.args else "" return render_template( @@ -19,7 +14,7 @@ def index(): @bp.route("/featured/") -@cache.cached(key_prefix=make_cache_key_prefix) +@cache.cached(key_prefix=cache_key_prefix) def featured(): query = request.args["q"] if "q" in request.args else "" return render_template( @@ -29,7 +24,7 @@ def featured(): @bp.route("/catalogue/") -@cache.cached(key_prefix=make_cache_key_prefix) +@cache.cached(key_prefix=cache_key_prefix) def catalogue(): query = request.args["q"] if "q" in request.args else "" return render_template( @@ -38,7 +33,7 @@ def catalogue(): @bp.route("/website/") -@cache.cached(key_prefix=make_cache_key_prefix) +@cache.cached(key_prefix=cache_key_prefix) def website(): query = request.args["q"] if "q" in request.args else "" return render_template( diff --git a/app/templates/base.html b/app/templates/base.html index 3f5bdf23..937f6535 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -60,7 +60,7 @@ }, 'exit': { 'text': 'See this page on the Wagtail site', - 'href': 'https://feature-headless-4batnpq-rasrzs7pi6sd4.uk-1.platformsh.site' + request.path, + 'href': 'https://feature-headless-4batnpq-rasrzs7pi6sd4.uk-1.platformsh.site' + request.full_path, 'target': '_blank' }, 'navigation': navigationItems diff --git a/app/wagtail/api.py b/app/wagtail/api.py index f05d30d9..3bfd3808 100644 --- a/app/wagtail/api.py +++ b/app/wagtail/api.py @@ -35,7 +35,9 @@ def wagtail_request_handler(uri, params={}): except requests.exceptions.JSONDecodeError: current_app.logger.error("API provided non-JSON response") raise ConnectionError("API provided non-JSON response") - current_app.logger.error(f"API responded with {r.status_code} status for {url}") + current_app.logger.error( + f"API responded with {r.status_code} status for {url}" + ) print("no conn") raise ConnectionError("Request to API failed") diff --git a/app/wagtail/routes.py b/app/wagtail/routes.py index 54dda31c..ac83de66 100644 --- a/app/wagtail/routes.py +++ b/app/wagtail/routes.py @@ -1,18 +1,13 @@ -from app.lib import cache +from app.lib import cache, cache_key_prefix from app.wagtail import bp from app.wagtail.render import render_content_page -from flask import render_template, request, current_app +from flask import current_app, render_template, request from .api import page_details_by_uri, page_preview -def make_cache_key_prefix(): - """Make a key that includes GET parameters.""" - return request.full_path - - @bp.route("/preview/") -def preview_page(key_prefix=make_cache_key_prefix): +def preview_page(key_prefix=cache_key_prefix): content_type = request.args.get("content_type") token = request.args.get("token") page_data = page_preview(content_type, token) @@ -20,7 +15,7 @@ def preview_page(key_prefix=make_cache_key_prefix): @bp.route("//") -@cache.cached(key_prefix=make_cache_key_prefix) +@cache.cached(key_prefix=cache_key_prefix) def explore_page(path): try: page_data = page_details_by_uri(path)