From 1a72bec052b3e524f991928669de8303ddf3f85e Mon Sep 17 00:00:00 2001
From: Fredrik Jonsson <frjo@xdeb.org>
Date: Thu, 16 Aug 2018 10:38:32 +0200
Subject: [PATCH] Cleaning upp settings a bit and correcting Mailgun settings.

---
 opentech/settings/base.py       |  9 +---
 opentech/settings/production.py | 89 +++++++++++++++++----------------
 2 files changed, 47 insertions(+), 51 deletions(-)

diff --git a/opentech/settings/base.py b/opentech/settings/base.py
index 4f834ef00..25d6daab0 100644
--- a/opentech/settings/base.py
+++ b/opentech/settings/base.py
@@ -362,14 +362,7 @@ SLACK_DESTINATION_URL = env.get('SLACK_DESTINATION_URL', None)
 SLACK_DESTINATION_ROOM = env.get('SLACK_DESTINATION_ROOM', None)
 
 
-# Email and Celery config
-if 'MAILGUN_API_KEY' in env:
-    MAILGUN_API_KEY = env.get('MAILGUN_API_KEY')
-    EMAIL_BACKEND = 'anymail.backends.mailgun.EmailBackend'
-
-if 'ANYMAIL_WEBHOOK_SECRET' in env:
-    ANYMAIL_WEBHOOK_SECRET = env.get('ANYMAIL_WEBHOOK_SECRET')
-
+# Celery config
 if 'REDIS_URL' in env:
     CELERY_BROKER_URL = env.get('REDIS_URL')
 else:
diff --git a/opentech/settings/production.py b/opentech/settings/production.py
index e1b2939cb..1d536d36d 100644
--- a/opentech/settings/production.py
+++ b/opentech/settings/production.py
@@ -34,12 +34,6 @@ if 'SENTRY_DSN' in env:
     SENTRY_DSN = env['SENTRY_DSN']
 
 
-# On Torchbox servers, many environment variables are prefixed with "CFG_"
-for key, value in os.environ.items():
-    if key.startswith('CFG_'):
-        env[key[4:]] = value
-
-
 # Basic configuration
 
 APP_NAME = env.get('APP_NAME', 'opentech')
@@ -59,6 +53,20 @@ if 'ALLOWED_HOSTS' in env:
 if 'PRIMARY_HOST' in env:
     BASE_URL = 'https://%s/' % env['PRIMARY_HOST']
 
+if 'STATIC_URL' in env:
+    STATIC_URL = env['STATIC_URL']
+
+if 'STATIC_DIR' in env:
+    STATIC_ROOT = env['STATIC_DIR']
+
+if 'MEDIA_URL' in env:
+    MEDIA_URL = env['MEDIA_URL']
+
+if 'MEDIA_DIR' in env:
+    MEDIA_ROOT = env['MEDIA_DIR']
+
+# Email config
+
 if 'SERVER_EMAIL' in env:
     SERVER_EMAIL = env['SERVER_EMAIL']
     DEFAULT_FROM_EMAIL = env['SERVER_EMAIL']
@@ -66,8 +74,38 @@ if 'SERVER_EMAIL' in env:
 if 'EMAIL_HOST' in env:
     EMAIL_HOST = env['EMAIL_HOST']
 
-if 'EMAIL_SUBJECT_PREFIX' in env:
-    EMAIL_SUBJECT_PREFIX = env['EMAIL_SUBJECT_PREFIX']
+if 'MAILGUN_API_KEY' in env:
+    EMAIL_BACKEND = 'anymail.backends.mailgun.EmailBackend'
+    ANYMAIL = {
+        "MAILGUN_API_KEY": env['MAILGUN_API_KEY'],
+        "MAILGUN_SENDER_DOMAIN": env.get('EMAIL_HOST', None),
+        "WEBHOOK_SECRET": env.get('ANYMAIL_WEBHOOK_SECRET', None)
+    }
+
+# Social Auth
+
+if 'SOCIAL_AUTH_GOOGLE_OAUTH2_KEY' in env:
+    SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = env['SOCIAL_AUTH_GOOGLE_OAUTH2_KEY']
+
+if 'SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET' in env:
+    SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = env['SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET']
+
+# Basic auth to stop access to other than primary hosts.
+
+MIDDLEWARE += [
+    'baipw.middleware.BasicAuthIPWhitelistMiddleware'
+]
+
+if 'BASIC_AUTH_LOGIN' in env:
+    BASIC_AUTH_LOGIN = env['BASIC_AUTH_LOGIN']
+
+if 'BASIC_AUTH_PASSWORD' in env:
+    BASIC_AUTH_PASSWORD = env['BASIC_AUTH_PASSWORD']
+
+if 'BASIC_AUTH_WHITELISTED_HTTP_HOSTS' in env:
+    BASIC_AUTH_WHITELISTED_HTTP_HOSTS = env['BASIC_AUTH_WHITELISTED_HTTP_HOSTS'].split(',')
+
+# Cloudflare cache
 
 if 'CLOUDFLARE_API_TOKEN' in env:
     INSTALLED_APPS += ('wagtail.contrib.frontend_cache', )  # noqa
@@ -80,18 +118,6 @@ if 'CLOUDFLARE_API_TOKEN' in env:
         },
     }
 
-if 'STATIC_URL' in env:
-    STATIC_URL = env['STATIC_URL']
-
-if 'STATIC_DIR' in env:
-    STATIC_ROOT = env['STATIC_DIR']
-
-if 'MEDIA_URL' in env:
-    MEDIA_URL = env['MEDIA_URL']
-
-if 'MEDIA_DIR' in env:
-    MEDIA_ROOT = env['MEDIA_DIR']
-
 
 # Database
 
@@ -146,29 +172,6 @@ if 'LOG_DIR' in env:
     LOGGING['loggers']['django.request']['handlers'].append('errors_file')
     LOGGING['loggers']['django.security']['handlers'].append('errors_file')
 
-# Social Auth
-
-if 'SOCIAL_AUTH_GOOGLE_OAUTH2_KEY' in env:
-    SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = env['SOCIAL_AUTH_GOOGLE_OAUTH2_KEY']
-
-if 'SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET' in env:
-    SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = env['SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET']
-
-# Basic auth to stop access to other than primary hosts.
-
-MIDDLEWARE += [
-    'baipw.middleware.BasicAuthIPWhitelistMiddleware'
-]
-
-if 'BASIC_AUTH_LOGIN' in env:
-    BASIC_AUTH_LOGIN = env['BASIC_AUTH_LOGIN']
-
-if 'BASIC_AUTH_PASSWORD' in env:
-    BASIC_AUTH_PASSWORD = env['BASIC_AUTH_PASSWORD']
-
-if 'BASIC_AUTH_WHITELISTED_HTTP_HOSTS' in env:
-    BASIC_AUTH_WHITELISTED_HTTP_HOSTS = env['BASIC_AUTH_WHITELISTED_HTTP_HOSTS'].split(',')
-
 django_heroku.settings(locals())
 
 try:
-- 
GitLab