From a698d84761ce2ae5a5d175ee26159c095ba62286 Mon Sep 17 00:00:00 2001 From: Ilia Peterov Date: Thu, 23 Nov 2023 20:25:47 +1030 Subject: [PATCH] chore: Add support for MAINTENANCE_MODE --- aiarena/core/middleware.py | 13 +++++++++++++ aiarena/frontend/templates/maintenance.html | 15 +++++++++++++++ aiarena/settings.py | 9 ++++++++- 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 aiarena/core/middleware.py create mode 100644 aiarena/frontend/templates/maintenance.html diff --git a/aiarena/core/middleware.py b/aiarena/core/middleware.py new file mode 100644 index 00000000..3f61f2eb --- /dev/null +++ b/aiarena/core/middleware.py @@ -0,0 +1,13 @@ +from django.http import HttpResponse +from django.shortcuts import render + + +def maintenance(get_response): + def middleware(request): + response = HttpResponse( + render(request, "maintenance.html"), + status=200, + ) + return response + + return middleware diff --git a/aiarena/frontend/templates/maintenance.html b/aiarena/frontend/templates/maintenance.html new file mode 100644 index 00000000..b505e017 --- /dev/null +++ b/aiarena/frontend/templates/maintenance.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} + +{% block header %}{% endblock %} +{% block sidebar %}{% endblock %} + +{% block content %} +

AI Arena is currently under maintenance

+
+
+ AI Arena is currently under scheduled technical maintenance.
+ We are upgrading our systems to improve site performance and reliability.
+ Please check back in a while. It shouldn't take longer than 60 minutes. +
+
+{% endblock %} diff --git a/aiarena/settings.py b/aiarena/settings.py index 822b667e..c87b182f 100644 --- a/aiarena/settings.py +++ b/aiarena/settings.py @@ -454,4 +454,11 @@ def get_discord_client_secret(): MATCH_TAG_PER_MATCH_LIMIT = 32 # If a primary field isn't specified on models, add an auto ID field. This affects all loaded modules. -DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' \ No newline at end of file +DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' + +def str_to_bool(s): + return s.lower() in ("yes", "y", "true", "1") + +MAINTENANCE_MODE = str_to_bool(os.getenv("MAINTENANCE_MODE", "False")) +if MAINTENANCE_MODE: + MIDDLEWARE = ["aiarena.core.middleware.maintenance"] + MIDDLEWARE \ No newline at end of file