· 7 years ago · Sep 05, 2018, 01:54 PM
1"""
2Django settings for npc project.
3
4Generated by 'django-admin startproject' using Django 1.11.4.
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
14from django.contrib.messages import constants as messages
15# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
16from django.urls import reverse
17from django.utils.translation import ugettext_lazy as _
18
19BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
20ENVIRONMENT = os.environ.get('ENVIRONMENT', 'dev')
21
22if ENVIRONMENT == 'production':
23 DEBUG = False
24elif ENVIRONMENT == 'staging':
25 DEBUG = True
26elif ENVIRONMENT == 'dev':
27 DEBUG = True
28# Quick-start development settings - unsuitable for production
29# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/
30
31# SECURITY WARNING: keep the secret key used in production secret!
32SECRET_KEY = 'd0w+vvvsi_7%f4q&9&)wc02ce-^7x05fw*eq!g$=z)lyiyy$&-'
33
34SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
35
36if ENVIRONMENT in ('production', 'staging'):
37 LOGGING = {
38 'version': 1,
39 'disable_existing_loggers': False,
40 'formatters': {
41 'verbose': {
42 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
43 },
44 'simple': {
45 'format': '%(levelname)s %(message)s'
46 },
47 },
48 'filters': {
49 'require_debug_true': {
50 '()': 'django.utils.log.RequireDebugTrue',
51 },
52 },
53 'handlers': {
54 'console': {
55 'level': 'INFO',
56 'filters': ['require_debug_true'],
57 'class': 'logging.StreamHandler',
58 'formatter': 'simple'
59 },
60 'mail_admins': {
61 'level': 'ERROR',
62 'class': 'django.utils.log.AdminEmailHandler',
63 }
64 },
65 'loggers': {
66 'django': {
67 'handlers': ['mail_admins', 'console'],
68 'level': 'ERROR',
69 'propagate': True,
70 },
71 'django.request': {
72 'handlers': ['mail_admins', 'console'],
73 'level': 'ERROR',
74 'propagate': False,
75 },
76 }
77 }
78
79ALLOWED_HOSTS = ['*']
80
81# Application definition
82
83INSTALLED_APPS = [
84 'ckeditor',
85 'ckeditor_uploader',
86 'djangocms_text_ckeditor',
87 'cms',
88 'captcha',
89 'djangocms_admin_style',
90 'django.contrib.admin',
91 'django.contrib.auth',
92 'django.contrib.contenttypes',
93 'django.contrib.sessions',
94 'django.contrib.messages',
95 'django.contrib.staticfiles',
96 'django.contrib.sites',
97 'easy_thumbnails',
98 'absolute',
99 'npc_files',
100 'account',
101 'aldryn_forms',
102 'aldryn_forms.contrib.email_notifications',
103 'emailit',
104 'filer',
105 'cmsplugin_filer_image',
106 'djangocms_picture',
107 'cms_plugins_accordion',
108 'cms_plugins_banner',
109 'menus',
110 'treebeard',
111 'constance',
112 'sekizai',
113 'npc_events',
114 'npc_contacts',
115 'npc_services',
116 'parler',
117 'adminsortable2',
118 'autoslug',
119 'formtools',
120 'djangoformsetjs',
121 'nested_admin',
122 'crispy_forms',
123 'mailqueue',
124 'cmsplugin_tabs',
125 'djangocms_slick_slider.apps.DjangocmsSlickSliderConfig',
126]
127
128CRISPY_TEMPLATE_PACK = 'bootstrap3'
129
130PARLER_LANGUAGES = {
131 1: (
132 {'code': 'sk', },
133 {'code': 'en-us', },
134 ),
135 'default': {
136 'fallback': 'sk', # defaults to PARLER_DEFAULT_LANGUAGE_CODE
137 'hide_untranslated': False, # the default; let .active_translations() return fallbacks too.
138 }
139}
140PARLER_DEFAULT_LANGUAGE_CODE = 'sk'
141
142MIDDLEWARE = [
143 'cms.middleware.utils.ApphookReloadMiddleware',
144 # 'django.middleware.cache.UpdateCacheMiddleware',
145 'django.middleware.security.SecurityMiddleware',
146 'django.contrib.sessions.middleware.SessionMiddleware',
147 'django.middleware.locale.LocaleMiddleware',
148 'django.middleware.common.CommonMiddleware',
149 'django.middleware.csrf.CsrfViewMiddleware',
150 'django.contrib.auth.middleware.AuthenticationMiddleware',
151 'django.contrib.messages.middleware.MessageMiddleware',
152 'django.middleware.clickjacking.XFrameOptionsMiddleware',
153 'cms.middleware.user.CurrentUserMiddleware',
154 'cms.middleware.page.CurrentPageMiddleware',
155 'cms.middleware.toolbar.ToolbarMiddleware',
156 'cms.middleware.language.LanguageCookieMiddleware',
157]
158
159CMS_TEMPLATES = (
160 ('home.html', 'Home'),
161)
162
163CMS_PLACEHOLDER_CONF = {
164 'banner': {
165 'plugins': ['BannerPlugin']
166 }
167}
168
169LOCALE_PATHS = (
170 'locale',
171)
172
173AUTH_PASSWORD_VALIDATORS = [
174 {
175 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
176 'OPTIONS': {
177 'min_length': 8,
178 }
179 },
180 {
181 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
182 },
183 {
184 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
185 },
186]
187
188MESSAGE_TAGS = {
189 messages.INFO: 'alert-info',
190 messages.SUCCESS: 'alert-success',
191 messages.WARNING: 'alert-warning',
192 messages.ERROR: 'alert-danger',
193}
194
195ROOT_URLCONF = 'npc.urls'
196
197CKEDITOR_UPLOAD_PATH = 'uploads/'
198
199CKEDITOR_CONFIGS = {
200 'default': {
201 'toolbar': 'full',
202 },
203}
204
205CKEDITOR_SETTINGS = {
206 'language': '{{ language }}',
207 'toolbar': 'full',
208}
209
210SITE_ID = 1
211
212TEMPLATES = [
213 {
214 'BACKEND': 'django.template.backends.django.DjangoTemplates',
215 'DIRS': [os.path.join(BASE_DIR, 'templates')],
216 'APP_DIRS': True,
217 'OPTIONS': {
218 'context_processors': [
219 'django.template.context_processors.debug',
220 'django.template.context_processors.request',
221 'django.contrib.auth.context_processors.auth',
222 'django.contrib.messages.context_processors.messages',
223 'sekizai.context_processors.sekizai',
224 'cms.context_processors.cms_settings',
225 ],
226 },
227 },
228]
229
230WSGI_APPLICATION = 'npc.wsgi.application'
231
232MAILQUEUE_ATTACHMENT_DIR = 'mailqueue-attachments'
233
234if ENVIRONMENT == 'production' or ENVIRONMENT == 'staging':
235 DATABASES = {
236 'default': {
237 'ENGINE': 'django.db.backends.postgresql_psycopg2',
238 'NAME': os.environ.get('POSTGRES_DB'),
239 'USER': os.environ.get('POSTGRES_USER'),
240 'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),
241 'HOST': os.environ.get('POSTGRES_HOST'),
242 'PORT': os.environ.get('POSTGRES_PORT'),
243 }
244 }
245
246elif ENVIRONMENT == 'dev':
247 DATABASES = {
248 'default': {
249 'ENGINE': 'django.db.backends.postgresql_psycopg2',
250 'NAME': 'smartshop',
251 'USER': 'vagrant',
252 'PASSWORD': 'vagrant',
253 'HOST': '127.0.0.1',
254 'PORT': '5432',
255 }
256 }
257
258INTERNAL_IPS = [os.environ.get('INTERNAL_IPS', '127.0.0.1')]
259
260ADMINS = [('SmartBase', 'erik.pribula@smartbase.sk')]
261if ENVIRONMENT == 'dev' or ENVIRONMENT == 'staging':
262 SERVER_EMAIL = 'test@npc.sk'
263elif len(ALLOWED_HOSTS) > 0:
264 SERVER_EMAIL = 'test@npc.sk'
265
266EMAIL_HOST = 'postfix'
267
268RENDER_PANELS = True
269
270THUMBNAIL_PROCESSORS = (
271 'easy_thumbnails.processors.colorspace',
272 'easy_thumbnails.processors.autocrop',
273 # 'easy_thumbnails.processors.scale_and_crop',
274 'filer.thumbnail_processors.scale_and_crop_with_subject_location',
275 'easy_thumbnails.processors.filters',
276)
277
278LANGUAGE_CODE = 'sk'
279
280LANGUAGES = [
281 ('sk', 'Slovak'),
282 ('en-us', 'English'),
283]
284
285CMS_LANGUAGES = {
286 1: [
287 {
288 'code': 'sk',
289 'name': _('Slovak'),
290 'public': True,
291 'hide_untranslated': False,
292 },
293 # {
294 # 'code': 'en-us',
295 # 'name': _('English'),
296 # 'public': True,
297 # 'fallbacks': ['sk'],
298 # 'hide_untranslated': False,
299 # 'redirect_on_fallback': False,
300 # },
301 ],
302}
303
304TIME_ZONE = 'Europe/Bratislava'
305
306USE_I18N = True
307
308USE_L10N = True
309
310USE_TZ = False
311
312CMS_PAGE_CACHE = False
313CMS_PLACEHOLDER_CACHE = False
314CMS_PLUGIN_CACHE = False
315
316STATICFILES_STORAGE = "django.contrib.staticfiles.storage.CachedStaticFilesStorage"
317#STATIC_ROOT = os.path.join(BASE_DIR, "static")
318STATICFILES_FINDERS = (
319 'django.contrib.staticfiles.finders.FileSystemFinder',
320 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
321)
322
323#CACHES = {
324# 'default': {
325# 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
326# 'LOCATION': 'staticfiles-filehashes'
327# },
328# 'staticfiles': {
329# 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
330# 'LOCATION': 'staticfiles-filehashes'
331# }
332#}
333
334STATICFILES_DIRS = [
335 os.path.join(BASE_DIR, "static")
336]
337
338STATIC_URL = "/static/"
339
340if ENVIRONMENT == 'production' or ENVIRONMENT == 'staging':
341 MEDIA_ROOT = '/srv/media-files'
342 STATIC_ROOT = '/srv/static-files'
343else:
344 MEDIA_ROOT = os.path.join(BASE_DIR, "media")
345
346MEDIA_URL = "/media/"
347
348CONSTANCE_CONFIG = {
349 'HOST_URL': ('http://127.0.0.1:2200/', 'Host url address', str),
350}
351
352GOOGLEMAPS_API_KEY = 'AIzaSyD7JdvG_KVjJegPS121FWyMNwQuud3Bulo'
353GENERATED_PDF_FILES_PATH = os.path.join(MEDIA_ROOT, 'generated', 'pdf')