From 17c22db2a3f0f2bd21f4e1743c4d32b845ca0a45 Mon Sep 17 00:00:00 2001 From: Lacey Williams Henschel Date: Tue, 17 Jan 2023 12:39:15 -0800 Subject: [PATCH 1/5] :arrow_up: Add django-admin-env-notice --- config/settings.py | 26 ++++++++++++++++++++++++++ requirements.in | 1 + requirements.txt | 2 ++ templates/admin/base_site.html | 23 +++++++++++++++++++++++ users/models.py | 1 + 5 files changed, 53 insertions(+) diff --git a/config/settings.py b/config/settings.py index a0ce03ed..3089e86b 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,24 @@ 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 == "UAT Environment": + ENVIRONMENT_COLOR = "#F6E05E" # Yellow +elif ENV_NAME == "Production Environment": + ENVIRONMENT_COLOR = "#E53E3E" 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 %}

{% trans 'boost.org administration' %}

{% endblock %} diff --git a/users/models.py b/users/models.py index cfc8e9d4..b05ec490 100644 --- a/users/models.py +++ b/users/models.py @@ -138,6 +138,7 @@ class Badge(models.Model): class User(BaseUser): badges = models.ManyToManyField(Badge) github_username = models.CharField(_("github username"), max_length=100, blank=True) + models.ImageField(default="fpo/user.png", upload_to="profile_photos") class LastSeen(models.Model): From ef81290716fa9e4876349783036b5155c29a5c76 Mon Sep 17 00:00:00 2001 From: Lacey Williams Henschel Date: Tue, 17 Jan 2023 12:41:15 -0800 Subject: [PATCH 2/5] :fire: Oops --- users/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/users/models.py b/users/models.py index b05ec490..cfc8e9d4 100644 --- a/users/models.py +++ b/users/models.py @@ -138,7 +138,6 @@ class Badge(models.Model): class User(BaseUser): badges = models.ManyToManyField(Badge) github_username = models.CharField(_("github username"), max_length=100, blank=True) - models.ImageField(default="fpo/user.png", upload_to="profile_photos") class LastSeen(models.Model): From be71771df0b24573b01593f0c3daadfee39397e7 Mon Sep 17 00:00:00 2001 From: Lacey Williams Henschel Date: Tue, 17 Jan 2023 12:41:30 -0800 Subject: [PATCH 3/5] :shirt: Linter --- config/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/settings.py b/config/settings.py index 3089e86b..48b37f3e 100755 --- a/config/settings.py +++ b/config/settings.py @@ -47,7 +47,7 @@ ALLOWED_HOSTS = [el.strip() for el in host_list] INSTALLED_APPS = [ - "django_admin_env_notice", # Third-party + "django_admin_env_notice", # Third-party "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", From dd94fd5f33c2700af109edd08eb84809044b6b7a Mon Sep 17 00:00:00 2001 From: Lacey Williams Henschel Date: Tue, 17 Jan 2023 12:53:39 -0800 Subject: [PATCH 4/5] :snowflake: Add ENV_NAME to kube --- config/settings.py | 2 -- kube/boost/values.yaml | 13 ++----------- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/config/settings.py b/config/settings.py index 48b37f3e..c66efbd6 100755 --- a/config/settings.py +++ b/config/settings.py @@ -330,7 +330,5 @@ ENVIRONMENT_COLOR = "#718096" # Gray for unknown if ENV_NAME == "Development Environment": ENVIRONMENT_COLOR = "#38A169" # Green -elif ENV_NAME == "UAT Environment": - ENVIRONMENT_COLOR = "#F6E05E" # Yellow elif ENV_NAME == "Production Environment": ENVIRONMENT_COLOR = "#E53E3E" diff --git a/kube/boost/values.yaml b/kube/boost/values.yaml index df575228..143355d6 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: ENV_NAME + value: "Development Environment" # Bucket is setup already, but not using storages just yet # - name: AWS_ACCESS_KEY_ID # valueFrom: From 352f695b55e8f9f125a7b8e54a2f229c6a1c883c Mon Sep 17 00:00:00 2001 From: Lacey Williams Henschel Date: Tue, 17 Jan 2023 12:59:43 -0800 Subject: [PATCH 5/5] :snowflake: Fix env var name --- kube/boost/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kube/boost/values.yaml b/kube/boost/values.yaml index 143355d6..c3533b40 100644 --- a/kube/boost/values.yaml +++ b/kube/boost/values.yaml @@ -87,7 +87,7 @@ Env: secretKeyRef: name: django-secret-key key: key - - name: ENV_NAME + - name: ENVIRONMENT_NAME value: "Development Environment" # Bucket is setup already, but not using storages just yet # - name: AWS_ACCESS_KEY_ID