2024-07-08 11:44:39 -04:00
"""
Django settings for demo project .
For more information on this file , see
https : / / docs . djangoproject . com / en / 1.7 / topics / settings /
For the full list of settings and their values , see
https : / / docs . djangoproject . com / en / 1.7 / ref / settings /
"""
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
from dotenv import load_dotenv
from os import getenv
2024-07-09 09:58:52 -04:00
from pathlib import Path
2024-07-08 11:44:39 -04:00
# Load environment variables from .env file
load_dotenv ( )
BASE_DIR = os . path . dirname ( os . path . dirname ( __file__ ) )
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = getenv ( ' SECRET_KEY ' )
# SECURITY WARNING: don't run with debug turned on in production!
2024-07-09 08:20:14 -04:00
DEBUG = getenv ( ' DEBUG ' , ' True ' ) == ' True '
2024-07-08 11:44:39 -04:00
# ALLOWED_HOSTS = [
# 'localhost',
# '127.0.0.1',
# 'server'
# ]
ALLOWED_HOSTS = [ ' * ' ]
INSTALLED_APPS = (
' django.contrib.admin ' ,
' django.contrib.auth ' ,
' django.contrib.contenttypes ' ,
' django.contrib.sessions ' ,
' django.contrib.messages ' ,
' django.contrib.staticfiles ' ,
' django.contrib.sites ' ,
' rest_framework ' ,
' rest_framework.authtoken ' ,
2024-11-29 17:51:32 -05:00
" allauth_ui " ,
2024-07-08 11:44:39 -04:00
' allauth ' ,
' allauth.account ' ,
2024-11-30 10:24:27 -05:00
# 'allauth.mfa',
2024-11-29 14:41:13 -05:00
' allauth.headless ' ,
2024-07-08 11:44:39 -04:00
' allauth.socialaccount ' ,
2024-11-29 17:51:32 -05:00
" widget_tweaks " ,
" slippers " ,
2024-07-08 11:44:39 -04:00
' drf_yasg ' ,
' corsheaders ' ,
' adventures ' ,
' worldtravel ' ,
' users ' ,
2024-08-23 13:56:27 -04:00
' django.contrib.gis ' ,
2024-07-08 11:44:39 -04:00
)
MIDDLEWARE = (
2024-07-09 09:58:52 -04:00
' whitenoise.middleware.WhiteNoiseMiddleware ' ,
2024-07-08 11:44:39 -04:00
' corsheaders.middleware.CorsMiddleware ' ,
' django.contrib.sessions.middleware.SessionMiddleware ' ,
' django.middleware.common.CommonMiddleware ' ,
' django.middleware.csrf.CsrfViewMiddleware ' ,
' django.contrib.auth.middleware.AuthenticationMiddleware ' ,
' django.contrib.messages.middleware.MessageMiddleware ' ,
' django.middleware.clickjacking.XFrameOptionsMiddleware ' ,
' allauth.account.middleware.AccountMiddleware ' ,
)
2024-08-04 21:50:15 -04:00
# disable verifications for new users
ACCOUNT_EMAIL_VERIFICATION = ' none '
2024-08-21 09:48:47 -04:00
CACHES = {
' default ' : {
' BACKEND ' : ' django.core.cache.backends.locmem.LocMemCache ' ,
}
}
2024-07-08 11:44:39 -04:00
# For backwards compatibility for Django 1.8
MIDDLEWARE_CLASSES = MIDDLEWARE
2024-07-20 21:39:33 -04:00
ROOT_URLCONF = ' main.urls '
2024-07-08 11:44:39 -04:00
# WSGI_APPLICATION = 'demo.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases
DATABASES = {
' default ' : {
2024-08-23 13:56:27 -04:00
' ENGINE ' : ' django.contrib.gis.db.backends.postgis ' ,
2024-07-08 11:44:39 -04:00
' NAME ' : getenv ( ' PGDATABASE ' ) ,
' USER ' : getenv ( ' PGUSER ' ) ,
' PASSWORD ' : getenv ( ' PGPASSWORD ' ) ,
' HOST ' : getenv ( ' PGHOST ' ) ,
' PORT ' : getenv ( ' PGPORT ' , 5432 ) ,
' OPTIONS ' : {
' sslmode ' : ' prefer ' , # Prefer SSL, but allow non-SSL connections
} ,
}
}
2024-11-30 10:24:27 -05:00
2024-07-08 11:44:39 -04:00
# Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/
LANGUAGE_CODE = ' en-us '
2024-08-17 08:30:24 -04:00
TIME_ZONE = ' UTC '
2024-07-08 11:44:39 -04:00
USE_I18N = True
USE_L10N = True
USE_TZ = True
2024-11-30 10:24:27 -05:00
2024-11-29 17:51:32 -05:00
2024-07-08 11:44:39 -04:00
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/
2024-07-09 09:58:52 -04:00
BASE_DIR = Path ( __file__ ) . resolve ( ) . parent . parent
2024-11-05 10:15:38 -05:00
STATIC_ROOT = BASE_DIR / " staticfiles "
2024-07-08 11:44:39 -04:00
STATIC_URL = ' /static/ '
2024-07-09 09:58:52 -04:00
2024-07-08 11:44:39 -04:00
MEDIA_URL = ' /media/ '
2024-11-05 10:55:06 -05:00
MEDIA_ROOT = BASE_DIR / ' media '
STATICFILES_DIRS = [ BASE_DIR / ' static ' ]
2024-07-08 11:44:39 -04:00
2024-11-30 10:24:27 -05:00
STORAGES = {
" staticfiles " : {
" BACKEND " : " whitenoise.storage.CompressedManifestStaticFilesStorage " ,
} ,
" default " : {
" BACKEND " : " django.core.files.storage.FileSystemStorage " ,
}
}
2024-07-08 11:44:39 -04:00
TEMPLATES = [
{
' BACKEND ' : ' django.template.backends.django.DjangoTemplates ' ,
' DIRS ' : [ os . path . join ( BASE_DIR , ' templates ' ) , ] ,
' APP_DIRS ' : True ,
' OPTIONS ' : {
' context_processors ' : [
' django.template.context_processors.debug ' ,
' django.template.context_processors.request ' ,
' django.contrib.auth.context_processors.auth ' ,
' django.contrib.messages.context_processors.messages ' ,
] ,
} ,
} ,
]
2024-11-30 10:24:27 -05:00
# Authentication settings
2024-08-16 10:59:31 -04:00
DISABLE_REGISTRATION = getenv ( ' DISABLE_REGISTRATION ' , ' False ' ) == ' True '
2024-08-24 23:20:50 -04:00
DISABLE_REGISTRATION_MESSAGE = getenv ( ' DISABLE_REGISTRATION_MESSAGE ' , ' Registration is disabled. Please contact the administrator if you need an account. ' )
2024-08-16 10:59:31 -04:00
2024-11-30 10:24:27 -05:00
ALLAUTH_UI_THEME = " dark "
SILENCED_SYSTEM_CHECKS = [ " slippers.E001 " ]
2024-07-09 09:58:52 -04:00
2024-07-08 11:44:39 -04:00
AUTH_USER_MODEL = ' users.CustomUser '
2024-11-29 14:41:13 -05:00
ACCOUNT_ADAPTER = ' users.adapters.NoNewUsersAccountAdapter '
2024-11-30 10:24:27 -05:00
ACCOUNT_SIGNUP_FORM_CLASS = ' users.form_overrides.CustomSignupForm '
SESSION_SAVE_EVERY_REQUEST = True
2024-08-04 18:05:19 -04:00
FRONTEND_URL = getenv ( ' FRONTEND_URL ' , ' http://localhost:3000 ' )
2024-08-04 17:30:43 -04:00
2024-12-12 11:01:09 -05:00
HEADLESS_FRONTEND_URLS = {
" account_confirm_email " : f " { FRONTEND_URL } /user/verify-email/ {{ key }} " ,
" account_reset_password " : f " { FRONTEND_URL } /user/reset-password " ,
" account_reset_password_from_key " : f " { FRONTEND_URL } /user/reset-password/ {{ key }} " ,
" account_signup " : f " { FRONTEND_URL } /signup " ,
# Fallback in case the state containing the `next` URL is lost and the handshake
# with the third-party provider fails.
" socialaccount_login_error " : f " { FRONTEND_URL } /account/provider/callback " ,
}
2024-11-29 14:41:13 -05:00
2024-07-08 11:44:39 -04:00
EMAIL_BACKEND = ' django.core.mail.backends.console.EmailBackend '
SITE_ID = 1
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_AUTHENTICATION_METHOD = ' username '
ACCOUNT_EMAIL_VERIFICATION = ' optional '
2024-08-04 18:05:19 -04:00
if getenv ( ' EMAIL_BACKEND ' , ' console ' ) == ' console ' :
EMAIL_BACKEND = ' django.core.mail.backends.console.EmailBackend '
else :
EMAIL_BACKEND = ' django.core.mail.backends.smtp.EmailBackend '
EMAIL_HOST = getenv ( ' EMAIL_HOST ' )
EMAIL_USE_TLS = getenv ( ' EMAIL_USE_TLS ' , ' True ' ) == ' True '
EMAIL_PORT = getenv ( ' EMAIL_PORT ' , 587 )
EMAIL_USE_SSL = getenv ( ' EMAIL_USE_SSL ' , ' False ' ) == ' True '
EMAIL_HOST_USER = getenv ( ' EMAIL_HOST_USER ' )
EMAIL_HOST_PASSWORD = getenv ( ' EMAIL_HOST_PASSWORD ' )
DEFAULT_FROM_EMAIL = getenv ( ' DEFAULT_FROM_EMAIL ' )
2024-07-08 11:44:39 -04:00
# EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# EMAIL_HOST = 'smtp.resend.com'
# EMAIL_USE_TLS = False
# EMAIL_PORT = 2465
# EMAIL_USE_SSL = True
# EMAIL_HOST_USER = 'resend'
# EMAIL_HOST_PASSWORD = ''
# DEFAULT_FROM_EMAIL = 'mail@mail.user.com'
REST_FRAMEWORK = {
' DEFAULT_AUTHENTICATION_CLASSES ' : (
' rest_framework.authentication.SessionAuthentication ' ,
) ,
' DEFAULT_SCHEMA_CLASS ' : ' rest_framework.schemas.coreapi.AutoSchema ' ,
}
SWAGGER_SETTINGS = {
' LOGIN_URL ' : ' login ' ,
' LOGOUT_URL ' : ' logout ' ,
}
2024-11-29 14:41:13 -05:00
CORS_ALLOWED_ORIGINS = [ origin . strip ( ) for origin in getenv ( ' CSRF_TRUSTED_ORIGINS ' , ' http://localhost ' ) . split ( ' , ' ) if origin . strip ( ) ]
2024-07-10 11:34:19 -04:00
CSRF_TRUSTED_ORIGINS = [ origin . strip ( ) for origin in getenv ( ' CSRF_TRUSTED_ORIGINS ' , ' http://localhost ' ) . split ( ' , ' ) if origin . strip ( ) ]
2024-11-29 14:41:13 -05:00
2024-07-08 11:44:39 -04:00
DEFAULT_AUTO_FIELD = ' django.db.models.AutoField '
2024-08-21 09:48:47 -04:00
LOGGING = {
' version ' : 1 ,
' disable_existing_loggers ' : False ,
' handlers ' : {
' console ' : {
' class ' : ' logging.StreamHandler ' ,
} ,
' file ' : {
' class ' : ' logging.FileHandler ' ,
' filename ' : ' scheduler.log ' ,
} ,
} ,
' root ' : {
' handlers ' : [ ' console ' , ' file ' ] ,
' level ' : ' INFO ' ,
} ,
' loggers ' : {
' django ' : {
' handlers ' : [ ' console ' , ' file ' ] ,
' level ' : ' INFO ' ,
' propagate ' : False ,
} ,
} ,
2024-09-11 16:08:10 -04:00
}
2024-09-15 11:10:34 -04:00
# https://github.com/dr5hn/countries-states-cities-database/tags
2024-11-30 10:24:27 -05:00
COUNTRY_REGION_JSON_VERSION = ' v2.4 '