105 lines
2.6 KiB
Markdown
105 lines
2.6 KiB
Markdown
# Repapp configuration
|
|
|
|
## Debug mode
|
|
|
|
The Django debug mode is activated if there is a environment variable `DJANGO_DEBUG` with the value "true", "1" or "t". By default, the debug mode is disabled.
|
|
|
|
## Organization name
|
|
|
|
Some templates use and organization name. This value is taken from `settings.ORGANIZATION` and defaults to "Repair-Café Hilpoltstein".
|
|
|
|
## Email settings
|
|
|
|
The following environment variables are used to configure the Django email feature:
|
|
|
|
``` Python
|
|
EMAIL_HOST = os.getenv("DJANGO_EMAIL_HOST", "")
|
|
EMAIL_PORT = (int)(os.getenv("DJANGO_EMAIL_PORT", "25"))
|
|
EMAIL_HOST_USER = os.getenv("DJANGO_EMAIL_HOST_USER", None)
|
|
EMAIL_HOST_PASSWORD = os.getenv("DJANGO_EMAIL_HOST_PASSWORD", None)
|
|
EMAIL_USE_TLS = os.getenv("DJANGO_EMAIL_USE_TLS", "true") in ("true", "1", "t")
|
|
DEFAULT_FROM_EMAIL = os.getenv("DJANGO_SENDER_ADDRESS", "")
|
|
```
|
|
See https://docs.djangoproject.com/en/4.2/topics/email/ for more details.
|
|
|
|
## Translations
|
|
|
|
Repapp is using localization, and comes with german and english translations.
|
|
|
|
Enable the `LocaleMiddleware`:
|
|
|
|
```Python
|
|
MIDDLEWARE = [
|
|
...
|
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
|
# enable translation
|
|
'django.middleware.locale.LocaleMiddleware',
|
|
'django.middleware.common.CommonMiddleware',
|
|
...
|
|
]
|
|
```
|
|
|
|
We use the following localization settings:
|
|
|
|
```Python
|
|
LANGUAGE_CODE = 'de'
|
|
TIME_ZONE = 'Europe/Berlin'
|
|
|
|
USE_I18N = True
|
|
USE_L10N = True
|
|
USE_TZ = True
|
|
|
|
LANGUAGES = [
|
|
('de', _('German')),
|
|
('en', _('English')),
|
|
]
|
|
|
|
LOCALE_PATHS = [
|
|
BASE_DIR / 'locale',
|
|
]
|
|
```
|
|
|
|
Also the URLs are localized, and the language is choosen using i18n URL patterns:
|
|
|
|
```Python
|
|
...
|
|
from django.conf.urls.i18n import i18n_patterns
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
urlpatterns = i18n_patterns(
|
|
path('admin/', admin.site.urls),
|
|
path(_('one_time_login/'),
|
|
include('one_time_login.urls', namespace='one_time_login')),
|
|
# URLs for rosetta translation interface
|
|
path('rosetta/', include('rosetta.urls')),
|
|
)
|
|
```
|
|
|
|
### Rosetta
|
|
|
|
For translating the interface, we use rosetta. For more details see https://pypi.org/project/django-rosetta/.
|
|
|
|
You need to install rosetta (`pip install django-rosetta`) and enable it in the apps:
|
|
|
|
```Python
|
|
INSTALLED_APPS = [
|
|
...
|
|
# enable rosetta online translation interface
|
|
'rosetta',
|
|
...
|
|
]
|
|
```
|
|
|
|
Rosatta is made availabel at `rosetta/`.
|
|
|
|
## One time login
|
|
|
|
To enable the one time login links, an additional authentication backend must get added:
|
|
|
|
```Python
|
|
# Repapp specific authentication backends
|
|
AUTHENTICATION_BACKENDS = [
|
|
# Backend for one time logins
|
|
"one_time_login.authentication_backends.OneTimeLoginBackend",
|
|
]
|
|
```
|