Coverage for cbab/settings.py: 95%
38 statements
« prev ^ index » next coverage.py v7.5.3, created at 2024-06-10 15:48 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2024-06-10 15:48 +0000
1"""
2Django settings for CBAB project.
3"""
5import os
6from pathlib import Path
9DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
11BASE_DIR = Path(__file__).resolve().parent.parent
13REDMINE_ID = os.environ.get("REDMINE_ID", "7601")
14ACDH_IMPRINT_URL = "https://imprint.acdh.oeaw.ac.at/"
15SECRET_KEY = os.environ.get("SECRET_KEY", "rlYWFQbFuwofjjafjwo")
18if os.environ.get("DEBUG", False):
19 DEBUG = True
20else:
21 DEBUG = False
23ADD_ALLOWED_HOST = os.environ.get("ALLOWED_HOST", "*")
24ALLOWED_HOSTS = [
25 "127.0.0.1",
26 "0.0.0.0",
27 ADD_ALLOWED_HOST,
28]
30# Application definition
32INSTALLED_APPS = [
33 "dal",
34 "dal_select2",
35 "django.contrib.admin",
36 "django.contrib.auth",
37 "django.contrib.contenttypes",
38 "django.contrib.sessions",
39 "django.contrib.messages",
40 "django.contrib.staticfiles",
41 "crispy_forms",
42 "crispy_bootstrap3",
43 "django_extensions",
44 "django_filters",
45 "django_tables2",
46 "rest_framework",
47 "webpage",
48 "vocabs",
49 "places",
50 "burials",
51 "bib",
52 "browsing",
53]
55CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap3"
56CRISPY_TEMPLATE_PACK = "bootstrap3"
58REST_FRAMEWORK = {
59 "DEFAULT_PERMISSION_CLASSES": (
60 "rest_framework.permissions.IsAuthenticatedOrReadOnly",
61 )
62}
64SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
66SPAGHETTI_SAUCE = {
67 "apps": ["vocabs", "places", "burials", "bib"],
68 "show_fields": False,
69 "exclude": {"auth": ["user"]},
70}
72MIDDLEWARE = [
73 "django.middleware.security.SecurityMiddleware",
74 "django.contrib.sessions.middleware.SessionMiddleware",
75 "django.middleware.common.CommonMiddleware",
76 "django.middleware.csrf.CsrfViewMiddleware",
77 "django.contrib.auth.middleware.AuthenticationMiddleware",
78 "django.contrib.messages.middleware.MessageMiddleware",
79 "django.middleware.clickjacking.XFrameOptionsMiddleware",
80]
82ROOT_URLCONF = "cbab.urls"
84TEMPLATES = [
85 {
86 "BACKEND": "django.template.backends.django.DjangoTemplates",
87 "DIRS": [],
88 "APP_DIRS": True,
89 "OPTIONS": {
90 "context_processors": [
91 "django.template.context_processors.debug",
92 "django.template.context_processors.request",
93 "django.contrib.auth.context_processors.auth",
94 "django.contrib.messages.context_processors.messages",
95 ],
96 },
97 },
98]
100WSGI_APPLICATION = "cbab.wsgi.application"
102if os.environ.get("POSTGRES_DB"):
103 DATABASES = {
104 "default": {
105 "ENGINE": "django.db.backends.postgresql",
106 "NAME": os.environ.get("POSTGRES_DB", "cbab"),
107 "USER": os.environ.get("POSTGRES_USER", "postgres"),
108 "PASSWORD": os.environ.get("POSTGRES_PASSWORD", "postgres"),
109 "HOST": os.environ.get("POSTGRES_HOST", "localhost"),
110 "PORT": os.environ.get("POSTEGRES_PORT", "5432"),
111 }
112 }
113else:
114 DATABASES = {
115 "default": {
116 "ENGINE": "django.db.backends.sqlite3",
117 "NAME": BASE_DIR / "db.sqlite3",
118 }
119 }
121AUTHENTICATION_BACKENDS = (
122 "django.contrib.auth.backends.ModelBackend",
123)
125# Password validation
126# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
128AUTH_PASSWORD_VALIDATORS = [
129 {
130 "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator"
131 },
132 {"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator"},
133 {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator"},
134 {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator"},
135]
137LANGUAGE_CODE = "en-us"
138TIME_ZONE = "CET"
139USE_I18N = True
140USE_L10N = True
141USE_TZ = True
143STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles/")
144STATIC_URL = "/static/"
145MEDIA_ROOT = os.path.join(BASE_DIR, "media/")
146MEDIA_URL = "/media/"
148# To do: if Z_BASE_URL, Z_COLLECTION are missing get_zotero_url() throws an error, this
149# workaround (setting empty ones) prevents the errors but still produces invalid urls - please fix
150Z_BASE_URL = "https://www.zotero.org/mgavranovic/items/collectionKey"
151Z_COLLECTION = "4CRPGG6W"