· 6 years ago · Oct 11, 2019, 01:22 PM
1"""
2Django settings for ag_one project.
3
4Generated by 'django-admin startproject' using Django 1.11.23.
5
6For more information on this file, see
7https://docs.djangoproject.com/en/1.11/topics/settings/
8
9For the full list of settings and their values, see
10https://docs.djangoproject.com/en/1.11/ref/settings/
11"""
12
13import os
14
15# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
16BASE_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.11/howto/deployment/checklist/
21
22# SECURITY WARNING: keep the secret key used in production secret!
23SECRET_KEY = 'asdjh&@*139hjh@*(H!98u1h2jAJD78*@26748*&*7dfj'
24
25DEP_LEVEL = os.getenv("DEPLOYMENT_LEVEL")
26
27# SECURITY WARNING: don't run with debug turned on in production!
28DEBUG = DEP_LEVEL != "prod"
29
30USE_AWS = True
31
32
33ALLOWED_HOSTS = ['localhost', '0.0.0.0', 'web', 'webprod', '95.182.122.171'] # TODO: remove after GREAT UPDATE
34
35
36# Application definition
37
38INSTALLED_APPS = [
39 'django.contrib.admin',
40 'django.contrib.auth',
41 'django.contrib.contenttypes',
42 'django.contrib.sessions',
43 'django.contrib.messages',
44 'django.contrib.staticfiles',
45
46 'storages',
47 'social_django',
48 'paypal.standard.ipn',
49 'compressor',
50
51 'apps.public.base',
52 'apps.public.payment',
53 'apps.public.blog'
54]
55
56MIDDLEWARE = [
57 'django.middleware.security.SecurityMiddleware',
58 'django.contrib.sessions.middleware.SessionMiddleware',
59 'django.middleware.locale.LocaleMiddleware',
60 'django.middleware.common.CommonMiddleware',
61 'django.middleware.csrf.CsrfViewMiddleware',
62 'django.contrib.auth.middleware.AuthenticationMiddleware',
63 'django.contrib.messages.middleware.MessageMiddleware',
64 'django.middleware.clickjacking.XFrameOptionsMiddleware',
65]
66
67ROOT_URLCONF = 'ag_one.urls'
68
69TEMPLATES = [
70 {
71 'BACKEND': 'django.template.backends.django.DjangoTemplates',
72 'DIRS': [os.path.join(BASE_DIR, 'templates')],
73 'APP_DIRS': True,
74 'OPTIONS': {
75 'context_processors': [
76 'django.template.context_processors.debug',
77 'django.template.context_processors.request',
78 'django.contrib.auth.context_processors.auth',
79 'django.contrib.messages.context_processors.messages',
80 'django.template.context_processors.i18n',
81 ],
82 'debug': DEBUG
83 },
84 },
85]
86
87WSGI_APPLICATION = 'ag_one.wsgi.application'
88
89
90# Database
91# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
92
93DATABASES = {
94 'default': {
95 'ENGINE': 'django.db.backends.postgresql',
96 'NAME': 'postgres',
97 'USER': 'postgres',
98 'HOST': os.getenv('DATABASE_HOST'),
99 'PORT': 5432,
100 }
101}
102
103
104if DEP_LEVEL == "dev":
105 DATABASES['default']['PORT'] = os.getenv('DATABASE_PORT')
106
107
108# Password validation
109# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
110
111AUTH_PASSWORD_VALIDATORS = [
112 {
113 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
114 },
115 {
116 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
117 },
118 {
119 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
120 },
121 {
122 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
123 },
124]
125
126
127AUTHENTICATION_BACKENDS = (
128 'social_core.backends.google.GoogleOAuth2',
129 'social_core.backends.facebook.FacebookOAuth2',
130 'django.contrib.auth.backends.ModelBackend',
131)
132
133SOCIAL_AUTH_URL_NAMESPACE = 'social'
134
135SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '955293671808-dhsjadajsd78awedahdjsh.apps.googleusercontent.com'
136SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'SDJkf89dIUOWf788dfs'
137SOCIAL_AUTH_FACEBOOK_KEY = '2835472895734985'
138SOCIAL_AUTH_FACEBOOK_SECRET = '6df7sdf7sd8f78sdfsdf78'
139
140# Internationalization
141# https://docs.djangoproject.com/en/1.11/topics/i18n/
142
143LANGUAGE_CODE = 'en'
144LANGUAGES = (
145 ('en', 'English'),
146 ('ru', 'Русский'),
147)
148
149TIME_ZONE = 'UTC'
150
151USE_I18N = True
152USE_L10N = True
153USE_TZ = True
154
155LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]
156
157# Static files (CSS, JavaScript, Images)
158# https://docs.djangoproject.com/en/1.11/howto/static-files/
159
160
161COMPRESS_PRECOMPILERS = (
162 ('text/x-scss', 'django_libsass.SassCompiler'), # https://github.com/torchbox/django-libsass
163)
164
165COMPRESS_FILTERS = {
166 'js': ['compressor.filters.yuglify.YUglifyJSFilter'],
167 'css': ['compressor.filters.css_default.CssAbsoluteFilter']
168}
169
170COMPRESS_YUGLIFY_BINARY = '/usr/local/bin/yuglify'
171# COMPRESS_YUGLIFY_JS_ARGUMENTS = "--mangle"
172
173COMPRESS_ENABLED = True
174
175# Redirect urls
176LOGOUT_REDIRECT_URL = '/'
177LOGIN_REDIRECT_URL = '/'
178
179
180# Payments
181PAYPAL_RECEIVER_EMAIL = 'alickgz9@gmail.com'
182PAYPAL_TEST = True
183
184
185# AWS
186if USE_AWS:
187 __s3_storage = 'storages.backends.s3boto3.S3Boto3Storage'
188 AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')
189 AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')
190 AWS_STORAGE_BUCKET_NAME = os.getenv('AWS_STORAGE_BUCKET_NAME')
191 AWS_S3_HOST = 's3-eu-west-1.amazonaws.com'
192 AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.{AWS_S3_HOST}'
193 AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400'}
194
195 STATIC_ROOT = 'build/static'
196 MEDIA_ROOT = 'build/media'
197
198 STATIC_LOCATION = 'static'
199 STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{STATIC_LOCATION}/'
200 STATICFILES_STORAGE = __s3_storage
201
202 PUBLIC_MEDIA_LOCATION = 'media'
203 MEDIA_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{PUBLIC_MEDIA_LOCATION}/'
204 DEFAULT_FILE_STORAGE = 'ag_one.storage_backends.MediaStorage'
205
206 COMPRESS_STORAGE = __s3_storage
207 COMPRESS_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/'
208
209else:
210 STATIC_URL = '/static/'
211 STATIC_ROOT = os.path.join(BASE_DIR, 'build', 'static')
212
213 MEDIA_URL = '/media/'
214 MEDIA_ROOT = os.path.join(STATIC_ROOT, 'media')
215
216 #STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
217
218
219STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
220STATICFILES_FINDERS = (
221 'django.contrib.staticfiles.finders.FileSystemFinder',
222 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
223 'compressor.finders.CompressorFinder'
224)
225
226
227IMAGE_FORMATS = ['png', 'jpg', 'gif']