diff --git a/config/settings.py b/config/settings.py index a0ce03ed..c66efbd6 100755 --- a/config/settings.py +++ b/config/settings.py @@ -1,6 +1,7 @@ import environs import logging import structlog +import subprocess import sys from django.core.exceptions import ImproperlyConfigured @@ -46,6 +47,7 @@ ALLOWED_HOSTS = [el.strip() for el in host_list] INSTALLED_APPS = [ + "django_admin_env_notice", # Third-party "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", @@ -122,6 +124,9 @@ TEMPLATES = [ ], "OPTIONS": { "context_processors": [ + # Django Admin Env Notice + "django_admin_env_notice.context_processors.from_settings", + # Django stuff "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", @@ -308,3 +313,22 @@ if all( SECURE_PROXY_SSL_HEADER_NAME, SECURE_PROXY_SSL_HEADER_VALUE, ) + +# Admin banner configuration +ENV_NAME = env("ENVIRONMENT_NAME", default="Unknown Environment") +IMAGE_TAG = env("IMAGE_TAG", default="Unknown Version") + +if LOCAL_DEVELOPMENT: + output = subprocess.check_output( + ["git", "describe", "--tags"], universal_newlines=True + ) + IMAGE_TAG = str(output.strip()) + +ENVIRONMENT_NAME = f"{ENV_NAME} - {IMAGE_TAG}" + +ENVIRONMENT_COLOR = "#718096" # Gray for unknown + +if ENV_NAME == "Development Environment": + ENVIRONMENT_COLOR = "#38A169" # Green +elif ENV_NAME == "Production Environment": + ENVIRONMENT_COLOR = "#E53E3E" diff --git a/kube/boost/values.yaml b/kube/boost/values.yaml index df575228..c3533b40 100644 --- a/kube/boost/values.yaml +++ b/kube/boost/values.yaml @@ -87,17 +87,8 @@ Env: secretKeyRef: name: django-secret-key key: key -# - name: SECURE_PROXY_SSL_HEADER_NAME -# value: "HTTP_X_FORWARDED_PROTO" -# - name: SECURE_PROXY_SSL_HEADER_VALUE -# value: "https" -# - name: SECURE_SSL_REDIRECT -# value: "false" -# - name: SECRET_KEY -# valueFrom: -# secretKeyRef: -# name: django-secret-key -# key: key + - name: ENVIRONMENT_NAME + value: "Development Environment" # Bucket is setup already, but not using storages just yet # - name: AWS_ACCESS_KEY_ID # valueFrom: diff --git a/requirements.in b/requirements.in index 71957a05..6582868a 100755 --- a/requirements.in +++ b/requirements.in @@ -1,5 +1,6 @@ Django<4.0 bumpversion +django-admin-env-notice==0.4 django-allauth==0.51.0 django-db-geventpool django-extensions diff --git a/requirements.txt b/requirements.txt index 3264b049..2fa16a2d 100755 --- a/requirements.txt +++ b/requirements.txt @@ -82,6 +82,8 @@ django==3.2.2 # django-rest-auth # djangorestframework # model-bakery +django-admin-env-notice==0.4 + # via -r ./requirements.in django-allauth==0.51.0 # via -r ./requirements.in django-bakery==0.12.7 diff --git a/templates/admin/base_site.html b/templates/admin/base_site.html index 597f84f4..33d6a9b2 100644 --- a/templates/admin/base_site.html +++ b/templates/admin/base_site.html @@ -3,6 +3,29 @@ {% block title %}{{ title }} | {% trans 'boost.org admin' %}{% endblock %} +{% block extrastyle %}{{ block.super }} +{% if ENVIRONMENT_NAME and ENVIRONMENT_COLOR %} + + +{% endif %} +{% endblock %} + {% block branding %}