Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 1 | """ |
| 2 | Django settings for hiccup_server project. |
| 3 | |
| 4 | Generated by 'django-admin startproject' using Django 1.9.7. |
| 5 | |
| 6 | For more information on this file, see |
| 7 | https://docs.djangoproject.com/en/1.9/topics/settings/ |
| 8 | |
| 9 | For the full list of settings and their values, see |
| 10 | https://docs.djangoproject.com/en/1.9/ref/settings/ |
| 11 | """ |
| 12 | |
| 13 | import os |
| 14 | |
| 15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) |
| 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
| 17 | |
| 18 | |
| 19 | # Quick-start development settings - unsuitable for production |
| 20 | # See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/ |
| 21 | |
| 22 | # SECURITY WARNING: keep the secret key used in production secret! |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 23 | SECRET_KEY = "7u+#ha3hk!x+*)clhs46%n*)w1q+5s4+yoc#1!nm0b%fwwrud@" |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 24 | |
| 25 | # SECURITY WARNING: don't run with debug turned on in production! |
Dirk Vogt | f2a3342 | 2016-10-11 17:17:26 +0200 | [diff] [blame] | 26 | DEBUG = True |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 27 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 28 | ALLOWED_HOSTS = ["*"] |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 29 | |
| 30 | |
| 31 | # Application definition |
| 32 | |
| 33 | INSTALLED_APPS = [ |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 34 | "django.contrib.admin", |
| 35 | "django.contrib.auth", |
| 36 | "django.contrib.contenttypes", |
| 37 | "django.contrib.sessions", |
| 38 | "django.contrib.sites", |
| 39 | "django.contrib.messages", |
| 40 | "django.contrib.staticfiles", |
| 41 | "rest_framework", |
| 42 | "rest_framework.authtoken", |
| 43 | "crashreports", |
| 44 | "crashreport_stats", |
| 45 | "taggit", |
| 46 | "crispy_forms", |
| 47 | "bootstrap3", |
| 48 | "bootstrapform", |
| 49 | "django_extensions", |
| 50 | "django_filters", |
| 51 | "djfrontend", |
| 52 | "djfrontend.skeleton", |
| 53 | "allauth", |
| 54 | "allauth.account", |
| 55 | "allauth.socialaccount", |
| 56 | "allauth.socialaccount.providers.google", |
| 57 | "drf_yasg", |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 58 | ] |
| 59 | |
| 60 | MIDDLEWARE_CLASSES = [ |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 61 | "django.middleware.security.SecurityMiddleware", |
| 62 | "django.contrib.sessions.middleware.SessionMiddleware", |
| 63 | "django.middleware.common.CommonMiddleware", |
| 64 | "django.middleware.csrf.CsrfViewMiddleware", |
| 65 | "django.contrib.auth.middleware.AuthenticationMiddleware", |
| 66 | "django.contrib.auth.middleware.SessionAuthenticationMiddleware", |
| 67 | "django.contrib.messages.middleware.MessageMiddleware", |
| 68 | "django.middleware.clickjacking.XFrameOptionsMiddleware", |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 69 | ] |
| 70 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 71 | ROOT_URLCONF = "hiccup.urls" |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 72 | |
| 73 | TEMPLATES = [ |
| 74 | { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 75 | "BACKEND": "django.template.backends.django.DjangoTemplates", |
| 76 | "DIRS": [os.path.join(BASE_DIR, "hiccup", "templates")], |
| 77 | "APP_DIRS": True, |
| 78 | "OPTIONS": { |
| 79 | "context_processors": [ |
| 80 | "django.template.context_processors.debug", |
| 81 | "django.template.context_processors.request", |
| 82 | "django.contrib.auth.context_processors.auth", |
| 83 | "django.contrib.messages.context_processors.messages", |
Dirk Vogt | 57a615d | 2017-05-04 22:29:54 +0200 | [diff] [blame] | 84 | # `allauth` needs this from django |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 85 | "django.template.context_processors.request", |
| 86 | ] |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 87 | }, |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 88 | } |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 89 | ] |
| 90 | |
Dirk Vogt | 57a615d | 2017-05-04 22:29:54 +0200 | [diff] [blame] | 91 | AUTHENTICATION_BACKENDS = ( |
| 92 | # Needed to login by username in Django admin, regardless of `allauth` |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 93 | "django.contrib.auth.backends.ModelBackend", |
Dirk Vogt | 57a615d | 2017-05-04 22:29:54 +0200 | [diff] [blame] | 94 | # `allauth` specific authentication methods, such as login by e-mail |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 95 | "allauth.account.auth_backends.AuthenticationBackend", |
Dirk Vogt | 57a615d | 2017-05-04 22:29:54 +0200 | [diff] [blame] | 96 | ) |
| 97 | |
Mitja Nikolaus | 5c3e057 | 2018-07-30 13:36:14 +0200 | [diff] [blame] | 98 | # WSGI_APPLICATION = 'hiccup_server.wsgi.application' |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 99 | |
| 100 | |
| 101 | # Database |
| 102 | # https://docs.djangoproject.com/en/1.9/ref/settings/#databases |
| 103 | |
| 104 | DATABASES = { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 105 | "default": { |
| 106 | "ENGINE": "django.db.backends.sqlite3", |
| 107 | "NAME": os.path.join(BASE_DIR, "db.sqlite3"), |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 108 | } |
| 109 | } |
| 110 | |
| 111 | |
| 112 | # Password validation |
| 113 | # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators |
| 114 | |
| 115 | AUTH_PASSWORD_VALIDATORS = [ |
| 116 | { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 117 | "NAME": "django.contrib.auth.password_validation" |
| 118 | ".UserAttributeSimilarityValidator" |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 119 | }, |
| 120 | { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 121 | "NAME": "django.contrib.auth.password_validation" |
| 122 | ".MinimumLengthValidator" |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 123 | }, |
| 124 | { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 125 | "NAME": "django.contrib.auth.password_validation" |
| 126 | ".CommonPasswordValidator" |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 127 | }, |
| 128 | { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 129 | "NAME": "django.contrib.auth.password_validation" |
| 130 | ".NumericPasswordValidator" |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 131 | }, |
| 132 | ] |
| 133 | |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 134 | # Internationalization |
| 135 | # https://docs.djangoproject.com/en/1.9/topics/i18n/ |
| 136 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 137 | LANGUAGE_CODE = "en-us" |
| 138 | TIME_ZONE = "Europe/Amsterdam" |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 139 | USE_I18N = True |
| 140 | USE_L10N = True |
| 141 | USE_TZ = True |
| 142 | |
Dirk Vogt | 47d80ba | 2016-08-26 09:31:39 +0200 | [diff] [blame] | 143 | REST_FRAMEWORK = { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 144 | "DEFAULT_AUTHENTICATION_CLASSES": ( |
| 145 | "rest_framework.authentication.BasicAuthentication", |
| 146 | "rest_framework.authentication.SessionAuthentication", |
| 147 | "rest_framework.authentication.TokenAuthentication", |
Dirk Vogt | f2a3342 | 2016-10-11 17:17:26 +0200 | [diff] [blame] | 148 | ), |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 149 | "DEFAULT_PERMISSION_CLASSES": ( |
| 150 | "rest_framework.permissions.IsAuthenticated", |
Dirk Vogt | d134521 | 2016-09-14 14:31:45 +0200 | [diff] [blame] | 151 | ), |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 152 | "DEFAULT_FILTER_BACKENDS": ( |
| 153 | "django_filters.rest_framework.DjangoFilterBackend", |
| 154 | ), |
| 155 | "DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.LimitOffsetPagination", |
| 156 | "PAGE_SIZE": 100, |
Dirk Vogt | 57a615d | 2017-05-04 22:29:54 +0200 | [diff] [blame] | 157 | } |
| 158 | |
| 159 | SITE_ID = 1 |
| 160 | |
Mitja Nikolaus | 5c3e057 | 2018-07-30 13:36:14 +0200 | [diff] [blame] | 161 | SOCIALACCOUNT_ADAPTER = "hiccup.allauth_adapters.FairphoneAccountAdapter" |
| 162 | LOGIN_REDIRECT_URL = "/hiccup_stats/" |
Dirk Vogt | 57a615d | 2017-05-04 22:29:54 +0200 | [diff] [blame] | 163 | # disable form signups |
Mitja Nikolaus | 5c3e057 | 2018-07-30 13:36:14 +0200 | [diff] [blame] | 164 | ACCOUNT_ADAPTER = "hiccup.allauth_adapters.FormAccountAdapter" |
| 165 | ACCOUNT_EMAIL_REQUIRED = True |
| 166 | ACCOUNT_LOGOUT_REDIRECT_URL = "/accounts/login/" |
Dirk Vogt | 57a615d | 2017-05-04 22:29:54 +0200 | [diff] [blame] | 167 | |
| 168 | SOCIALACCOUNT_PROVIDERS = { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 169 | "google": { |
| 170 | "SCOPE": ["profile", "email"], |
| 171 | "AUTH_PARAMS": {"access_type": "online"}, |
Dirk Vogt | 57a615d | 2017-05-04 22:29:54 +0200 | [diff] [blame] | 172 | } |
Dirk Vogt | 47d80ba | 2016-08-26 09:31:39 +0200 | [diff] [blame] | 173 | } |
| 174 | |
Dirk Vogt | f130c75 | 2016-08-23 14:45:01 +0200 | [diff] [blame] | 175 | # Static files (CSS, JavaScript, Images) |
| 176 | # https://docs.djangoproject.com/en/1.9/howto/static-files/ |
| 177 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 178 | STATIC_URL = "/static/" |
Dirk Vogt | 20539e5 | 2016-08-26 11:17:35 +0200 | [diff] [blame] | 179 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 180 | STATIC_ROOT = os.path.join(BASE_DIR, "static") |
Dirk Vogt | d8b956b | 2016-11-22 15:03:21 +0100 | [diff] [blame] | 181 | |
Franz-Xaver Geiger | 69909c9 | 2018-02-27 17:02:38 +0100 | [diff] [blame] | 182 | |
| 183 | # Logging |
| 184 | # https://docs.djangoproject.com/en/2.0/topics/logging/#examples |
| 185 | |
| 186 | LOGGING = { |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 187 | "version": 1, |
| 188 | "disable_existing_loggers": False, |
| 189 | "handlers": { |
| 190 | "file": { |
| 191 | "level": "DEBUG", |
| 192 | "class": "logging.FileHandler", |
| 193 | "filename": os.path.join(BASE_DIR, "debug.log"), |
| 194 | } |
Franz-Xaver Geiger | 69909c9 | 2018-02-27 17:02:38 +0100 | [diff] [blame] | 195 | }, |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 196 | "loggers": { |
| 197 | "django": {"handlers": ["file"], "level": "DEBUG", "propagate": True} |
Franz-Xaver Geiger | 69909c9 | 2018-02-27 17:02:38 +0100 | [diff] [blame] | 198 | }, |
| 199 | } |
| 200 | |
Mitja Nikolaus | d199506 | 2018-07-30 14:10:27 +0200 | [diff] [blame] | 201 | |
| 202 | # Automatic documentation generation |
| 203 | # https://drf-yasg.readthedocs.io/en/stable/index.html |
| 204 | |
Mitja Nikolaus | cb50f2c | 2018-08-24 13:54:48 +0200 | [diff] [blame] | 205 | SWAGGER_SETTINGS = {"DEFAULT_INFO": "hiccup.urls.api_info"} |
Mitja Nikolaus | d199506 | 2018-07-30 14:10:27 +0200 | [diff] [blame] | 206 | |
Dirk Vogt | d8b956b | 2016-11-22 15:03:21 +0100 | [diff] [blame] | 207 | try: |
Mitja Nikolaus | 5c3e057 | 2018-07-30 13:36:14 +0200 | [diff] [blame] | 208 | from local_settings import * # noqa: F403, F401 |
Dirk Vogt | d8b956b | 2016-11-22 15:03:21 +0100 | [diff] [blame] | 209 | except ImportError as e: |
| 210 | pass |