django-letsmaintain 1.0.3

Creator: codyrutscher

Last updated:

Add to Cart

Description:

djangoletsmaintain 1.0.3

django-letsmaintain
Django middleware that provides a maintenance countdown warning message.
This middleware searches the cache for the key maintenance_alert. Its contents are expected to be a string representing an aware datetime in isoformat:
from datetime import datetime, timezone

the_time = datetime.now(timezone.utc).isoformat(timespec='minutes')
print(the_time)

Example result: '2020-06-24T12:00+00:00'


The middleware will raise a warning in all pages with a seconds countdown.


The last 60 seconds, the warning message will become an error message.


A bash script can invoke the relevant cache key:
#!/bin/bash

FIVE_MINUTES_LATER=$(date --date "$(date +%Y-%m-%dT%H:%M:%S%:z) +5 min" --iso-8601=minutes)
echo "from django.core.cache import cache; cache.set(\"maintenance_alert\", \"$FIVE_MINUTES_LATER\")" \
| ./manage.py shell
sleep 5m
# Redirect to maintenance.html
# nginx example: https://lincolnloop.com/blog/pro-tip-redirecting-custom-nginx-maintenance-page/
# <perform maintenance>
# Cancel redirect

Required Settings
The required settings for the middleware to operate are:

CACHES
TIME_ZONE
USE_TZ = True
"letsmaintain" in INSTALLED_APPS
"letsmaintain.middleware.MaintenanceMiddleware" in MIDDLEWARE after "MessageMiddleware"

Tests
To run the tests:

Install tox
Define: TOX_DB_NAME, TOX_DB_USER, TOX_DB_PASSWD

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.