· 6 years ago · Mar 14, 2019, 07:38 AM
1"""
2Django settings for wp_sdk_web_app project.
3
4Generated by 'django-admin startproject' using Django 1.11.1.
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# DEBUG = True
19# TEMPLATE_DEBUG = DEBUG
20# Quick-start development settings - unsuitable for production
21# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/
22
23# SECURITY WARNING: keep the secret key used in production secret!
24SECRET_KEY = 'xzd61%4pjrh$v)*=0!)*j&fru2vb$15hf03s4xd02e(#qs5g0y'
25
26# SECURITY WARNING: don't run with debug turned on in production!
27DEBUG = True
28IS_LIVE = os.environ.get('EMERGENCY_LIVE_MODE') == "False"
29
30ALLOWED_HOSTS = ['*']
31
32# All environment constant veriable
33# Google Map Key
34EMERGENCY_GOOGLE_API_KEY = 'AIzaSyAlm-wwIQKQKds4erD1Q-7NUTLI835yNNk'
35# Fire base details
36EMERGENCY_ANDROID_PUSH_API_KEY = 'AAAAferbZUQ:APA91bEYZq054vsccQcjcfjvZoBsTKhCEheZAoPBBeP1972lg70z37mJ07NjY7AQofrkYZdZgcpG3j5eRe2GZ3t8F3kfPW1SkLh96AnjpOJbqpqaE3xa6ERi0RYEiajwXf_0x5z45dY9'
37EMERGENCY_IOS_PUSH_API_KEY = 'AAAAferbZUQ:APA91bEYZq054vsccQcjcfjvZoBsTKhCEheZAoPBBeP1972lg70z37mJ07NjY7AQofrkYZdZgcpG3j5eRe2GZ3t8F3kfPW1SkLh96AnjpOJbqpqaE3xa6ERi0RYEiajwXf_0x5z45dY9'
38# Aws connect details
39EMERGENCY_AWS_CONNECT_SOURCE_PHONE = '+15132142052'
40EMERGENCY_AWS_CONNECT_FLOWID = 'ec5f5145-031e-422b-8e89-5fe84a230aae'
41EMERGENCY_AWS_CONNECT_INSTANCEID = 'bbb712e9-1fd5-4e79-973e-ce1f8ce62c92'
42
43# Aws SES details
44EMERGENCY_AWS_EMAIL_USERNAME = 'AKIAJ7T2JKKOSFS26E3Q'
45EMERGENCY_AWS_EMAIL_PASSWORD = 'ArIXFcSnOpvwx2V5EMOzfKzOIM1H20TV83o4d+eNoqhE'
46EMERGENCY_AWS_EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
47EMERGENCY_AWS_EMAIL_PORT = 465
48EMERGENCY_AWS_EMAIL = 'ritesh.seth@salutec-us.com'
49# AWS Details
50EMERGENCY_AWS_STORAGE_BUCKET_NAME = 'dev-salutec-backend'
51EMERGENCY_AWS_ACCESS_KEY_ID = 'AKIAIVLMWH4QE4HMLS6A'
52EMERGENCY_AWS_SECRET_ACCESS_KEY = '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'
53EMERGENCY_AWS_REGION = 'us-east-1'
54
55# AWS database Details
56EMERGENCY_DB_ENGINE = 'django.db.backends.postgresql'
57EMERGENCY_DB_NAME = 'dev_emergency_db'
58EMERGENCY_DB_USERNAME = 'dev_Emergenct_MU'
59EMERGENCY_DB_PASSWORD = 'Y8BG1_cREm3Hu?aT'
60EMERGENCY_DB_HOST = 'dev-emergency-backend.ckuiwl8ihcvu.us-east-1.rds.amazonaws.com'
61EMERGENCY_DB_PORT = '5432'
62
63# Application definition
64
65INSTALLED_APPS = [
66 'django.contrib.admin',
67 'django.contrib.auth',
68 'django.contrib.contenttypes',
69 'django.contrib.sessions',
70 'django.contrib.messages',
71 'django.contrib.staticfiles',
72 'django.contrib.sites',
73 'storages',
74 'import_export',
75 'rest_framework',
76 'rest_framework.authtoken',
77 'django_filters',
78 'django_cron',
79 'account',
80 'analytics',
81 'license',
82 'devices',
83 'devicemessages',
84 'base_station_log',
85 'downloads',
86 'demos',
87 'callbacks',
88 'oauth2_provider',
89 'university',
90 'endusers',
91 'api',
92 'multiselectfield',
93 'emergency',
94 'django_admin_listfilter_dropdown',
95 'dialcode',
96 'django.contrib.flatpages',
97
98]
99
100MIDDLEWARE = [
101 'django.middleware.security.SecurityMiddleware',
102 'django.contrib.sessions.middleware.SessionMiddleware',
103 'django.middleware.common.CommonMiddleware',
104 'django.middleware.csrf.CsrfViewMiddleware',
105 'django.contrib.auth.middleware.AuthenticationMiddleware',
106 'django.contrib.messages.middleware.MessageMiddleware',
107 'django.middleware.clickjacking.XFrameOptionsMiddleware',
108 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware'
109]
110
111ROOT_URLCONF = 'wp_sdk_web_app.urls'
112
113PASSWORD_HASHERS = (
114 'django.contrib.auth.hashers.PBKDF2PasswordHasher',
115 'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
116 'django.contrib.auth.hashers.BCryptPasswordHasher',
117 'django.contrib.auth.hashers.SHA1PasswordHasher',
118 'django.contrib.auth.hashers.MD5PasswordHasher',
119 'django.contrib.auth.hashers.CryptPasswordHasher'
120)
121
122TEMPLATES = [
123 {
124 'BACKEND': 'django.template.backends.django.DjangoTemplates',
125 'DIRS': [os.path.join(BASE_DIR, 'templates')],
126 'APP_DIRS': True,
127 'OPTIONS': {
128 'context_processors': [
129 'django.template.context_processors.debug',
130 'django.template.context_processors.request',
131 'django.contrib.auth.context_processors.auth',
132 'django.contrib.messages.context_processors.messages',
133 ],
134 },
135 },
136]
137
138WSGI_APPLICATION = 'wp_sdk_web_app.wsgi.application'
139
140SITE_ID = 1
141# Database
142if IS_LIVE:
143 DATABASES = {
144 'default': {
145 'ENGINE': EMERGENCY_DB_ENGINE,
146 'NAME': EMERGENCY_DB_NAME,
147 'USER': EMERGENCY_DB_USERNAME,
148 'PASSWORD': EMERGENCY_DB_PASSWORD,
149 'HOST': EMERGENCY_DB_HOST,
150 'PORT': EMERGENCY_DB_PORT,
151 }
152 }
153else:
154 DATABASES = {
155 'default': {
156 'ENGINE': 'django.db.backends.postgresql',
157 'NAME': 'salutec_feb05_live',
158 'USER': 'postgres',
159 'PASSWORD': 'seeroo123#',
160 'HOST': '192.168.1.121',
161 'PORT': '5432',
162 }
163 }
164# EMAIL SETUP
165# if IS_LIVE:
166EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
167EMAIL_HOST = EMERGENCY_AWS_EMAIL_HOST
168EMAIL_PORT = EMERGENCY_AWS_EMAIL_PORT
169EMAIL_HOST_USER = EMERGENCY_AWS_EMAIL_USERNAME
170EMAIL_HOST_PASSWORD = EMERGENCY_AWS_EMAIL_PASSWORD
171EMAIL_USE_TLS = True
172# else:
173# EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
174
175
176DEFAULT_FROM_EMAIL = EMERGENCY_AWS_EMAIL
177# Password validation
178# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
179
180AUTH_PASSWORD_VALIDATORS = [
181 {
182 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
183 },
184 {
185 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
186 },
187 {
188 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
189 },
190 {
191 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
192 },
193]
194
195# Internationalization
196# https://docs.djangoproject.com/en/1.11/topics/i18n/
197
198LANGUAGE_CODE = 'en-us'
199
200TIME_ZONE = 'US/Pacific'
201
202USE_I18N = True
203
204USE_L10N = True
205
206USE_TZ = False
207
208# File uploads 256 KB
209MAX_UPLOAD_SIZE = 262144
210
211FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', ]
212
213# Static files (CSS, JavaScript, Images)
214# https://docs.djangoproject.com/en/1.11/howto/static-files/
215
216
217# AWS S3
218USE_S3 = False
219
220AWS_HEADERS = { # see http://developer.yahoo.com/performance/rules.html#expires
221 'Expires': 'Thu, 31 Dec 2099 20:00:00 GMT',
222 'Cache-Control': 'max-age=94608000',
223}
224
225AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % EMERGENCY_AWS_STORAGE_BUCKET_NAME
226
227AWS_S3_OBJECT_PARAMETERS = {
228 'CacheControl': 'max-age=86400',
229}
230
231AWS_LOCATION = 'static'
232
233STATICFILES_DIRS = [
234 os.path.join(BASE_DIR, "static"),
235]
236
237STATICFILES_LOCATION = "static"
238
239if USE_S3:
240 STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, STATICFILES_LOCATION)
241 # Tell the staticfiles app to use S3Boto storage when writing the collected static files (when
242 # you run `collectstatic`).
243 STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
244 DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
245else:
246 STATIC_URL = '/static/'
247
248LOGIN_URL = '/account/login'
249LOGIN_REDIRECT_URL = 'account:dashboard'
250
251# Set to True for deployment
252VERIFY_SSL = False
253
254# AWS
255
256# CRON JOBS
257CRON_CLASSES = [
258 "account.cron.UploadInBucket",
259 "devicemessages.messages_updater.MessagesPollerCronJob",
260]
261
262LOGGING = {
263 'version': 1,
264 'disable_existing_loggers': False,
265 'handlers': {
266 'file': {
267 'level': 'DEBUG',
268 'class': 'logging.FileHandler',
269 'filename': 'debug.log',
270 },
271 },
272 'loggers': {
273 'django': {
274 'handlers': ['file'],
275 'level': 'DEBUG',
276 'propagate': True,
277 },
278 },
279}
280
281# Sessions
282SESSION_COOKIE_AGE = 43200
283
284REST_FRAMEWORK = {
285 # 'DEFAULT_PERMISSION_CLASSES': (
286 # 'rest_framework.permissions.IsAuthenticated',
287 # ),
288 'DEFAULT_AUTHENTICATION_CLASSES': (
289 'rest_framework.authentication.SessionAuthentication',
290 'rest_framework.authentication.TokenAuthentication',
291 'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
292 ),
293 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
294 'PAGE_SIZE': 100,
295 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)
296}
297
298# WKS
299if IS_LIVE:
300 WKS_DM_URL = 'DEPRECATED'
301else:
302 WKS_DM_URL = 'DEPRECATED'
303
304# SSL
305if IS_LIVE:
306 SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
307# SECURE_SSL_REDIRECT = True
308# SESSION_COOKIE_SECURE = True
309# CSRF_COOKIE_SECURE = True
310
311AUTH_USER_MODEL = 'account.User'
312
313DEFAULT_OTP_SUBJECT = "EMERGENCY"
314DEFAULT_PHONE_CODE = "+91"