diff --git a/manage_breast_screening/assets/sass/main.scss b/manage_breast_screening/assets/sass/main.scss index 653cc8313..9ba3af6f7 100644 --- a/manage_breast_screening/assets/sass/main.scss +++ b/manage_breast_screening/assets/sass/main.scss @@ -51,6 +51,24 @@ a[href="#"] { color: #c80000 !important; } +// Environment banner at the top of the page +.app-environment { + @include nhsuk-font-size(14); + @include nhsuk-responsive-padding(2, bottom); + @include nhsuk-responsive-padding(2, top); + + .nhsuk-link { + color: inherit; + } + + .nhsuk-width-container { + align-items: baseline; + display: flex; + flex-wrap: wrap; + gap: nhsuk-spacing(1) nhsuk-spacing(2); + } +} + // Status tag positioning within headers .app-header { position: relative; diff --git a/manage_breast_screening/config/jinja2_env.py b/manage_breast_screening/config/jinja2_env.py index 3c1628956..857b59fe6 100644 --- a/manage_breast_screening/config/jinja2_env.py +++ b/manage_breast_screening/config/jinja2_env.py @@ -41,6 +41,7 @@ def environment(**options): "raise": raise_helper, "static": static, "url": reverse, + "DJANGO_ENV": settings.DJANGO_ENV, } ) diff --git a/manage_breast_screening/config/settings/base.py b/manage_breast_screening/config/settings/base.py index 3cf04ebc3..c0dfe6b81 100644 --- a/manage_breast_screening/config/settings/base.py +++ b/manage_breast_screening/config/settings/base.py @@ -34,6 +34,8 @@ def list_env(key): DJANGO_ENV = environ.get("DJANGO_ENV", "production") +IS_PRODUCTION = DJANGO_ENV == "production" + ALLOWED_HOSTS = list_env("ALLOWED_HOSTS") CSRF_TRUSTED_ORIGINS = list_env("CSRF_TRUSTED_ORIGINS") @@ -76,7 +78,7 @@ def list_env(key): "ninja", ] -if DJANGO_ENV != "production": +if not IS_PRODUCTION: INSTALLED_APPS.append("manage_breast_screening.nonprod") MIDDLEWARE = [ @@ -178,7 +180,7 @@ def list_env(key): } -if DJANGO_ENV != "production": +if not IS_PRODUCTION: if environ.get("BLOB_STORAGE_CONNECTION_STRING"): # Use connection string if provided (e.g., in local development using Azurite) dicom_storage_options = { diff --git a/manage_breast_screening/core/jinja2/layout-app.jinja b/manage_breast_screening/core/jinja2/layout-app.jinja index c1ca3ab5b..0f05191ea 100644 --- a/manage_breast_screening/core/jinja2/layout-app.jinja +++ b/manage_breast_screening/core/jinja2/layout-app.jinja @@ -14,6 +14,17 @@ {% block pageTitle %}{% if form and form.errors %}Error: {% endif %}{% if page_title %}{{ page_title }} – {% endif %}Manage breast screening – NHS{% endblock %} {% block header %} + {% if not IS_PRODUCTION %} +
+
+ + {{ DJANGO_ENV }} + + This is the {{ DJANGO_ENV }} environment. +
+
+ {% endif %} + {{ header({ "classes": "nhsuk-header--inline", "service": { diff --git a/manage_breast_screening/nonprod/management/commands/seed_demo_data.py b/manage_breast_screening/nonprod/management/commands/seed_demo_data.py index fe5166dbb..24977a3f4 100644 --- a/manage_breast_screening/nonprod/management/commands/seed_demo_data.py +++ b/manage_breast_screening/nonprod/management/commands/seed_demo_data.py @@ -1,6 +1,5 @@ import logging from datetime import datetime, timedelta -from os import getenv import yaml from django.conf import settings @@ -79,7 +78,7 @@ def diagram_file(self, file_name): return open(MAMMOGRAM_DIAGRAMS_DIR / file_name, "rb") def handle(self, *args, **kwargs): - if getenv("DJANGO_ENV", "production") == "production": + if settings.IS_PRODUCTION: raise Exception("This command cannot be run in production") if not kwargs["noinput"]: