From 0e6c8d26c76c35f947b0879e28a2a9056ba42b17 Mon Sep 17 00:00:00 2001 From: Dave Date: Tue, 26 Mar 2024 15:53:04 -0700 Subject: [PATCH] Basic admin skeleton --- .gitignore | 3 +++ scripts/dockerpg.sh | 8 +++++--- server/admin.py | 18 ++++++++++++++++++ server/settings.py | 17 +++++++++++++++++ server/urls.py | 5 +++-- server/vb/templates/base.dhtml | 2 +- 6 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 server/admin.py diff --git a/.gitignore b/.gitignore index 68bc17f..8b748c6 100644 --- a/.gitignore +++ b/.gitignore @@ -158,3 +158,6 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ + +# Django stuff: +staticfiles/ diff --git a/scripts/dockerpg.sh b/scripts/dockerpg.sh index aa76c6c..5180ad5 100755 --- a/scripts/dockerpg.sh +++ b/scripts/dockerpg.sh @@ -12,10 +12,12 @@ migrate() { createsuperuser() { if [ -z "$DJANGO_SUPERUSER_EMAIL" ]; then - echo "DJANGO_SUPERUSER_EMAIL is not set. Will not create a superuser." - else - python manage.py createsuperuser --noinput + # SUPER TOP SECRET (okay, not really) + export DJANGO_SUPERUSER_USERNAME="dev@frontseat.org" + export DJANGO_SUPERUSER_EMAIL="dev@frontseat.org" + export DJANGO_SUPERUSER_PASSWORD="dev123!" fi + python manage.py createsuperuser --noinput } start() { diff --git a/server/admin.py b/server/admin.py new file mode 100644 index 0000000..ceee943 --- /dev/null +++ b/server/admin.py @@ -0,0 +1,18 @@ +from django.contrib import admin +from django.contrib.auth.admin import GroupAdmin, UserAdmin +from django.contrib.auth.models import Group, User +from django.utils.translation import gettext_lazy as _ + + +class AdminSite(admin.AdminSite): + """Custom admin site.""" + + site_title = _("VoterBowl admin") + site_header = _("VoterBowl admin") + index_title = _("VoterBowl admin") + + +admin_site = AdminSite() +admin_site.enable_nav_sidebar = False +admin_site.register(User, UserAdmin) +admin_site.register(Group, GroupAdmin) diff --git a/server/settings.py b/server/settings.py index 7801c53..8b7c0cf 100644 --- a/server/settings.py +++ b/server/settings.py @@ -54,6 +54,15 @@ "django_htmx.middleware.HtmxMiddleware", ] +if not DEBUG: + MIDDLEWARE = ( + MIDDLEWARE[:1] + + [ + "whitenoise.middleware.WhiteNoiseMiddleware", + ] + + MIDDLEWARE[1:] + ) + ROOT_URLCONF = "server.urls" TEMPLATES = [ @@ -122,6 +131,14 @@ STATIC_URL = "static/" STATICFILES_DIRS = [BASE_DIR / "server" / "static"] +STATIC_ROOT = BASE_DIR / "staticfiles" + +if not DEBUG: + STORAGES = { + "staticfiles": { + "BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage", + } + } # Default primary key field type # https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field diff --git a/server/urls.py b/server/urls.py index b2a1ec0..09a0705 100644 --- a/server/urls.py +++ b/server/urls.py @@ -17,11 +17,12 @@ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ -from django.contrib import admin from django.urls import include, path +from .admin import admin_site + urlpatterns = [ path("__reload__/", include("django_browser_reload.urls")), - path("admin/", admin.site.urls), + path("admin/", admin_site.urls), path("", include("server.vb.urls")), ] diff --git a/server/vb/templates/base.dhtml b/server/vb/templates/base.dhtml index 40e9ab0..64aace2 100644 --- a/server/vb/templates/base.dhtml +++ b/server/vb/templates/base.dhtml @@ -25,7 +25,7 @@ VoterBowl, coming soon.