· 8 years ago · Jul 14, 2017, 12:14 PM
1"""
2Django settings for store project.
3
4Generated by 'django-admin startproject' using Django 1.10.1.
5
6For more information on this file, see
7https://docs.djangoproject.com/en/1.10/topics/settings/
8
9For the full list of settings and their values, see
10https://docs.djangoproject.com/en/1.10/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__)))
17ROOT_DIR = os.path.dirname(BASE_DIR)
18
19INTERNAL_IPS = ('127.0.0.1',)
20
21# Quick-start development settings - unsuitable for production
22# See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/
23
24# SECURITY WARNING: keep the secret key used in production secret!
25SECRET_KEY = 'q1c)hwyp(()8c6%)_*9y22p157r6y3d2@)m=1u357ug#9qo*)s'
26
27# SECURITY WARNING: don't run with debug turned on in production!
28DEBUG = False
29
30# ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']
31ALLOWED_HOSTS = ['.chadomarket.ru']
32
33# TEMPLATE_DEBUG = DEBUG
34# THUMBNAIL_DEBUG = True
35# Application definition
36
37INSTALLED_APPS = [
38 'django.contrib.admin',
39 'registration',
40 'django.contrib.auth',
41 'django.contrib.contenttypes',
42 'django.contrib.sessions',
43 'django.contrib.messages',
44 'django.contrib.flatpages',
45 'django.contrib.staticfiles',
46 'django.contrib.sites',
47 'django_extensions',
48 'django.contrib.gis',
49 'django.contrib.humanize',
50 'django.contrib.postgres.search',
51 'django.contrib.sitemaps',
52 'django_rq',
53 # 'debug_toolbar',
54 'extra_views',
55 # 'haystack',
56 'sorl.thumbnail',
57 'password_reset',
58 'mptt',
59 'rest_framework',
60 'widget_tweaks',
61 'django_mptt_admin',
62 'common',
63 'core',
64 'news',
65 'checkout',
66 'address',
67 'shipping',
68 'catalogue',
69 'catalogue.reviews',
70 'partner',
71 'basket',
72 'order',
73 'wishlists',
74 'customer',
75 'offer',
76 'voucher',
77 'comparelists',
78 'logistics_exchange',
79 'dashboard',
80 'api',
81 'shop_1c_exchange',
82 'parsers',
83 'c1_shop_exchange',
84 'robots',
85 'soclinks',
86 'sales',
87 'payment',
88 'tinymce',
89 'call_centr',
90 'ordermanagerwallet',
91 'exchange_to_site',
92]
93
94MIDDLEWARE = [
95 'django.middleware.security.SecurityMiddleware',
96 'django.contrib.sessions.middleware.SessionMiddleware',
97 'django.middleware.locale.LocaleMiddleware',
98 # 'django.middleware.cache.UpdateCacheMiddleware',
99 'django.middleware.common.CommonMiddleware',
100 # 'django.middleware.cache.FetchFromCacheMiddleware',
101 'django.middleware.csrf.CsrfViewMiddleware',
102 'django.contrib.auth.middleware.AuthenticationMiddleware',
103 'django.contrib.messages.middleware.MessageMiddleware',
104 'django.middleware.clickjacking.XFrameOptionsMiddleware',
105 # 'debug_toolbar.middleware.DebugToolbarMiddleware',
106 'basket.middleware.BasketMiddleware',
107 'common.middleware.SimpleMiddleware',
108 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
109 'call_centr.middleware.HeaderCountersMiddleware'
110]
111
112ROOT_URLCONF = 'store.urls'
113
114TINYMCE_DEFAULT_CONFIG = {
115 'plugins': "table,spellchecker,paste,searchreplace,directionality",
116 'theme': "advanced",
117 'cleanup_on_startup': True,
118 'custom_undo_redo_levels': 10
119 }
120
121TEMPLATES = [
122 {
123 'BACKEND': 'django.template.backends.django.DjangoTemplates',
124 'DIRS': [os.path.join(ROOT_DIR, 'templates')],
125 'APP_DIRS': True,
126 'OPTIONS': {
127 'context_processors': [
128 'django.template.context_processors.debug',
129 'django.template.context_processors.request',
130 'django.contrib.auth.context_processors.auth',
131 'django.contrib.messages.context_processors.messages',
132 'django.contrib.auth.context_processors.auth',
133 # Ðаш контекÑтный процеÑÑор Ð´Ð»Ñ Ñоц Ñетей
134 'common.context_processors.geo_city',
135 'common.context_processors.get_current_path',
136 'common.context_processors.get_main_categories',
137 'soclinks.processor.soclink',
138 'call_centr.context_processors.call_orders'
139 ],
140 },
141 },
142]
143
144WSGI_APPLICATION = 'store.wsgi.application'
145
146
147DATABASES = {
148
149 # 'shop_1c_exchange': {
150 # 'NAME': 'chadomarket',
151 # # 'NAME': 'orders_exchange',
152 # 'ENGINE': 'django.db.backends.mysql',
153 # 'USER': 'root',
154 # 'PASSWORD': 'BtvaaLmFv4IK',
155 # 'HOST': '138.201.207.105',
156 # 'PORT': '3307',
157 # 'OPTIONS': {'charset': 'utf8'},
158 # },
159 # 'beta_shop_1c_exchange': {
160 # 'NAME': 'orders_exchange',
161 # 'ENGINE': 'django.db.backends.mysql',
162 # 'USER': 'root',
163 # 'PASSWORD': '123456',
164 # 'HOST': '127.0.0.1',
165 # 'PORT': '3310',
166 # 'OPTIONS': {'charset': 'utf8'},
167 # },
168 #
169 'nomenklatura': {
170 'NAME': 'nomenklatura_test',
171 'ENGINE': 'django.db.backends.mysql',
172 'USER': 'root',
173 'PASSWORD': 'BtvaaLmFv4IK',
174 'HOST': '138.201.207.105',
175 'PORT': '3307',
176 },
177 'shop_1c_exchange': {
178 'NAME': 'chadomarket',
179 'ENGINE': 'django.db.backends.mysql',
180 'USER': 'root',
181 'PASSWORD': 'BtvaaLmFv4IK',
182 'HOST': '138.201.207.105',
183 'PORT': '3307',
184 },
185}
186
187# Password validation
188# https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators
189
190AUTH_PASSWORD_VALIDATORS = [
191 {
192 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
193 },
194 {
195 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
196 },
197 {
198 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
199 },
200 {
201 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
202 },
203]
204
205# Internationalization
206# https://docs.djangoproject.com/en/1.10/topics/i18n/
207
208LANGUAGE_CODE = 'ru-RU'
209
210
211TIME_ZONE = 'Europe/Moscow'
212
213USE_I18N = True
214
215USE_L10N = True
216
217USE_TZ = True
218
219# Static files (CSS, JavaScript, Images)
220# https://docs.djangoproject.com/en/1.10/howto/static-files/
221
222STATIC_URL = '/static/'
223MEDIA_URL = '/media/'
224
225STATIC_ROOT = os.path.join(ROOT_DIR, 'static')
226MEDIA_ROOT = os.path.join(ROOT_DIR, 'media')
227
228STATICFILES_DIRS = (
229 os.path.join(ROOT_DIR, 'assets'),
230)
231
232AUTHENTICATION_BACKENDS = (
233 # 'customer.auth_backends.EmailBackend',
234 'django.contrib.auth.backends.ModelBackend',
235)
236
237EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
238
239EMAIL_HOST = 'localhost'
240EMAIL_PORT = 25
241EMAIL_HOST_USER = ''
242EMAIL_HOST_PASSWORD = ''
243# EMAIL_USE_TLS = True
244
245AUTH_USER_MODEL = 'customer.User'
246ACCOUNT_ACTIVATION_DAYS = 7
247REGISTRATION_AUTO_LOGIN = True
248LOGIN_REDIRECT_URL = '/'
249LOGIN_URL = '/users/login/'
250
251SITE_ID = 1
252
253HAYSTACK_CONNECTIONS = {
254 'default': {
255 'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
256 'URL': 'http://127.0.0.1:8983/solr/',
257 'INCLUDE_SPELLING': True
258 },
259}
260CART_PRODUCT_MODEL = 'products.models.Product'
261OSCAR_IMAGE_FOLDER = 'images/products/%Y/%m/'
262OSCAR_SLUG_ALLOW_UNICODE = False
263OSCAR_DELETE_IMAGE_FILES = True
264OSCAR_DEFAULT_CURRENCY = 'RUB'
265
266gettext_noop = lambda s: s
267
268LANGUAGES = (
269 ('ru', gettext_noop('Russian')),
270 ('en-gb', gettext_noop('British English')),
271)
272OSCAR_REQUIRED_ADDRESS_FIELDS = ('first_name', 'last_name', 'line1',
273 'line4', 'postcode', 'country')
274OSCAR_EAGER_ALERTS = True
275
276OSCAR_BASKET_COOKIE_LIFETIME = 7 * 24 * 60 * 60
277OSCAR_BASKET_COOKIE_OPEN = 'oscar_open_basket'
278OSCAR_BASKET_COOKIE_SECURE = False
279OSCAR_MAX_BASKET_QUANTITY_THRESHOLD = 10000
280
281OSCAR_HIDDEN_FEATURES = []
282OSCAR_MISSING_IMAGE_URL = 'image_not_found.jpg'
283
284# теÑтовые точно рабочие данные
285SPSR_LOGIN = 'Chadomarket'
286SPSR_PASSW = 'jf7HjUv'
287SPSR_URL = 'https://3pl.spsr.ru/webapi/sc/execute'
288SPSR_EX_LOGIN = '7702614911CHA'
289SPSR_EX_PASSW = 'hh56IC'
290SPSR_EX_IKN = '7702614911'
291SPSR_EX_URL = 'https://api.spsr.ru'
292
293PICKPOINT_URL = 'http://pickpoint.ru/postamats.xml'
294
295# required params in template below. option params are handling by constructor(get_string param).
296SPSR_EX_CALC_URL = ('http://spsr.ru/tarifcalc/')
297
298OSCAR_DASHBOARD_NAVIGATION = [
299 {
300 'label': 'Dashboard',
301 'icon': 'icon-th-list',
302 'url_name': 'dashboard:index',
303 },
304 {
305 'label': 'Каталог',
306 'icon': 'icon-sitemap',
307 'children': [
308 {
309 'label': 'Продукты',
310 'url_name': 'dashboard:catalogue-product-list',
311 },
312
313 {
314 'label': 'Категории',
315 'url_name': 'dashboard:catalogue-category-list',
316 },
317 ]
318 },
319 {
320 'label': 'Пользователи',
321 'icon': 'icon-group',
322 },
323 {
324 'label': 'ПредложениÑ',
325 'icon': 'icon-bullhorn',
326 },
327]
328OSCAR_DASHBOARD_DEFAULT_ACCESS_FUNCTION = 'dashboard.nav.default_access_fn' # noqa
329OSCAR_ACCOUNTS_REDIRECT_URL = 'customer:profile-view'
330
331OSCAR_ALLOW_ANON_REVIEWS = True
332OSCAR_MODERATE_REVIEWS = False
333
334# GEOIP_LIBRARY_PATH = '/usr/local/Cellar/geoip/1.6.9/bin/geoiplookup'
335GEOIP_PATH = os.path.join(ROOT_DIR, 'geoip2')
336# GEOIP_PATH = os.path.join(MEDIA_ROOT, 'geoip')
337GEOIP_COUNTRY = 'GeoLite2-Country.mmdb'
338GEOIP_CITY = 'GeoLite2-City.mmdb'
339
340REGISTRATION_FORM = 'customer.forms.CustomerRegistrationForm'
341
342OSCAR_SLUG_FUNCTION = 'core.utils.default_slugifier'
343OSCAR_SLUG_MAP = {}
344OSCAR_SLUG_BLACKLIST = []
345OSCAR_SLUG_ALLOW_UNICODE = False
346
347# Recently-viewed products
348OSCAR_RECENTLY_VIEWED_COOKIE_LIFETIME = 7 * 24 * 60 * 60
349OSCAR_RECENTLY_VIEWED_COOKIE_NAME = 'oscar_history'
350OSCAR_RECENTLY_VIEWED_COOKIE_SECURE = False
351OSCAR_RECENTLY_VIEWED_PRODUCTS = 20
352
353REST_FRAMEWORK = {
354 'DEFAULT_AUTHENTICATION_CLASSES': [
355 'rest_framework.authentication.BasicAuthentication',
356 'rest_framework.authentication.SessionAuthentication',
357 ],
358 #
359 # 'DEFAULT_PERMISSION_CLASSES': [
360 # 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly',
361 # # 'rest_framework.permissions.DjangoModelPermissions',
362 # ],
363
364 'PAGE_SIZE': 50,
365 'DEFAULT_FILTER_BACKENDS': (
366 # 'rest_framework_filters.backends.DjangoFilterBackend',
367 'django_filters.rest_framework.DjangoFilterBackend',
368 ),
369}
370
371YANDEX_MONEY = {'shop_password': 'x1uvmS9Iq8WBE3Oo'}
372
373if DEBUG:
374 YANDEX_MONEY.update({
375 # 'url': 'https://demomoney.yandex.ru/eshop.xml',
376 'url': 'https://money.yandex.ru/eshop.xml',
377 'shop_id': 87651,
378 # 'scid': 81169,
379 'scid': 81169,
380 })
381else:
382 YANDEX_MONEY.update({
383 'url': 'https://demomoney.yandex.ru/eshop.xml',
384 # 'url': 'https://money.yandex.ru/eshop.xml',
385 'shop_id': 87651,
386 # 'scid': 81169,
387 'scid': 545724,
388 })
389
390SHOP_ID = 121328
391SC_ID = 549219
392
393YANDEX_MONEY_SHOP_ID = 121328
394YANDEX_MONEY_SCID = 549219
395YANDEX_MONEY_PASSWORD = 'ffds3234sDfwspz'
396
397
398CACHES = {
399 'default': {
400 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
401 'LOCATION': '/var/tmp/django_cache',
402 'TIMEOUT': 60,
403 'OPTIONS': {
404 'MAX_ENTRIES': 1000
405 }
406 }
407}
408
409FROM_EMAIL = 'stranger@zYzXzzaCojAW.localdomain'
410
411RQ_QUEUES = {
412 'default': {
413 'HOST': 'localhost',
414 'PORT': 6379,
415 'DB': 8,
416 },
417}
418
419
420PRIVATE_FILE = os.path.join(ROOT_DIR, 'private.key')
421CERT_FILE = os.path.join(ROOT_DIR, '121328.cer')
422
423DEFAULT_FROM_EMAIL = 'no-reply@chadomarket.ru'