From f48bb63f44043162fe4611128ae05fb424268a4e Mon Sep 17 00:00:00 2001
From: Fredrik Jonsson <frjo@xdeb.org>
Date: Tue, 16 Apr 2019 10:30:33 +0200
Subject: [PATCH] Alos set CACHE_CONTROL_MAX_AGE.

---
 opentech/settings/base.py | 51 +++++++++++++++++++++++----------------
 1 file changed, 30 insertions(+), 21 deletions(-)

diff --git a/opentech/settings/base.py b/opentech/settings/base.py
index 06659ea23..889677cb0 100644
--- a/opentech/settings/base.py
+++ b/opentech/settings/base.py
@@ -198,6 +198,23 @@ DATABASES = {
 
 
 # Cache
+
+# Set max-age header.
+try:
+    CACHE_CONTROL_MAX_AGE = int(env.get('CACHE_CONTROL_MAX_AGE', 3600))
+except ValueError:
+    CACHE_CONTROL_MAX_AGE = 3600
+
+# Set s-max-age header that is used by reverse proxy/front end cache.
+try:
+    CACHE_CONTROL_S_MAXAGE = int(env.get('CACHE_CONTROL_S_MAXAGE', 3600))
+except ValueError:
+    CACHE_CONTROL_S_MAXAGE = 3600
+
+# Set wagtail cache timeout (automatic cache refresh).
+WAGTAIL_CACHE_TIMEOUT = CACHE_CONTROL_S_MAXAGE
+
+
 if 'REDIS_URL' in env:
     CACHES = {
         "default": {
@@ -208,7 +225,7 @@ if 'REDIS_URL' in env:
             "BACKEND": "wagtailcache.compat_backends.django_redis.RedisCache",
             "LOCATION": env['REDIS_URL'],
             'KEY_PREFIX': 'wagtailcache',
-            'TIMEOUT': 3600,
+            'TIMEOUT': WAGTAIL_CACHE_TIMEOUT,
         }
     }
 else:
@@ -221,18 +238,23 @@ else:
             'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
             'LOCATION': 'database_cache',
             'KEY_PREFIX': 'wagtailcache',
-            'TIMEOUT': 3600,
+            'TIMEOUT': WAGTAIL_CACHE_TIMEOUT,
         }
     }
 
 WAGTAIL_CACHE_BACKEND = 'wagtailcache'
 
-# Set s-max-age header that is used by reverse proxy/front end cache. See
-# urls.py
-try:
-    CACHE_CONTROL_S_MAXAGE = int(env.get('CACHE_CONTROL_S_MAXAGE', 600))
-except ValueError:
-    CACHE_CONTROL_S_MAXAGE = 600
+# Cloudflare cache
+if 'CLOUDFLARE_API_TOKEN' in env:
+    INSTALLED_APPS += ('wagtail.contrib.frontend_cache', )  # noqa
+    WAGTAILFRONTENDCACHE = {
+        'cloudflare': {
+            'BACKEND': 'wagtail.contrib.frontend_cache.backends.CloudflareBackend',
+            'EMAIL': env['CLOUDFLARE_API_EMAIL'],
+            'TOKEN': env['CLOUDFLARE_API_TOKEN'],
+            'ZONEID': env['CLOUDFLARE_API_ZONEID'],
+        },
+    }
 
 
 # Search
@@ -582,19 +604,6 @@ if env.get('BASIC_AUTH_ENABLED', 'false').lower().strip() == 'true':
         )
 
 
-# Cloudflare cache
-if 'CLOUDFLARE_API_TOKEN' in env:
-    INSTALLED_APPS += ('wagtail.contrib.frontend_cache', )  # noqa
-    WAGTAILFRONTENDCACHE = {
-        'cloudflare': {
-            'BACKEND': 'wagtail.contrib.frontend_cache.backends.CloudflareBackend',
-            'EMAIL': env['CLOUDFLARE_API_EMAIL'],
-            'TOKEN': env['CLOUDFLARE_API_TOKEN'],
-            'ZONEID': env['CLOUDFLARE_API_ZONEID'],
-        },
-    }
-
-
 if 'PRIMARY_HOST' in env:
     # This is used by Wagtail's email notifications for constructing absolute
     # URLs.
-- 
GitLab