· 9 years ago · Jan 23, 2017, 04:06 PM
1"""
2Django settings for zona_mk project.
3
4Generated by 'django-admin startproject' using Django 1.9.7.
5
6For more information on this file, see
7https://docs.djangoproject.com/en/1.9/topics/settings/
8
9For the full list of settings and their values, see
10https://docs.djangoproject.com/en/1.9/ref/settings/
11"""
12
13import os
14from django.utils.translation import get_language
15from django.utils.translation import ugettext_lazy as _
16from django.core.urlresolvers import reverse_lazy
17
18
19
20# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
21BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
22
23# ID of the site used for authentication with SocialAccounts
24SITE_ID = 4
25
26# Used to skip sending confirmation mail , instead print in log
27# EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
28# E-mail settings
29DEFAULT_FROM_EMAIL='info@zona.mk' # or webmaster@servername
30SERVER_EMAIL='info@zona.mk' # or 'root@servername'
31EMAIL_HOST='mail.zona.mk'
32EMAIL_PORT = 26
33EMAIL_HOST_USER = 'info@zona.mk'
34EMAIL_HOST_PASSWORD = 'zona@4455'
35DEFAULT_EMAIL_FROM = 'info@zona.mk'
36EMAIL_USE_TLS = True
37
38
39# Quick-start development settings - unsuitable for production
40# See https://docs.djangoproject.com/en/1.9/howto/deployment/checklist/
41
42# SECURITY WARNING: keep the secret key used in production secret!
43SECRET_KEY = '*41z2%$%!e5ngxg9%m16v!c1a^d3k_gt%q%*o6p+l+o$mow^q8'
44
45# SECURITY WARNING: don't run with debug turned on in production!
46DEBUG = True
47
48
49ALLOWED_HOSTS = ['localhost','127.0.0.1', '::8000']
50
51LOCALE_PATHS = (
52 os.path.join(BASE_DIR, 'locale'),
53)
54
55LOGIN_URL = 'account_login'
56LOGIN_REDIRECT_URL = 'home'
57
58# Application definition
59
60INSTALLED_APPS = [
61 'modeltranslation',
62 'django.contrib.admin',
63 'django.contrib.auth',
64 'django.contrib.contenttypes',
65 'django.contrib.sessions',
66 'django.contrib.messages',
67 'django.contrib.staticfiles',
68 'django.contrib.sites',
69 'advanced_search',
70 'haystack',
71 'accounts_local',
72 'allauth',
73 'allauth.account',
74 'allauth.socialaccount',
75 'nocaptcha_recaptcha',
76 'captcha',
77 'django_extensions',
78 'compressor',
79 'allauth.socialaccount.providers.facebook',
80 'allauth.socialaccount.providers.google',
81 'allauth.socialaccount.providers.twitter',
82 'bootstrapform',
83 'analytical',
84 'django_social_share',
85 'listings',
86 'formtools',
87 'bootstrap_pagination',
88 'django.contrib.humanize',
89 'embed_video',
90 'adzone',
91 'recommend',
92 'auctions',
93 'file_resubmit',
94]
95
96MIDDLEWARE_CLASSES = [
97 'accounts_local.middleware.lang_middleware.ForceDefaultLanguageMiddleware',
98 'django.middleware.security.SecurityMiddleware',
99 'django.middleware.locale.LocaleMiddleware',
100 'django.contrib.sessions.middleware.SessionMiddleware',
101 'django.middleware.common.CommonMiddleware',
102 'django.middleware.csrf.CsrfViewMiddleware',
103 'django.contrib.auth.middleware.AuthenticationMiddleware',
104 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
105 'django.contrib.message',
106 's.middleware.MessageMiddleware',
107 'django.middleware.clickjacking.XFrameOptionsMiddleware',
108]
109
110ROOT_URLCONF = 'zona_mk.urls'
111
112TEMPLATES = [
113 {
114 'BACKEND': 'django.template.backends.django.DjangoTemplates',
115 'DIRS': [
116 os.path.join(BASE_DIR, 'templates' ),
117 os.path.join(BASE_DIR, 'accounts_local','templates' ),
118 os.path.join(BASE_DIR, 'listings','templates' ),
119 os.path.join(BASE_DIR, 'advanced_search','templates' ),
120 ],
121 'APP_DIRS': True,
122 'OPTIONS': {
123 'context_processors': [
124 'django.template.context_processors.debug',
125 'django.template.context_processors.request',
126 'django.template.context_processors.i18n',
127 'django.contrib.auth.context_processors.auth',
128 'django.contrib.messages.context_processors.messages',
129 "django.core.context_processors.request",
130 "adzone.context_processors.get_source_ip"
131 ],
132 },
133 },
134]
135
136
137AUTHENTICATION_BACKENDS = (
138 # Needed to login by username in Django admin, regardless of `allauth`
139 'django.contrib.auth.backends.ModelBackend',
140
141 # `allauth` specific authentication methods, such as login by e-mail
142 'allauth.account.auth_backends.AuthenticationBackend',
143)
144
145
146WSGI_APPLICATION = 'zona_mk.wsgi.application'
147
148
149# Database
150# https://docs.djangoproject.com/en/1.9/ref/settings/#databases
151
152DATABASES = {
153 # 'default': {
154 # 'ENGINE': 'django.db.backends.sqlite3',
155 # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
156 # }
157 'default': {
158 'ENGINE': 'django.db.backends.postgresql_psycopg2',
159 'NAME': 'zona_mk',
160
161 'USER': 'postgres',
162 'PASSWORD': 'postgres',
163 'HOST': 'localhost',
164 'PORT': '5432',
165 }
166}
167
168
169# Password vahlidation
170# https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators
171
172AUTH_PASSWORD_VALIDATORS = [
173 {
174 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
175 },
176 {
177 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
178 },
179 {
180 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
181 },
182 {
183 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
184 },
185]
186
187
188
189''' HAYSTACK SETTINGS '''
190# Haystack solr-search
191HAYSTACK_CONNECTIONS = {
192 'default': {
193 'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
194 'URL': 'http://127.0.0.1:8983/solr'
195 # ...or for multicore...
196 # 'URL': 'http://127.0.0.1:8983/solr/mysite',
197 },
198}
199HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
200
201
202
203
204''' Internationalization '''
205# https://docs.djangoproject.com/en/1.9/topics/i18n/
206LANGUAGE_CODE = 'mk'
207
208LANGUAGES = (
209 ('en', _('English')),
210 ('mk', _('Macedonian')),
211 ('al', _('Albanian')),
212 ('tr',_('Turkish')),
213)
214
215
216
217DEBUG_TOOLBAR_PATCH_SETTINGS = False
218
219TIME_ZONE = 'Europe/Skopje'
220
221USE_I18N = True
222#
223# USE_L10N = True
224#
225# USE_TZ = True
226
227
228
229''' Static files (CSS, JavaScript, Images) '''
230# https://docs.djangoproject.com/en/1.9/howto/static-files/
231
232# Static files - settings
233STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
234STATICFILES_DIRS = [
235 os.path.join(BASE_DIR, "static")
236]
237STATIC_URL = '/static/'
238
239STATICFILES_FINDERS = (
240 'django.contrib.staticfiles.finders.FileSystemFinder',
241 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
242 # other finders..
243 'compressor.finders.CompressorFinder',
244)
245COMPRESS_ROOT = STATIC_URL
246COMPRESS_OUTPUT_DIR = 'cache'
247COMPRESS_CSS_FILTERS = [
248'compressor.filters.cssmin.rCSSMinFilter',
249]
250# COMPRESS_ENABLED = True
251
252# Media files - settings
253MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
254MEDIA_URL = 'media/'
255
256YOUTUBE_CLIENT_SECRET = os.path.join(BASE_DIR, 'zona_mk', 'client_secret.json')
257
258''' NO-RECAPTCHA SETTINGS '''
259# reCAPTCHA settings
260NORECAPTCHA_SITE_KEY = '6LeRnCkTAAAAAN7VDNUDL1sVVQBr2CY7kxU-uV0h'
261NORECAPTCHA_SECRET_KEY = '6LeRnCkTAAAAABTzYTbz8ONiU56Ybz-9C1tTCT7V'
262# RECAPTCHA_USE_SSL = True # Defaults to False
263
264
265''' DJANGO ALLAUTH SETTINGS '''
266# Only E-MAIL is required
267ACCOUNT_EMAIL_VERIFICATION = "mandatory"
268ACCOUNT_EMAIL_REQUIRED = True
269ACCOUNT_USERNAME_REQUIRED = False
270ACCOUNT_AUTHENTICATION_METHOD = 'username_email'
271ACCOUNT_SIGNUP_FORM_CLASS = 'accounts_local.forms.SignupForm'
272ACCOUNT_FORMS = {
273 'login':'accounts_local.forms.LoginForm',
274 }
275ACCOUNT_ADAPTER = 'accounts_local.adapter.AccountAdapter'
276# LOGIN_REDIRECT_URL = '/'
277# SOCIALACCOUNT SETTINGS
278SOCIALACCOUNT_PROVIDERS = \
279 { 'google':
280 { 'SCOPE': ['profile', 'email'],
281 'AUTH_PARAMS': { 'access_type': 'online' } },
282 'facebook':
283 {'METHOD': 'oauth2',
284 'SCOPE': ['email', 'public_profile', 'user_friends'],
285 'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
286 'FIELDS': [
287 'id',
288 'email',
289 'name',
290 'first',
291 '_name',
292 'last_name',
293 'verified',
294 'locale',
295 'timezone',
296 'link',
297 'gender',
298 'updated_time'],
299 'EXCHANGE_TOKEN': True,
300 # 'LOCALE_FUNC': 'path.to.callable',
301 'VERIFIED_EMAIL': False,
302 'VERSION': 'v2.4'}}
303
304#Youtube - settings
305YOUTUBE_CLIENT_SECRET = os.path.join(os.path.dirname(os.path.realpath(__file__)),'client_secret.json')
306CONTENT_TYPES = ['video']
307MAX_UPLOAD_SIZE = 5242880
308ACCOUNT_EMAIL_SUBJECT_PREFIX = ""
309SOCIALACCOUNT_EMAIL_VERIFICATION = False
310
311
312CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.random_char_challenge'
313CAPTCHA_IMAGE_SIZE = (120,50)
314CAPTCHA_FONT_SIZE = 36
315CAPTCHA_LETTER_ROTATION = (-5, 5)
316CAPTCHA_NOISE_FUNCTIONS = ('captcha.helpers.noise_dots',)
317
318CELERY_IMPORTS = (
319 'auctions.celery',
320 'auctions.tasks',
321)
322
323MODELTRANSLATION_DEFAULT_LANGUAGE = 'en'
324MODELTRANSLATION_FALLBACK_LANGUAGES = ('en', 'mk',)
325MODELTRANSLATION_PREPOPULATE_LANGUAGE = 'en'
326MODELTRANSLATION_DEBUG = True
327
328CACHES = {
329 'default': {
330 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
331 },
332 "file_resubmit": {
333 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
334 "LOCATION": '/tmp/file_resubmit/'
335 },}