What Is Keep-Sabbath?
Django Keep-Sabbath is a free & open source Django app to automatically redirect visitors coming to a website when it is the Sabbath or a Holy day.
Keep-Sabbath is for webmasters with e-commerce shops, blogs, etc. who would like to keep the Biblical 7th-day Sabbath and other Holy days of the Bible Holy. The django app allows you to easily setup a system for a Django-powered website that will automatically redirect visitors to a single page (explaining about the Sabbath, redirect, etc.) if it is the Sabbath day or another Holy day.
The app uses internal, offline calculations (via the SolarTime module) and the current date/time of the server to figure out if it is the Sabbath day (thus, if the user should be redirected), so you do not have to do it manually. It is optimized for performance and speed.
There is also an option to manually override it as well, which is useful for other Biblical Holy days.
The timing is based on the understanding that the Sabbath day starts on 6th day ("friday") evening and ends on 7th day ("saturday") evening, according to the Bible.
"If thou turn away thy foot from the sabbath, [from] doing thy pleasure on My holy day; and call the sabbath a delight, the holy of Yahweh, honourable; and shalt honour him, not doing thine own ways, nor finding thine own pleasure, nor speaking [thine own] words:
Then shalt thou delight thyself in Yahweh; and I will cause thee to ride upon the high places of the earth, and feed thee with the heritage of Jacob thy father: for the mouth of Yahweh hath spoken [it]."
• Simple setup
• 2 ways to use it
• Support for overriding
• Automatically redirects
• Supports Django 2.2, 3.0 +
• Free & open source
Get Started Using Keep-Sabbath
1. Install package
Django Keep-Sabbath is best installed via PyPI.
To install the latest version, run:
pip install keep-sabbath
or install from Github source:
pip install git+git://github.com/Correct-Syntax/Keep-Sabbath.git
Make sure to have Django version 2.2, 3.0+ installed on your system.
To install the latest version, run:
pip install django --upgrade
2. Setup app and urls.py
keep_sabbath to INSTALLED_APPS in settings.py for your project:
INSTALLED_APPS = ( ... 'keep_sabbath', ... )
keep_sabbath.urls inside the urlpatterns list in urls.py for your project:
from django.contrib import admin from django.urls import path, include urlpatterns = [ ... path('sabbath-redirect/', include('keep_sabbath.urls')), ... ]
3. Configure settings
SABBATH_REDIRECT_TEMPLATE in settings.py for your project and set it to the name of the template you want visitors to be redirected to when it is the Sabbath or a Holy Day:
SABBATH_REDIRECT_TEMPLATE = "sabbath/redirect.html"
Don't forget to make the HTML template and/or directory you specify for the SABBATH_REDIRECT_TEMPLATE setting.
Add SABBATH_MANUAL_OVERRIDE in settings.py for your project and set it to False if you do not want to override or True if you do (e.g: on a Holy day you will want to set this to True):
SABBATH_MANUAL_OVERRIDE = False # or True if you want to override
Due to the fact that sunrise and sunset times depend on your location, you will need to set your location. Look up the latitude and longitude of your area and add the following settings.
SABBATH_COORDS_LATITUDE in settings.py for your project and set it to the latitude of your area:
SABBATH_COORDS_LATITUDE = yourarealatitudeasafloat
SABBATH_COORDS_LONGITUDE in settings.py for your project and set it to the longitude of your area:
SABBATH_COORDS_LONGITUDE = yourarealongitudeasafloat
SABBATH_LOCAL_TIMEZONE in settings.py for your project and set it to the timezone of your area:
SABBATH_LOCAL_TIMEZONE = 'US/Central' # Set this to a pytz acceptable timezone (see below)
Valid timezone values can be seen here.
4. Use in views.py
There are two ways to use Django Keep-Sabbath in your views.py file:
1. Use the
@redirect_if_sabbath decorator in your views.py file:
from keep_sabbath import redirect_if_sabbath # Method 1 (easier, but less control) @redirect_if_sabbath def my_firstview(request): ...
2. Use the
is_sabbath function in your views.py file:
from keep_sabbath import is_sabbath # Method 2 (you figure out the view logic, but more control) def my_secondview(request): ... if is_sabbath() == True: ...
Both methods can be used interchangably and in the same views.py file and project.