diff --git a/.gitignore b/.gitignore index 7ece646f..0226211e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,6 @@ Thumbs.db /proj/local.py .DS_Store locale -proj/settings.py collected_static # gulp diff --git a/Makefile b/Makefile index 013c057a..772dc2a0 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,6 @@ syncdb: @PYTHONPATH=$(PYTHONPATH):. DJANGO_SETTINGS_MODULE=$(project_name).settings ipython manage.py migrate run: - -/opt/solr/bin/solr start -p 8983 @PYTHONPATH=$(PYTHONPATH):. DJANGO_SETTINGS_MODULE=$(project_name).settings ipython manage.py runserver run-public: diff --git a/README.md b/README.md index ac6b4b52..9d4596c1 100644 --- a/README.md +++ b/README.md @@ -12,33 +12,58 @@ pip install south -U ### proj/local.py EXAMPLE ```python # -*- coding: utf-8 -*- -from proj.settings import * +from settings import * +DEBUG = True + +DEFAULT_HTTP_SCHEME = 'http' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'expomap', 'USER': 'root', - 'PASSWORD': '***', + 'PASSWORD': '1', 'HOST': '', 'PORT': '', } } -CACHES = { - "default": { - "BACKEND": "redis_cache.cache.RedisCache", - "LOCATION": "/var/run/redis/redis.sock", - "OPTIONS": { - "CLIENT_CLASS": "redis_cache.client.DefaultClient", - }, - } -} +TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', +) EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' INSTALLED_APPS += ('south',) + +# debug_toolbar settings +DEBUG_TOOLBAR_PATCH_SETTINGS = False +INTERNAL_IPS = ('127.0.0.1',) + +MIDDLEWARE_CLASSES += ( + 'debug_toolbar.middleware.DebugToolbarMiddleware', +) + +INSTALLED_APPS += ( + 'debug_toolbar', +) +JQUERY_URL = os.path.join(SITE_ROOT, 'static/client/js/jquery-ui-1.10.4.custom.min.js'), +DEBUG_TOOLBAR_PANELS = [ + #'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar.panels.staticfiles.StaticFilesPanel', + 'debug_toolbar.panels.templates.TemplatesPanel', + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.RedirectsPanel', +] ``` # @@ -77,3 +102,5 @@ bin/solr start -p 8983 python manage.py migrate expobanner 0001 --fake python manage.py migrate expobanner ``` + +Каталог support хранит конфиги для продакшн сервера diff --git a/docs/documentation.docx b/docs/documentation.docx deleted file mode 100644 index fabce23d..00000000 Binary files a/docs/documentation.docx and /dev/null differ diff --git a/fabfile.py b/fabfile.py deleted file mode 100644 index 7edaf533..00000000 --- a/fabfile.py +++ /dev/null @@ -1,380 +0,0 @@ -# -*- coding: utf-8 -*- -from os.path import join, basename -from collections import namedtuple, OrderedDict -import re -from fabric.api import * - - -env.roledefs = { - 'dev': ['root@176.121.11.165'], - 'prod': ['root@176.121.11.162'], -} -env.passwords = { - 'root@176.121.11.165:22': 'ue6R287QZfMc', - 'root@176.121.11.162:22': 'XcS2jx5e8k6n', -} - -REMOTE_HOME_DIR = '/home/www/expomap/' -LOCAL_HOME_DIR = '/home/as/PycharmProjects/expomap/' - -nginx_conf_tech = '/etc/nginx/sites-available/tech_work_hit.expomap.ru' -nginx_conf = '/etc/nginx/sites-available/hit.expomap.ru' -apache2_conf = '/etc/apache2/sites-available/proj.com' -settings_conf = join(REMOTE_HOME_DIR, 'proj/settings.py') -services = ['nginx', 'apache2'] - -stages = {} -tickets = {} -commands = {} - -def stage(stage_num): - def add_func(func): - if not callable(func): - raise NotImplementedError('func must be a callable') - func = ticket(func) - stages.setdefault(stage_num, OrderedDict()).update({func.__name__: func}) - return func - return add_func - - -def ticket(func): - if not callable(func): - raise NotImplementedError('func must be a callable') - # stages.setdefault(stage_num, OrderedDict()).update({func.__name__: func}) - tickets.update({func.__name__: func}) - return func - - -# command_pattern -# cp = re.compile('^python manage.py (?P\w+)$') -cp = re.compile('^(?P\w+)$') - -def register_command(command_string): - command = cp.match(command_string).group('command') - if not command: - raise ValueError('Invalid command string {command_string}'.format(command_string=command_string)) - def func(): - with cd(REMOTE_HOME_DIR): - run('python manage.py ' + command) - commands.update({command: func}) - -# run command -def rc(command): - if command in commands and callable(commands[command]): - commands[command]() - else: - raise ValueError('Command {command} is not callable'.format(command=command)) - -def set_host(host): - env.hosts = env.roledefs.get(host) - env.role = host - -def dev(): - set_host('dev') - -def prod(): - set_host('prod') - -def get_configs(): - localdir = join(LOCAL_HOME_DIR, 'support/', env.role) - get(nginx_conf, localdir) - get(apache2_conf, localdir) - get(join(REMOTE_HOME_DIR, 'schema.xml'), localdir) - get(settings_conf, localdir) - - -def put_configs(): - localdir = join(LOCAL_HOME_DIR, 'support/', env.role) - # nginx - # put(join(localdir, basename(nginx_conf)), - # nginx_conf) - # # apache2 - # put(join(localdir, basename(apache2_conf)), - # apache2_conf) - # settings - put(join(localdir, basename(settings_conf)), - settings_conf) - - -def newsletters_media(): - with cd(join(REMOTE_HOME_DIR, 'media')): - run('mkdir -p newsletter') - put( - join(LOCAL_HOME_DIR, 'media/newsletter'), - join(REMOTE_HOME_DIR, 'media') - ) - - -def call_state(state, only=None): - if only is not None and only in services: - run('service {only} {state}'.format(only=only, state=state)) - return - for service in services: - run('service {service} {state}'.format(service=service, state=state)) - - -def chown(): - with cd(REMOTE_HOME_DIR): - run('chown -Rv www-data:www-data .') - - -def pull(with_configs=False, func=None): - with cd(REMOTE_HOME_DIR): - call_state('stop', only='apache2') - run('git pull') - if with_configs: - put_configs() - if func is not None and func in tickets and callable(tickets[func]): - tickets[func]() - run('python manage.py migrate') - call_state('start', only='apache2') - - -def stage_init(stage_num): - with cd(REMOTE_HOME_DIR): - call_state('stop', only='apache2') - run('git fetch') - run('git checkout stage{stage_num}'.format(stage_num=stage_num)) - run('git pull') - # stage_num = int(stage_num) - # if stage_num in stages and isinstance(stages[stage_num], dict): - # for func_name, func in stages[stage_num].iteritems(): - # func() - # call_state('start', only='apache2') - - -def migrate(app_name): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate {app_name}'.format(app_name=app_name)) - - -def devmode(state=True): - localdir = join(LOCAL_HOME_DIR, 'support/', env.role) - # nginx - conf = nginx_conf_tech if state == True else nginx_conf - put(join(localdir, basename(conf)), nginx_conf) - run('/etc/init.d/nginx reload') - - -@stage(5) -def t1451(): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate expobanner') - -# temporary -register_command('banner_log_update_old') -register_command('banner_log_update') -# - -@stage(5) -def t1458(): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate service 0001 --fake') - run('python manage.py migrate service') - run('python manage.py set_events_services') - -register_command('set_events_services') - - -@stage(5) -def t1456(): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate expobanner') - - -@stage(5) -def t1463(): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate newsletter') - run('pip install pymorphy2[fast]') - run('pip install -U pymorphy2-dicts-ru') - - -@stage(5) -def t1460(): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate newsletter') - - -@ticket -def update_crontab(): - with cd(REMOTE_HOME_DIR): - run('python manage.py crontab remove') - run('python manage.py crontab add') - - -@stage(5) -def t1461(): - with cd(REMOTE_HOME_DIR): - run('pip install chainmap==1.0.2') - run('pip install suds==0.4') - run('python manage.py migrate conference') - run('python manage.py migrate exposition') - run('python manage.py update_events_filter_fields') - - -@ticket -def switch_to_stage4(): - with cd(REMOTE_HOME_DIR): - call_state('stop', only='apache2') - run('git fetch') - run('git checkout stage4') - run('git pull') - call_state('start', only='apache2') - -@ticket -def switch_to_stage5(): - with cd(REMOTE_HOME_DIR): - call_state('stop', only='apache2') - run('git fetch') - run('git checkout staget5') - run('git pull') - call_state('start', only='apache2') - -@ticket -def t1580(): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate') - run('python manage.py users_to_mailinglist') - -@ticket -def mailing(): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate newsletter 0010') - run('python manage.py migrate newsletter 0011 --fake') - run('python manage.py migrate newsletter') - run('python manage.py migrate newsletter 0010 --fake') - run('python manage.py migrate newsletter 0011') - run('python manage.py migrate newsletter --fake') - run('python manage.py migrate') - run('python manage.py newsletter_create_dailymail') - -@ticket -def mailing2(): - with cd(REMOTE_HOME_DIR): - run('python manage.py migrate newsletter 0010 --fake') - run('python manage.py migrate newsletter 0011') - run('python manage.py migrate newsletter --fake') - -@ticket -def t1609(): - with cd(REMOTE_HOME_DIR): - files = ['media/cache/3b/8e/3b8ee5e07a982562d873a69550dd47c9.jpg'] - for file in files: - put( - join(LOCAL_HOME_DIR, file), - join(REMOTE_HOME_DIR, file) - ) - -# def stage3_pre_final(): -# with cd(REMOTE_HOME_DIR): -# run('pip install pandas') -# run('pip install django-rosetta==0.7.6') -# run('git checkout master') -# run('git pull') -# call_state('stop') -# put_configs() -# run('python manage.py migrate conference 0001 --fake') -# run('python manage.py migrate conference') -# run('python manage.py migrate expobanner') -# run('python manage.py migrate theme 0001 --fake') -# run('python manage.py migrate theme 0002') -# run('python manage.py migrate article 0001 --fake') -# run('python manage.py migrate article 0002') -# run('python manage.py migrate stats_collector') -# run('python manage.py crontab remove') -# run('python manage.py crontab add') -# chown() -# call_state('start') - - -# def stage3_release(): -# call_state('stop') -# with cd(REMOTE_HOME_DIR): -# # run('python manage.py themeblog_to_blog') -# run('git fetch') -# run('git checkout stage3_release') -# run('git pull') -# # run('python manage.py migrate settings 0002 --fake') -# run('python manage.py migrate settings') -# run('python manage.py migrate article 0003') -# chown() -# call_state('start') - - -# def c_fix(): -# with cd(REMOTE_HOME_DIR): -# call_state('stop', only='apache2') -# run('git pull') -# run('python manage.py migrate expobanner') -# call_state('start', only='apache2') - - -# def stage4_firstrun(): -# with cd(REMOTE_HOME_DIR): -# call_state('stop') -# run('git fetch') -# run('git checkout stage4') -# # run('git checkout -- proj/settings.py') -# pull(with_configs=True) -# run('python manage.py syncdb') -# ticket1374() -# ticket1393() -# ticket1392() -# ticket1384() -# ticket1395() -# ticket1384_p1() -# ticket1384_p2() -# t1443() -# call_state('start') - - -# @ticket -# def ticket1395(): -# with cd(REMOTE_HOME_DIR): -# run('python manage.py accounts_check_url') - - -# @ticket -# def ticket1374(): -# with cd(REMOTE_HOME_DIR): -# run('python manage.py migrate theme') - - -# @ticket -# def ticket1393(): -# with cd(REMOTE_HOME_DIR): -# run('python manage.py migrate newsletter 0001 --fake') -# run('python manage.py migrate newsletter') - - -# @ticket -# def ticket1392(): -# with cd(REMOTE_HOME_DIR): -# run('python manage.py migrate newsletter') - - -# @ticket -# def ticket1384(): -# with cd(REMOTE_HOME_DIR): -# run('python manage.py migrate exposition 0001 --fake') -# run('python manage.py migrate exposition') -# run('python manage.py migrate conference') - - -# @ticket -# def ticket1384_p1(): -# with cd(REMOTE_HOME_DIR): -# run('python manage.py check_url') - - -# @ticket -# def ticket1384_p2(): -# with cd(REMOTE_HOME_DIR): -# run('python manage.py check_translation') - - -# @ticket -# def t1443(): -# with cd(REMOTE_HOME_DIR): -# run('chown -Rv www-data:www-data locale') diff --git a/jpegsrc.v8c.tar.gz b/jpegsrc.v8c.tar.gz deleted file mode 100644 index ae5d1c69..00000000 Binary files a/jpegsrc.v8c.tar.gz and /dev/null differ diff --git a/package.json b/package.json index 3c7bb660..f3e5dc80 100644 --- a/package.json +++ b/package.json @@ -30,10 +30,5 @@ "license": "BSD-2-Clause", "directories": { "doc": "docs" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@bitbucket.org/Bonus_05/expomap.git" - }, - "homepage": "https://bitbucket.org/Bonus_05/expomap#readme" + } } diff --git a/proj/production.py b/proj/production.py deleted file mode 100644 index 9ff19ae6..00000000 --- a/proj/production.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Django local settings -DEBUG = False - -ALLOWED_HOSTS = ['hit.expomap.ru', '195.66.79.152', '195.66.79.145', 'expomap.ru'] - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'test2', - 'USER': 'kotzilla', - 'PASSWORD': 'qazedc', - 'HOST': '', - 'PORT': '', - } -} diff --git a/support/dev/settings.py b/proj/settings.py similarity index 90% rename from support/dev/settings.py rename to proj/settings.py index aa2eb266..4bc60872 100644 --- a/support/dev/settings.py +++ b/proj/settings.py @@ -32,18 +32,20 @@ DATABASES = { CACHES = { "default": { - "BACKEND": "redis_cache.cache.RedisCache", - "LOCATION": "/tmp/redis.sock", - "OPTIONS": { - "CLIENT_CLASS": "redis_cache.client.DefaultClient", - }, + "BACKEND": "redis_cache.RedisCache", + "LOCATION": "localhost:6379", + 'OPTIONS': { + 'CLIENT_CLASS': 'redis_cache.client.DefaultClient', + } } } +# save sessions in redis +SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # Hosts/domain names that are valid for this site; required if DEBUG is False # See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts -ALLOWED_HOSTS = ['hit.expomap.ru', '195.66.79.152', '195.66.79.145', 'expomap.ru', '195.66.79.148'] +ALLOWED_HOSTS = ['expomap.ru'] DEFAULT_HTTP_SCHEME = 'https' # Local time zone for this installation. Choices can be found here: @@ -113,8 +115,11 @@ CKEDITOR_CONFIGS = { MEDIA_URL = '/media/' -STATIC_ROOT = os.path.join(SITE_ROOT, 'static') STATIC_URL = '/static/' +STATIC_ROOT = os.path.join(SITE_ROOT, 'collected_static') +STATICFILES_DIRS = ( + (os.path.join(SITE_ROOT, 'static')), +) STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', @@ -170,7 +175,6 @@ TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. - # os.path.join(SITE_ROOT, 'templates/debug_toolbar'), os.path.join(SITE_ROOT, 'templates/c_admin'), os.path.join(SITE_ROOT, 'templates/c_admin/accounts'), os.path.join(SITE_ROOT, 'templates/c_admin/article'), @@ -200,7 +204,16 @@ TEMPLATE_DIRS = ( os.path.join(SITE_ROOT, 'templates/client/photoreport'), os.path.join(SITE_ROOT, 'templates/client/includes'), os.path.join(SITE_ROOT, 'templates'), - #os.path.join(SITE_ROOT, 'templates/client/popups'), +) + +TEMPLATE_LOADERS = ( + ( + 'django.template.loaders.cached.Loader', + ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + ) + ), ) AUTH_USER_MODEL = 'accounts.User' @@ -402,15 +415,15 @@ CRONJOBS = [ ('*/5 * * * *', 'django.core.management.call_command', ['update_views_cache']), ('40 6 * * * ', 'django.core.management.call_command', ['newsletter_contacts_remove_notactivated']), + # временно закомментировал по просьбе клиента # ('41 5 * * *', 'django.core.management.call_command', ['newsletter_create_announce']), ('12 4 * * *', 'django.core.management.call_command', ['stats_daily']), ('5 10 * * *', 'django.core.management.call_command', ['update_events_filter_fields']), - ] PYMORPHY_DICTS = { - 'ru': { 'dir': os.path.join(SITE_ROOT, 'settings/russian_dicts')} #'/home/www/proj/settings/russian_dicts' }, + 'ru': { 'dir': os.path.join(SITE_ROOT, 'settings/russian_dicts')} } # search backend @@ -418,8 +431,6 @@ HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', 'URL': 'http://localhost:8983/solr' - # ...or for multicore... - # 'URL': 'http://127.0.0.1:8983/solr/mysite', }, } @@ -547,56 +558,11 @@ try: from local import * except ImportError, e: pass -# save sessions in redis -SESSION_ENGINE = 'django.contrib.sessions.backends.cache' -if not DEBUG: - # cache template loading - TEMPLATE_LOADERS = ( - ('django.template.loaders.cached.Loader', ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - )), - ) -else: - TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - ) - -# debug_toolbar settings - -if DEBUG: - DEBUG_TOOLBAR_PATCH_SETTINGS = False - INTERNAL_IPS = ('127.0.0.1','176.121.5.82', '176.121.11.162', '77.123.47.46') - - MIDDLEWARE_CLASSES += ( - 'debug_toolbar.middleware.DebugToolbarMiddleware', - ) - - INSTALLED_APPS += ( - 'debug_toolbar', - ) - JQUERY_URL = os.path.join(SITE_ROOT, 'static/client/js/jquery-ui-1.10.4.custom.min.js'), - DEBUG_TOOLBAR_PANELS = [ - #'debug_toolbar.panels.versions.VersionsPanel', - 'debug_toolbar.panels.timer.TimerPanel', - 'debug_toolbar.panels.settings.SettingsPanel', - 'debug_toolbar.panels.headers.HeadersPanel', - 'debug_toolbar.panels.request.RequestPanel', - 'debug_toolbar.panels.sql.SQLPanel', - 'debug_toolbar.panels.staticfiles.StaticFilesPanel', - 'debug_toolbar.panels.templates.TemplatesPanel', - 'debug_toolbar.panels.cache.CachePanel', - 'debug_toolbar.panels.signals.SignalsPanel', - 'debug_toolbar.panels.logging.LoggingPanel', - 'debug_toolbar.panels.redirects.RedirectsPanel', -] - # logging U_LOGFILE_SIZE = 1 * 1024 * 1024 U_LOGFILE_COUNT = 2 -DEFAULT_LOGGER_NAME = 'mail' +DEFAULT_LOGGER_NAME = 'django' LOGGING = { 'version': 1, 'disable_existing_loggers': False, @@ -619,7 +585,7 @@ LOGGING = { }, }, 'loggers': { - 'mail': { + 'django': { 'handlers': ['file'], 'propagate': True, 'level': 'DEBUG', diff --git a/schema_stage_6.xml b/schema.xml similarity index 100% rename from schema_stage_6.xml rename to schema.xml diff --git a/support/4885b11a73674eb6d54593c1d7efd758821e5ee79b8132feecaba10560f0123a.html b/support/4885b11a73674eb6d54593c1d7efd758821e5ee79b8132feecaba10560f0123a.html deleted file mode 100644 index e46313a4..00000000 --- a/support/4885b11a73674eb6d54593c1d7efd758821e5ee79b8132feecaba10560f0123a.html +++ /dev/null @@ -1 +0,0 @@ -postoffice-4885b11a73674eb6d54593c1d7efd758821e5ee79b8132feecaba10560f0123a diff --git a/support/dev/proj.com b/support/apache.conf similarity index 93% rename from support/dev/proj.com rename to support/apache.conf index 8a7a9bac..80038b2a 100644 --- a/support/dev/proj.com +++ b/support/apache.conf @@ -1,5 +1,5 @@ - WSGIDaemonProcess www-data display-name=%{GROUP} processes=8 threads=2 + WSGIDaemonProcess www-data display-name=%{GROUP} processes=2 threads=2 WSGIProcessGroup www-data WSGIScriptAlias / "/home/www/proj/project.wsgi" ServerName 176.121.11.165 diff --git a/support/d_dev/settings.py b/support/d_dev/settings.py deleted file mode 100644 index b8dfce1b..00000000 --- a/support/d_dev/settings.py +++ /dev/null @@ -1,629 +0,0 @@ -# -*- coding: utf-8 -*- -# Django settings for proj project. -import os -import django -from django.utils.translation import ugettext_lazy as _ -from ConfigParser import ConfigParser - - -DJANGO_ROOT = os.path.dirname(os.path.realpath(django.__file__)) -SITE_ROOT = os.path.split(os.path.dirname(os.path.realpath(__file__)))[0] - -DEBUG = True - - -ADMINS = ( - # ('Your Name', 'your_email@example.com'), -) - -MANAGERS = ADMINS - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'expomap', - 'USER': 'kotzilla', - 'PASSWORD': 'qazedc', - 'HOST': '', - 'PORT': '', - } -} - - -CACHES = { - "default": { - "BACKEND": "redis_cache.cache.RedisCache", - "LOCATION": "/tmp/redis.sock", - "OPTIONS": { - "CLIENT_CLASS": "redis_cache.client.DefaultClient", - }, - } -} - - -# Hosts/domain names that are valid for this site; required if DEBUG is False -# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts -ALLOWED_HOSTS = ['hit.expomap.ru', '195.66.79.152', '195.66.79.145', 'expomap.ru', '195.66.79.148'] -DEFAULT_HTTP_SCHEME = 'http' - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# In a Windows environment this must be set to your system time zone. -TIME_ZONE = 'UTC' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'ru' - -DEFAULT_LANGUAGE = 'ru' - -LANGUAGES = ( - ('ru', _('Russian')), - ('en', _('English')), -) - -LOCALE_PATHS = ( - os.path.join(SITE_ROOT, 'locale'), -) - -DEFAULT_CHARSET = 'utf-8' - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale. -USE_L10N = False - -# If you set this to False, Django will not use timezone-aware datetimes. -USE_TZ = False - - -MEDIA_ROOT = os.path.join(SITE_ROOT, 'media/') -CKEDITOR_UPLOAD_PATH = os.path.join(SITE_ROOT, 'media/upload') - - -CKEDITOR_CONFIGS = { - 'default': { - 'toolbar': 'standart', - 'height': 200, - 'width': 565, - 'resize_enabled' : True, - 'autoGrow_onStartup' : False, - 'autoGrow_bottomSpace' : 300, - 'fillEmptyBlocks' : False, - 'autoParagraph' : False, - }, - 'newsletters': { - 'toolbar': 'standart', - 'height': 600, - 'width': 750, - 'resize_enabled' : True, - 'autoGrow_onStartup' : False, - 'autoGrow_bottomSpace' : 300, - 'fillEmptyBlocks' : False, - 'autoParagraph' : False, - }, - -} - -MEDIA_URL = '/media/' - -# STATIC_ROOT = os.path.join(SITE_ROOT, 'static') -STATIC_URL = '/static/' -STATICFILES_DIRS = ( - os.path.join(SITE_ROOT, 'static'), -) - -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', - #'django.contrib.staticfiles.finders.DefaultStorageFinder', -) - -# Make this unique, and don't share it with anybody. -SECRET_KEY = '=yz1@ko%1s8bmel)c84#s*xpxn%4(1e+smdnh*@rdm*5%v!mln' - - -TEMPLATE_CONTEXT_PROCESSORS = ( - "django.contrib.auth.context_processors.auth", - "django.core.context_processors.debug", - "django.core.context_processors.i18n", - "django.core.context_processors.media", - "django.core.context_processors.static", - "django.core.context_processors.tz", - "django.contrib.messages.context_processors.messages", - "django.core.context_processors.request", - 'social.apps.django_app.context_processors.backends', - 'social.apps.django_app.context_processors.login_redirect', - 'django_messages.context_processors.inbox', - "proj.views.expo_context" -) -#LOGIN_REDIRECT_URL = '/' - -MIDDLEWARE_CLASSES = ( -# 'django.middleware.cache.UpdateCacheMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'solid_i18n.middleware.SolidLocaleMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'social.apps.django_app.middleware.SocialAuthExceptionMiddleware', -# 'django.middleware.cache.FetchFromCacheMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'proj.middleware.Referer', - 'django.contrib.redirects.middleware.RedirectFallbackMiddleware', - 'proj.middleware.ExpoRedirectFallbackMiddleware', - 'proj.middleware.SpacelessMiddleware', - -) - - -ROOT_URLCONF = 'proj.urls' - -# Python dotted path to the WSGI application used by Django's runserver. -WSGI_APPLICATION = 'proj.wsgi.application' - -TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. - # os.path.join(SITE_ROOT, 'templates/debug_toolbar'), - os.path.join(SITE_ROOT, 'templates/c_admin'), - os.path.join(SITE_ROOT, 'templates/c_admin/accounts'), - os.path.join(SITE_ROOT, 'templates/c_admin/article'), - os.path.join(SITE_ROOT, 'templates/c_admin/country'), - os.path.join(SITE_ROOT, 'templates/c_admin/city'), - os.path.join(SITE_ROOT, 'templates/c_admin/company'), - os.path.join(SITE_ROOT, 'templates/c_admin/conference'), - os.path.join(SITE_ROOT, 'templates/c_admin/directories'), - os.path.join(SITE_ROOT, 'templates/c_admin/exposition'), - os.path.join(SITE_ROOT, 'templates/c_admin/forms'), - os.path.join(SITE_ROOT, 'templates/c_admin/import templates'), - os.path.join(SITE_ROOT, 'templates/c_admin/news'), - os.path.join(SITE_ROOT, 'templates/c_admin/organiser'), - os.path.join(SITE_ROOT, 'templates/c_admin/place_conference'), - os.path.join(SITE_ROOT, 'templates/c_admin/place_exposition'), - os.path.join(SITE_ROOT, 'templates/c_admin/page'), - os.path.join(SITE_ROOT, 'templates/c_admin/photoreport'), - os.path.join(SITE_ROOT, 'templates/c_admin/settings'), - os.path.join(SITE_ROOT, 'templates/c_admin/seminar'), - os.path.join(SITE_ROOT, 'templates/c_admin/service'), - os.path.join(SITE_ROOT, 'templates/c_admin/theme'), - os.path.join(SITE_ROOT, 'templates/c_admin/translator'), - os.path.join(SITE_ROOT, 'templates/c_admin/webinar'), - - os.path.join(SITE_ROOT, 'templates/client'), - os.path.join(SITE_ROOT, 'templates/client/exposition'), - os.path.join(SITE_ROOT, 'templates/client/photoreport'), - os.path.join(SITE_ROOT, 'templates/client/includes'), - os.path.join(SITE_ROOT, 'templates'), - #os.path.join(SITE_ROOT, 'templates/client/popups'), -) - -AUTH_USER_MODEL = 'accounts.User' -LOGIN_URL='/' -#registration info -ACCOUNT_ACTIVATION_DAYS=2 -# mail settings -EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' -EMAIL_HOST = 'localhost' -EMAIL_HOST_USER = '' -EMAIL_HOST_PASSWORD = '' -EMAIL_USE_TLS = True -EMAIL_PORT = 25 -DEFAULT_FROM_EMAIL = "expomap.ru" - - -AUTHENTICATION_BACKENDS = ( - 'social.backends.open_id.OpenIdAuth', - 'social.backends.vk.VKOAuth2', - 'social.backends.facebook.FacebookOAuth2', - 'social.backends.twitter.TwitterOAuth', - 'social.backends.google.GoogleOAuth', - 'social.backends.linkedin.LinkedinOAuth', - 'social.backends.odnoklassniki.OdnoklassnikiOAuth2', - 'social.backends.mailru.MailruOAuth2', - 'django.contrib.auth.backends.ModelBackend', -) - -SOCIAL_AUTH_LOGIN_URL = '/' -SOCIAL_AUTH_USER_MODEL = 'accounts.User' -SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/logged-in/' -# The user will be redirected to this URL when a social account is disconnected -SOCIAL_AUTH_INACTIVE_USER_URL = '/inactive-user/' -# #Used to redirect the user once the auth process ended successfully. The value of ?next=/foo is used if it was present -# SOCIAL_AUTH_LOGIN_ERROR_URL = '/login-error/' -# #URL where the user will be redirected in case of an error -# SOCIAL_AUTH_LOGIN_URL = '/login-url/' -# #Is used as a fallback for LOGIN_ERROR_URL -# SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/new-users-redirect-url/' -# # Used to redirect new registered users, will be used in place of SOCIAL_AUTH_LOGIN_REDIRECT_URL if defined. -# Note that ?next=/foo is appended if present, if you want new users to go to next, you’ll need to do it yourself. -# SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/new-association-redirect-url/' -# # Like SOCIAL_AUTH_NEW_USER_REDIRECT_URL but for new associated accounts (user is already logged in). -# Used in place of SOCIAL_AUTH_LOGIN_REDIRECT_URL -# SOCIAL_AUTH_DISCONNECT_REDIRECT_URL = '/account-disconnected-redirect-url/' - -# Inactive users can be redirected to this URL when trying to authenticate. -# SOCIAL_AUTH_UID_LENGTH = -# SOCIAL_AUTH_NONCE_SERVER_URL_LENGTH = -# SOCIAL_AUTH_ASSOCIATION_SERVER_URL_LENGTH = -# SOCIAL_AUTH_FORCE_EMAIL_VALIDATION = True - -SOCIAL_AUTH_USERNAME_IS_FULL_EMAIL = True - -SOCIAL_AUTH_PIPELINE = ( - 'social.pipeline.social_auth.social_details', - 'social.pipeline.social_auth.social_uid', - 'functions.pipeline.get_email', # vk - 'functions.pipeline.load_user', - 'social.pipeline.social_auth.auth_allowed', - 'functions.pipeline.social_user', - # 'social.pipeline.social_auth.social_user', - 'social.pipeline.social_auth.load_extra_data', - 'social.pipeline.user.get_username', - 'functions.pipeline.require_email', - #'social.pipeline.mail.mail_validation', - 'functions.pipeline.create_user', - #'social.pipeline.user.create_user', - 'social.pipeline.social_auth.associate_by_email', - 'social.pipeline.social_auth.associate_user', - # 'social.pipeline.user.user_details' - 'functions.pipeline.user_details', - -) - -REQUIRES_EMAIL_VALIDATION = True -SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION = 'functions.pipeline.SendVerificationEmail' -SOCIAL_AUTH_EMAIL_VALIDATION_URL = '/email_verify_sent/' - - -SOCIAL_AUTH_VK_OAUTH2_KEY = '3393841' -SOCIAL_AUTH_VK_OAUTH2_SECRET = '2P19EBUEpLZifaabbREv' -SOCIAL_AUTH_VK_OAUTH2_SCOPE =['email'] -SOCIAL_AUTH_VK_OAUTH2_PROFILE_EXTRA_PARAMS = { - 'fields': 'email' -} - -SOCIAL_AUTH_FACEBOOK_KEY = '133775720059470' -SOCIAL_AUTH_FACEBOOK_SECRET = '434edf89c24a290497646a739df656c6' -SOCIAL_AUTH_FACEBOOK_SCOPE = ['email', 'publish_actions'] - -SOCIAL_AUTH_TWITTER_KEY = 'S6NX33FazTcWuqnXQhlOdg' -SOCIAL_AUTH_TWITTER_SECRET = 'MxUGfySQmLI5kvqSoAtWsGje2eAHQL7Jo8mXuIZ4D0' -SOCIAL_AUTH_TWITTER_SCOPE = ['email'] - -SOCIAL_AUTH_GOOGLE_OAUTH_KEY = '1044044901114.apps.googleusercontent.com' -SOCIAL_AUTH_GOOGLE_OAUTH_SECRET = 'j_McErlPPof88eNrmOXI-ZXI' -SOCIAL_AUTH_GOOGLE_OAUTH_SCOPE = ['email'] - -SOCIAL_AUTH_MAILRU_OAUTH2_KEY = '697945' -SOCIAL_AUTH_MAILRU_OAUTH2_SECRET = '343581b9e31961b334532cc1880066e8' -SOCIAL_AUTH_MAILRU_OAUTH2_SCOPE = ['email'] - -SOCIAL_AUTH_ODNOKLASSNIKI_OAUTH2_KEY = '1249032192' -SOCIAL_AUTH_ODNOKLASSNIKI_OAUTH2_SECRET = '87A7A1B964D2C73B9861BF76' -SOCIAL_AUTH_ODNOKLASSNIKI_OAUTH2_PUBLIC_NAME = 'CBAJLDHLEBABABABA' -SOCIAL_AUTH_ODNOKLASSNIKI_OAUTH2_SCOPE = ['GET_EMAIL'] - -SOCIAL_AUTH_LINKEDIN_KEY = 'jt9xwquj1fkd' -SOCIAL_AUTH_LINKEDIN_SECRET = 'GvM2xQCNADaBfiMy' -SOCIAL_AUTH_LINKEDIN_SCOPE = ['email'] - - - -INSTALLED_APPS = ( - 'modeltranslation', - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.redirects', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'django.contrib.humanize', - 'django.contrib.sitemaps', - 'haystack', - #custom modules - 'redirects', - 'stats_collector', - 'emencia.django.newsletter', - 'accounts', - 'article', - 'comments', - 'city', - 'company', - 'conference', - 'core', - 'country', - 'directories', - 'expobanner', - 'exposition', - 'file', - 'import_xls', - 'news', - 'note', - 'organiser', - 'place_conference', - 'place_exposition', - 'photoreport', - 'registration', - 'review', - 'seminar', - 'service', - 'settings', - 'theme', - 'translator', - 'webinar', - 'meta', - 'events', - #django modules - 'django_crontab', - 'sorl.thumbnail', # for logos - 'photologue', # photogallery - 'sortedm2m', # photologue dependence - 'hvad', # - 'tinymce', # ??? - 'ckeditor', # wysiwig editor in admin - 'django_messages', # messages - 'bitfield', - 'djutils', # ?? - 'pytils', # ?? - 'pymorphy', # ?? - 'password_reset', # reset password - 'social.apps.django_app.default', # social auth - 'core', - 'specialist_catalog', - 'south', - 'rosetta', - 'widget_tweaks', - -) - -CRONJOBS = [ - ('8 * * * *', 'django.core.management.call_command', ['send_newsletter']), - - ('0 * * * *', 'django.core.management.call_command', ['update_index', 'conference', '--remove', '--age=6']), - ('5 * * * *', 'django.core.management.call_command', ['update_index', 'exposition', '--remove', '--age=6']), - ('0 1,13 * * *', 'django.core.management.call_command', ['update_index', 'place_exposition', '--remove', '--age=24']), - ('0 3 * * *', 'django.core.management.call_command', ['update_index', 'company', '--remove', '--age=48']), - ('0 4 * * *', 'django.core.management.call_command', ['update_index', 'theme', '--remove', '--age=48']), - ('0 5 * * * ', 'django.core.management.call_command', ['update_index', 'tag', '--remove', '--age=48']), - ('0 6 * * *', 'django.core.management.call_command', ['update_index', 'country', '--remove', '--age=48']), - ('0 7 * * *', 'django.core.management.call_command', ['update_index', 'city', '--remove', '--age=48']), - - ('10 * * * *', 'django.core.management.call_command', ['banner_log_update']), - ('20 2,14 * * *', 'django.core.management.call_command', ['banner_log_check_previous_day']), - ('*/5 * * * *', 'django.core.management.call_command', ['update_views_cache']), - - ('40 6 * * * ', 'django.core.management.call_command', ['newsletter_contacts_remove_notactivated']), - # ('41 5 * * *', 'django.core.management.call_command', ['newsletter_create_announce']), - - ('12 4 * * *', 'django.core.management.call_command', ['stats_daily']), - ('5 10 * * *', 'django.core.management.call_command', ['update_events_filter_fields']), -] - -PYMORPHY_DICTS = { - 'ru': { 'dir': os.path.join(SITE_ROOT, 'settings/russian_dicts')} #'/home/www/proj/settings/russian_dicts' }, -} - -# search backend -HAYSTACK_CONNECTIONS = { - 'default': { - 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', - 'URL': 'http://localhost:8983/solr' - # ...or for multicore... - # 'URL': 'http://127.0.0.1:8983/solr/mysite', - }, -} - - -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error when DEBUG=False. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'filters': { - 'require_debug_false': { - '()': 'django.utils.log.RequireDebugFalse' - } - }, - 'handlers': { - 'mail_admins': { - 'level': 'ERROR', - 'filters': ['require_debug_false'], - 'class': 'django.utils.log.AdminEmailHandler' - } - }, - 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, - }, - } -} - -# TODO automate crons -""" -# update search indexes -0 * * * * /usr/bin/python /var/www/proj/manage.py update_index conference --remove --age=6 -0 * * * * /usr/bin/python /var/www/proj/manage.py update_index exposition --remove --age=6 -0 1,13 * * * /usr/bin/python /var/www/proj/manage.py update_index place_exposition --remove --age=24 -0 3 * * * /usr/bin/python /var/www/proj/manage.py update_index company --remove --age=48 -0 4 * * * /usr/bin/python /var/www/proj/manage.py update_index theme --remove --age=48 -0 5 * * * /usr/bin/python /var/www/proj/manage.py update_index tag --remove --age=48 -0 6 * * * /usr/bin/python /var/www/proj/manage.py update_index country --remove --age=48 -0 7 * * * /usr/bin/python /var/www/proj/manage.py update_index city --remove --age=48 -# update banner logs -10 * * * * /usr/bin/python /var/www/proj/manage.py banner_log_update -20 2,14 * * * /usr/bin/python /var/www/proj/manage.py banner_log_check_previous_day -# update hotels prices -20 1 * * 6 /usr/bin/python /var/www/proj/manage.py update_hotels_price -# newsletter -20 * * * * /usr/bin/python /var/www/proj/manage.py send_newsletter -40 6 * * * /usr/bin/python /var/www/proj/manage.py newsletter_contacts_remove_notactivated - -""" - -THUMBNAIL_DEBUG = DEBUG -THUMBNAIL_ENGINE = "proj.sorlengine.SorlEngine" -THUMBNAIL_FORMAT = "PNG" - -CALLBACK_EMAIL = 'kotzilla@ukr.net' - -BOOKING_AID = '333667' -try: - from functions.overrides import SeoPaginator as Paginator -except ImportError: - from django.core.paginator import Paginator -DEFAULT_PAGINATOR = Paginator -ADMIN_PAGINATION = 20 -CLIENT_PAGINATION = 25 - -TEMPLATE_DEBUG = DEBUG -NO_LOGO = '/static/client/img/no-logo.png' - -# events settings -CURRENCY = ('RUB', 'USD', 'EUR', 'RMB', 'GBP', 'AED', 'SGD', 'TRY', 'CZK', 'CHF', 'SEK', 'LKR', 'UAH', 'IDR', 'PLN','JPY') -BIT_AUDIENCE = (('experts', _(u'Специалисты')), ('experts and consumers', _(u'Специалисты и потребители')), - ('general public', _(u'Широкая публика'))) - -MONTHES = {'jan': {'value': 1, 'name': _(u'Январь')}, 'feb': {'value': 2, 'name': _(u'Февраль')}, - 'mar': {'value': 3, 'name': _(u'Март')}, 'apr': {'value': 4, 'name': _(u'Апрель')}, - 'may': {'value': 5, 'name': _(u'Май')}, 'jun': {'value': 6, 'name': _(u'Июнь')}, - 'jul': {'value': 7, 'name': _(u'Июль')}, 'aug': {'value': 8, 'name': _(u'Август')}, - 'sep': {'value': 9, 'name': _(u'Сентябрь')}, 'oct': {'value': 10, 'name': _(u'Октябрь')}, - 'nov': {'value': 11, 'name': _(u'Ноябрь')}, 'dec': {'value': 12, 'name': _(u'Декабрь')}} - -SNG_COUNTRIES = [159, 186, 31, 6, 99, 13, 189, 64] -RUSSIA_PK = 159 -MOSCOW_PK = -2960561 -SPB_PK = -2996338 - - -CLIENT_DATE_FORMAT = ["%d.%m.%Y"] - -# cache pages in random seconds. random in this range -CACHE_RANGE = [60, 120] - -DEFAULT_POPUP_COOKIE = 'expo_b_default_popup' - -INI_CONFIG_PATH = os.path.join(SITE_ROOT, 'proj/config.ini') -INI_CONFIG = ConfigParser() -INI_CONFIG.read(INI_CONFIG_PATH) -C_CITY_CATALOG_KEY = 'conf_city_catalog' -C_COUNTRY_CATALOG_KEY = 'conf_country_catalog' -E_CITY_CATALOG_KEY = 'expo_city_catalog' -E_COUNTRY_CATALOG_KEY = 'expo_country_catalog' -DEFAULT_DESCRIPTION = { - 'e_description_ru': 'templates/client/includes/conference/default_description_ru.html', - 'e_description_en': 'templates/client/includes/conference/default_description_en.html', - 'c_description_ru': 'templates/client/includes/exposition/default_description_ru.html', - 'c_description_en': 'templates/client/includes/exposition/default_description_en.html', -} -PERIODIC = { - 0: '', - 1: _(u'Ежегодно'), - 2: _(u'2 раза в год'), - 3: _(u'3 раза в год'), - 4: _(u'4 раза в год'), - 5: _(u'5 раз в год'), - 6: _(u'Раз в 2 года'), - 7: _(u'Раз в 3 года'), - 8: _(u'Раз в 4 года'), - 9: _(u'Раз в 5 лет') -} -try: - from local import * -except ImportError, e: - pass -# save sessions in redis -SESSION_ENGINE = 'django.contrib.sessions.backends.cache' -if not DEBUG: - # cache template loading - TEMPLATE_LOADERS = ( - ('django.template.loaders.cached.Loader', ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - )), - ) -else: - TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - ) - -# debug_toolbar settings - -if DEBUG: - DEBUG_TOOLBAR_PATCH_SETTINGS = False - INTERNAL_IPS = ('127.0.0.1','176.121.5.82', '176.121.11.162', '77.123.47.46') - - MIDDLEWARE_CLASSES += ( - 'debug_toolbar.middleware.DebugToolbarMiddleware', - ) - - INSTALLED_APPS += ( - 'debug_toolbar', - ) - JQUERY_URL = os.path.join(SITE_ROOT, 'static/client/js/jquery-ui-1.10.4.custom.min.js'), - DEBUG_TOOLBAR_PANELS = [ - #'debug_toolbar.panels.versions.VersionsPanel', - 'debug_toolbar.panels.timer.TimerPanel', - 'debug_toolbar.panels.settings.SettingsPanel', - 'debug_toolbar.panels.headers.HeadersPanel', - 'debug_toolbar.panels.request.RequestPanel', - 'debug_toolbar.panels.sql.SQLPanel', - 'debug_toolbar.panels.staticfiles.StaticFilesPanel', - 'debug_toolbar.panels.templates.TemplatesPanel', - 'debug_toolbar.panels.cache.CachePanel', - 'debug_toolbar.panels.signals.SignalsPanel', - 'debug_toolbar.panels.logging.LoggingPanel', - 'debug_toolbar.panels.redirects.RedirectsPanel', -] - - -# logging -U_LOGFILE_SIZE = 1 * 1024 * 1024 -U_LOGFILE_COUNT = 2 -DEFAULT_LOGGER_NAME = 'django' -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'formatters': { - 'verbose': { - 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s \n' - }, - 'simple': { - 'format': '%(levelname)s %(message)s' - }, - }, - 'handlers': { - 'file': { - 'level': 'INFO', - 'filename': os.path.join(SITE_ROOT, 'logs/django.log'), - 'formatter': 'verbose', - 'class':'logging.handlers.RotatingFileHandler', - 'maxBytes': U_LOGFILE_SIZE, - 'backupCount': U_LOGFILE_COUNT, - }, - }, - 'loggers': { - 'django': { - 'handlers': ['file'], - 'propagate': True, - 'level': 'DEBUG', - }, - } -} diff --git a/support/dev/.htpasswd b/support/dev/.htpasswd deleted file mode 100644 index fd5f1c22..00000000 --- a/support/dev/.htpasswd +++ /dev/null @@ -1 +0,0 @@ -dev:$apr1$51bqElVf$/.SfDBWGSjAauaw82Drbo1 diff --git a/support/dev/schema.xml b/support/dev/schema.xml deleted file mode 100644 index 6aaf5410..00000000 --- a/support/dev/schema.xml +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - id - - - text - - - - - diff --git a/support/dev/tech_work_hit.expomap.ru b/support/dev/tech_work_hit.expomap.ru deleted file mode 100644 index 6856096b..00000000 --- a/support/dev/tech_work_hit.expomap.ru +++ /dev/null @@ -1,89 +0,0 @@ -server { -# server_name 176.121.11.165 expomap.ru www.expomap.ru dev.expomap.ru; - listen 80; - return 301 https://$host$request_uri; -} - -geo $maintenance { - default yes; - 127.0.0.1/32 no; - 31.43.24.170/24 no; -} - -server { - listen 443; - server_name 176.121.11.165 www.expomap.ru expomap.ru dev.expomap.ru; - #ssl_stapling on; - ssl on; - ssl_certificate /etc/nginx/ssl/expomap.ru.crt; - ssl_certificate_key /etc/nginx/ssl/expomap.ru.key; - ssl_dhparam /etc/nginx/ssl/dhparam.pem; - ssl_session_timeout 24h; - ssl_session_cache shared:SSL:25m; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2; - ssl_prefer_server_ciphers on; - add_header Strict-Transport-Security "max-age=31536000;"; - add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:"; - - client_header_timeout 360s; - - error_page 503 /dev_work.html; - - location / { - if ($maintenance = yes) { - return 503; - } - auth_basic "Unauthorized"; - auth_basic_user_file /home/www/proj/.htpasswd; - proxy_pass http://127.0.0.1:8080/; - proxy_redirect off; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $remote_addr; - - include /etc/nginx/geoip_proxy.conf; - - client_max_body_size 100m; - client_body_buffer_size 128k; - - proxy_connect_timeout 90; - proxy_send_timeout 90; - proxy_read_timeout 90; - proxy_buffer_size 16k; - proxy_buffers 256 8k; - proxy_busy_buffers_size 2000k; - proxy_temp_file_write_size 2048k; - } - - - location /965E1EE7949FD639CA0124C8D8C57774.txt { - root /home/www/proj/; - } - - location /4885b11a73674eb6d54593c1d7efd758821e5ee79b8132feecaba10560f0123a.html { - root /home/www/proj/support; - } - - - location /static { - root /home/www/proj; - } - location /media { - root /home/www/proj; - } - - location /templates { - root /home/www/proj/static; - } - location /subdmn { - root /home/old_files; - } - - location = /dev_work.html { - root /home/www/proj/support/; - internal; - } - -} - diff --git a/support/dev_work.html b/support/dev_work.html deleted file mode 100644 index c4c2df4b..00000000 --- a/support/dev_work.html +++ /dev/null @@ -1,25 +0,0 @@ - - - Извините, идут технические работы - - - - - -
-
Извините, идут технические работы.
- - diff --git a/support/dev/hit.expomap.ru b/support/nginx.conf similarity index 81% rename from support/dev/hit.expomap.ru rename to support/nginx.conf index 132a4371..169ad271 100644 --- a/support/dev/hit.expomap.ru +++ b/support/nginx.conf @@ -1,5 +1,4 @@ server { -# server_name 176.121.11.165 expomap.ru www.expomap.ru dev.expomap.ru; listen 80; return 301 https://$host$request_uri; } @@ -7,7 +6,6 @@ server { server { listen 443; server_name 176.121.11.165 www.expomap.ru expomap.ru dev.expomap.ru; - #ssl_stapling on; ssl on; ssl_certificate /etc/nginx/ssl/expomap.ru.crt; ssl_certificate_key /etc/nginx/ssl/expomap.ru.key; @@ -22,14 +20,12 @@ server { client_header_timeout 360s; location / { - auth_basic "Unauthorized"; - auth_basic_user_file /home/www/proj/.htpasswd; proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; - include /etc/nginx/geoip_proxy.conf; + include /etc/nginx/geoip_proxy.conf; client_max_body_size 100m; client_body_buffer_size 128k; @@ -42,12 +38,8 @@ server { proxy_temp_file_write_size 2048k; } - location /965E1EE7949FD639CA0124C8D8C57774.txt { - root /home/www/proj/; - } - location /4885b11a73674eb6d54593c1d7efd758821e5ee79b8132feecaba10560f0123a.html { - root /home/www/proj/support; + root /home/www/proj; } location /static { @@ -72,9 +64,4 @@ server { root /home/old_files; } - #location ~* ^.+\.(rss|atom|jpg|jpeg|gif|png|ico|rtf|js|css)$ { - # expires max; - #} - } - diff --git a/support/prod/hit.expomap.ru b/support/prod/hit.expomap.ru deleted file mode 100644 index a4d3d97d..00000000 --- a/support/prod/hit.expomap.ru +++ /dev/null @@ -1,84 +0,0 @@ -server { - server_name expomap.ru www.expomap.ru; -# listen 80; - return 301 https://expomap.ru$request_uri; -} - -server { - listen 176.121.11.162:443 ssl; - server_name www.expomap.ru; -# ssl on; -# ssl_certificate /etc/nginx/ssl/expomap.ru.crt; -# ssl_certificate_key /etc/nginx/ssl/expomap.ru.key; - return 301 https://expomap.ru$request_uri; -} - -server { - listen 176.121.11.162:443 ssl default_server ; - server_name expomap.ru ; -# ssl_stapling on; - ssl on; - ssl_certificate /etc/nginx/ssl/expomap.ru.crt; - ssl_certificate_key /etc/nginx/ssl/expomap.ru.key; - ssl_dhparam /etc/nginx/ssl/dhparam.pem; - ssl_session_timeout 24h; - ssl_session_cache shared:SSL:25m; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2; - ssl_prefer_server_ciphers on; - add_header Strict-Transport-Security "max-age=31536000;"; - add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:"; - - client_header_timeout 360s; - location / { -# auth_basic "Unauthorized"; -# auth_basic_user_file /home/www/proj/.htpasswd; - proxy_pass http://127.0.0.1:8080; - proxy_redirect off; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $remote_addr; - include /etc/nginx/geoip_proxy.conf; - client_max_body_size 100m; - client_body_buffer_size 128k; - proxy_connect_timeout 90; - proxy_send_timeout 90; - proxy_read_timeout 90; - proxy_buffer_size 16k; - proxy_buffers 256 8k; - proxy_busy_buffers_size 2000k; - proxy_temp_file_write_size 2048k; - } - - location /965E1EE7949FD639CA0124C8D8C57774.txt { - root /home/www/proj/; - } - - location /4885b11a73674eb6d54593c1d7efd758821e5ee79b8132feecaba10560f0123a.html { - root /home/www/proj/support; - } - - location /static { - access_log off; - expires max; - root /home/www/proj; - } - - location /media { - access_log off; - expires max; - root /home/www/proj; - } - - location /templates { - access_log off; - expires max; - root /home/www/proj/static; - } - - location /subdmn { - root /home/old_files; - } - -} - diff --git a/support/prod/proj.com b/support/prod/proj.com deleted file mode 100644 index 66235e9d..00000000 --- a/support/prod/proj.com +++ /dev/null @@ -1,31 +0,0 @@ - - WSGIDaemonProcess www-data display-name=%{GROUP} processes=16 threads=1 - WSGIProcessGroup www-data - WSGIScriptAlias / "/home/www/proj/project.wsgi" - ServerName hit.expomap.ru - - Order allow,deny - Options Indexes FollowSymLinks - Allow from all - IndexOptions FancyIndexing - - - Alias /media "/home/www/proj/media/" - Alias /static "/home/www/proj/static/" - - - - Order allow,deny - Options Indexes FollowSymLinks - Allow from all - IndexOptions FancyIndexing - - - Order allow,deny - Options Indexes FollowSymLinks - Allow from all - IndexOptions FancyIndexing - - - ErrorLog /var/log/apache2/expo.error.log - diff --git a/support/prod/schema.xml b/support/prod/schema.xml deleted file mode 100644 index 6aaf5410..00000000 --- a/support/prod/schema.xml +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - id - - - text - - - - - diff --git a/support/prod/settings.py b/support/prod/settings.py deleted file mode 100644 index fe786687..00000000 --- a/support/prod/settings.py +++ /dev/null @@ -1,627 +0,0 @@ -# -*- coding: utf-8 -*- -# Django settings for proj project. -import os -import django -from django.utils.translation import ugettext_lazy as _ -from ConfigParser import ConfigParser - - -DJANGO_ROOT = os.path.dirname(os.path.realpath(django.__file__)) -SITE_ROOT = os.path.split(os.path.dirname(os.path.realpath(__file__)))[0] - -DEBUG = False - - -ADMINS = ( - # ('Your Name', 'your_email@example.com'), -) - -MANAGERS = ADMINS - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'expomap', - 'USER': 'kotzilla', - 'PASSWORD': 'qazedc', - 'HOST': '', - 'PORT': '', - } -} - - -CACHES = { - "default": { - "BACKEND": "redis_cache.cache.RedisCache", - "LOCATION": "/tmp/redis.sock", - "OPTIONS": { - "CLIENT_CLASS": "redis_cache.client.DefaultClient", - }, - } -} - - -# Hosts/domain names that are valid for this site; required if DEBUG is False -# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts -ALLOWED_HOSTS = ['hit.expomap.ru', '195.66.79.152', '195.66.79.145', 'expomap.ru', '195.66.79.148'] -DEFAULT_HTTP_SCHEME = 'https' - -# Local time zone for this installation. Choices can be found here: -# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name -# although not all choices may be available on all operating systems. -# In a Windows environment this must be set to your system time zone. -TIME_ZONE = 'UTC' - -# Language code for this installation. All choices can be found here: -# http://www.i18nguy.com/unicode/language-identifiers.html -LANGUAGE_CODE = 'ru' - -DEFAULT_LANGUAGE = 'ru' - -LANGUAGES = ( - ('ru', _('Russian')), - ('en', _('English')), -) - -LOCALE_PATHS = ( - os.path.join(SITE_ROOT, 'locale'), -) - -DEFAULT_CHARSET = 'utf-8' - -SITE_ID = 1 - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True - -# If you set this to False, Django will not format dates, numbers and -# calendars according to the current locale. -USE_L10N = False - -# If you set this to False, Django will not use timezone-aware datetimes. -USE_TZ = False - - -MEDIA_ROOT = os.path.join(SITE_ROOT, 'media/') -CKEDITOR_UPLOAD_PATH = os.path.join(SITE_ROOT, 'media/upload') - - -CKEDITOR_CONFIGS = { - 'default': { - 'toolbar': 'standart', - 'height': 200, - 'width': 565, - 'resize_enabled' : True, - 'autoGrow_onStartup' : False, - 'autoGrow_bottomSpace' : 300, - 'fillEmptyBlocks' : False, - 'autoParagraph' : False, - }, - 'newsletters': { - 'toolbar': 'standart', - 'height': 600, - 'width': 750, - 'resize_enabled' : True, - 'autoGrow_onStartup' : False, - 'autoGrow_bottomSpace' : 300, - 'fillEmptyBlocks' : False, - 'autoParagraph' : False, - }, - -} - -MEDIA_URL = '/media/' - -STATIC_ROOT = os.path.join(SITE_ROOT, 'static') -STATIC_URL = '/static/' - -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', - #'django.contrib.staticfiles.finders.DefaultStorageFinder', -) - -# Make this unique, and don't share it with anybody. -SECRET_KEY = '=yz1@ko%1s8bmel)c84#s*xpxn%4(1e+smdnh*@rdm*5%v!mln' - - -TEMPLATE_CONTEXT_PROCESSORS = ( - "django.contrib.auth.context_processors.auth", - "django.core.context_processors.debug", - "django.core.context_processors.i18n", - "django.core.context_processors.media", - "django.core.context_processors.static", - "django.core.context_processors.tz", - "django.contrib.messages.context_processors.messages", - "django.core.context_processors.request", - 'social.apps.django_app.context_processors.backends', - 'social.apps.django_app.context_processors.login_redirect', - 'django_messages.context_processors.inbox', - "proj.views.expo_context" -) -#LOGIN_REDIRECT_URL = '/' - -MIDDLEWARE_CLASSES = ( -# 'django.middleware.cache.UpdateCacheMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'solid_i18n.middleware.SolidLocaleMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'social.apps.django_app.middleware.SocialAuthExceptionMiddleware', -# 'django.middleware.cache.FetchFromCacheMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'proj.middleware.Referer', - 'django.contrib.redirects.middleware.RedirectFallbackMiddleware', - 'proj.middleware.ExpoRedirectFallbackMiddleware', - 'proj.middleware.SpacelessMiddleware', - -) - - -ROOT_URLCONF = 'proj.urls' - -# Python dotted path to the WSGI application used by Django's runserver. -WSGI_APPLICATION = 'proj.wsgi.application' - -TEMPLATE_DIRS = ( - # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". - # Always use forward slashes, even on Windows. - # Don't forget to use absolute paths, not relative paths. - # os.path.join(SITE_ROOT, 'templates/debug_toolbar'), - os.path.join(SITE_ROOT, 'templates/c_admin'), - os.path.join(SITE_ROOT, 'templates/c_admin/accounts'), - os.path.join(SITE_ROOT, 'templates/c_admin/article'), - os.path.join(SITE_ROOT, 'templates/c_admin/country'), - os.path.join(SITE_ROOT, 'templates/c_admin/city'), - os.path.join(SITE_ROOT, 'templates/c_admin/company'), - os.path.join(SITE_ROOT, 'templates/c_admin/conference'), - os.path.join(SITE_ROOT, 'templates/c_admin/directories'), - os.path.join(SITE_ROOT, 'templates/c_admin/exposition'), - os.path.join(SITE_ROOT, 'templates/c_admin/forms'), - os.path.join(SITE_ROOT, 'templates/c_admin/import templates'), - os.path.join(SITE_ROOT, 'templates/c_admin/news'), - os.path.join(SITE_ROOT, 'templates/c_admin/organiser'), - os.path.join(SITE_ROOT, 'templates/c_admin/place_conference'), - os.path.join(SITE_ROOT, 'templates/c_admin/place_exposition'), - os.path.join(SITE_ROOT, 'templates/c_admin/page'), - os.path.join(SITE_ROOT, 'templates/c_admin/photoreport'), - os.path.join(SITE_ROOT, 'templates/c_admin/settings'), - os.path.join(SITE_ROOT, 'templates/c_admin/seminar'), - os.path.join(SITE_ROOT, 'templates/c_admin/service'), - os.path.join(SITE_ROOT, 'templates/c_admin/theme'), - os.path.join(SITE_ROOT, 'templates/c_admin/translator'), - os.path.join(SITE_ROOT, 'templates/c_admin/webinar'), - - os.path.join(SITE_ROOT, 'templates/client'), - os.path.join(SITE_ROOT, 'templates/client/exposition'), - os.path.join(SITE_ROOT, 'templates/client/photoreport'), - os.path.join(SITE_ROOT, 'templates/client/includes'), - os.path.join(SITE_ROOT, 'templates'), - #os.path.join(SITE_ROOT, 'templates/client/popups'), -) - -AUTH_USER_MODEL = 'accounts.User' -LOGIN_URL='/' -#registration info -ACCOUNT_ACTIVATION_DAYS=2 -# mail settings -EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' -EMAIL_HOST = 'localhost' -EMAIL_HOST_USER = '' -EMAIL_HOST_PASSWORD = '' -EMAIL_USE_TLS = True -EMAIL_PORT = 25 -DEFAULT_FROM_EMAIL = "expomap.ru" - - -AUTHENTICATION_BACKENDS = ( - 'social.backends.open_id.OpenIdAuth', - 'social.backends.vk.VKOAuth2', - 'social.backends.facebook.FacebookOAuth2', - 'social.backends.twitter.TwitterOAuth', - 'social.backends.google.GoogleOAuth', - 'social.backends.linkedin.LinkedinOAuth', - 'social.backends.odnoklassniki.OdnoklassnikiOAuth2', - 'social.backends.mailru.MailruOAuth2', - 'django.contrib.auth.backends.ModelBackend', -) - -SOCIAL_AUTH_LOGIN_URL = '/' -SOCIAL_AUTH_USER_MODEL = 'accounts.User' -SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/logged-in/' -# The user will be redirected to this URL when a social account is disconnected -SOCIAL_AUTH_INACTIVE_USER_URL = '/inactive-user/' -# #Used to redirect the user once the auth process ended successfully. The value of ?next=/foo is used if it was present -# SOCIAL_AUTH_LOGIN_ERROR_URL = '/login-error/' -# #URL where the user will be redirected in case of an error -# SOCIAL_AUTH_LOGIN_URL = '/login-url/' -# #Is used as a fallback for LOGIN_ERROR_URL -# SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/new-users-redirect-url/' -# # Used to redirect new registered users, will be used in place of SOCIAL_AUTH_LOGIN_REDIRECT_URL if defined. -# Note that ?next=/foo is appended if present, if you want new users to go to next, you’ll need to do it yourself. -# SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/new-association-redirect-url/' -# # Like SOCIAL_AUTH_NEW_USER_REDIRECT_URL but for new associated accounts (user is already logged in). -# Used in place of SOCIAL_AUTH_LOGIN_REDIRECT_URL -# SOCIAL_AUTH_DISCONNECT_REDIRECT_URL = '/account-disconnected-redirect-url/' - -# Inactive users can be redirected to this URL when trying to authenticate. -# SOCIAL_AUTH_UID_LENGTH = -# SOCIAL_AUTH_NONCE_SERVER_URL_LENGTH = -# SOCIAL_AUTH_ASSOCIATION_SERVER_URL_LENGTH = -# SOCIAL_AUTH_FORCE_EMAIL_VALIDATION = True - -SOCIAL_AUTH_USERNAME_IS_FULL_EMAIL = True - -SOCIAL_AUTH_PIPELINE = ( - 'social.pipeline.social_auth.social_details', - 'social.pipeline.social_auth.social_uid', - 'functions.pipeline.get_email', # vk - 'functions.pipeline.load_user', - 'social.pipeline.social_auth.auth_allowed', - 'functions.pipeline.social_user', - # 'social.pipeline.social_auth.social_user', - 'social.pipeline.social_auth.load_extra_data', - 'social.pipeline.user.get_username', - 'functions.pipeline.require_email', - #'social.pipeline.mail.mail_validation', - 'functions.pipeline.create_user', - #'social.pipeline.user.create_user', - 'social.pipeline.social_auth.associate_by_email', - 'social.pipeline.social_auth.associate_user', - # 'social.pipeline.user.user_details' - 'functions.pipeline.user_details', - -) - -REQUIRES_EMAIL_VALIDATION = True -SOCIAL_AUTH_EMAIL_VALIDATION_FUNCTION = 'functions.pipeline.SendVerificationEmail' -SOCIAL_AUTH_EMAIL_VALIDATION_URL = '/email_verify_sent/' - - -SOCIAL_AUTH_VK_OAUTH2_KEY = '3393841' -SOCIAL_AUTH_VK_OAUTH2_SECRET = '2P19EBUEpLZifaabbREv' -SOCIAL_AUTH_VK_OAUTH2_SCOPE =['email'] -SOCIAL_AUTH_VK_OAUTH2_PROFILE_EXTRA_PARAMS = { - 'fields': 'email' -} -SOCIAL_AUTH_VK_OAUTH2_EXTRA_DATA = ['email'] - -SOCIAL_AUTH_FACEBOOK_KEY = '133775720059470' -SOCIAL_AUTH_FACEBOOK_SECRET = '434edf89c24a290497646a739df656c6' -SOCIAL_AUTH_FACEBOOK_SCOPE = ['email', 'publish_actions'] - -SOCIAL_AUTH_TWITTER_KEY = 'S6NX33FazTcWuqnXQhlOdg' -SOCIAL_AUTH_TWITTER_SECRET = 'MxUGfySQmLI5kvqSoAtWsGje2eAHQL7Jo8mXuIZ4D0' -SOCIAL_AUTH_TWITTER_SCOPE = ['email'] - -SOCIAL_AUTH_GOOGLE_OAUTH_KEY = '1044044901114.apps.googleusercontent.com' -SOCIAL_AUTH_GOOGLE_OAUTH_SECRET = 'j_McErlPPof88eNrmOXI-ZXI' -SOCIAL_AUTH_GOOGLE_OAUTH_SCOPE = ['email'] - -SOCIAL_AUTH_MAILRU_OAUTH2_KEY = '697945' -SOCIAL_AUTH_MAILRU_OAUTH2_SECRET = '343581b9e31961b334532cc1880066e8' -SOCIAL_AUTH_MAILRU_OAUTH2_SCOPE = ['email'] - -SOCIAL_AUTH_ODNOKLASSNIKI_OAUTH2_KEY = '1249032192' -SOCIAL_AUTH_ODNOKLASSNIKI_OAUTH2_SECRET = '87A7A1B964D2C73B9861BF76' -SOCIAL_AUTH_ODNOKLASSNIKI_OAUTH2_PUBLIC_NAME = 'CBAJLDHLEBABABABA' -SOCIAL_AUTH_ODNOKLASSNIKI_OAUTH2_SCOPE = ['GET_EMAIL'] - -SOCIAL_AUTH_LINKEDIN_KEY = 'jt9xwquj1fkd' -SOCIAL_AUTH_LINKEDIN_SECRET = 'GvM2xQCNADaBfiMy' -SOCIAL_AUTH_LINKEDIN_SCOPE = ['email'] - - - -INSTALLED_APPS = ( - 'modeltranslation', - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.redirects', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'django.contrib.humanize', - 'django.contrib.sitemaps', - 'haystack', - #custom modules - 'redirects', - 'stats_collector', - 'emencia.django.newsletter', - 'accounts', - 'article', - 'comments', - 'city', - 'company', - 'conference', - 'core', - 'country', - 'directories', - 'expobanner', - 'exposition', - 'file', - 'import_xls', - 'news', - 'note', - 'organiser', - 'place_conference', - 'place_exposition', - 'photoreport', - 'registration', - 'review', - 'seminar', - 'service', - 'settings', - 'theme', - 'translator', - 'webinar', - 'meta', - 'events', - #django modules - 'django_crontab', - 'sorl.thumbnail', # for logos - 'photologue', # photogallery - 'sortedm2m', # photologue dependence - 'hvad', # - 'tinymce', # ??? - 'ckeditor', # wysiwig editor in admin - 'django_messages', # messages - 'bitfield', - 'djutils', # ?? - 'pytils', # ?? - 'pymorphy', # ?? - 'password_reset', # reset password - 'social.apps.django_app.default', # social auth - 'core', - 'specialist_catalog', - 'south', - 'rosetta', - 'widget_tweaks', - -) - -CRONJOBS = [ - ('8 * * * *', 'django.core.management.call_command', ['send_newsletter']), - - ('0 * * * *', 'django.core.management.call_command', ['update_index', 'conference', '--remove', '--age=6']), - ('5 * * * *', 'django.core.management.call_command', ['update_index', 'exposition', '--remove', '--age=6']), - ('0 1,13 * * *', 'django.core.management.call_command', ['update_index', 'place_exposition', '--remove', '--age=24']), - ('0 3 * * *', 'django.core.management.call_command', ['update_index', 'company', '--remove', '--age=48']), - ('0 4 * * *', 'django.core.management.call_command', ['update_index', 'theme', '--remove', '--age=48']), - ('0 5 * * * ', 'django.core.management.call_command', ['update_index', 'tag', '--remove', '--age=48']), - ('0 6 * * *', 'django.core.management.call_command', ['update_index', 'country', '--remove', '--age=48']), - ('0 7 * * *', 'django.core.management.call_command', ['update_index', 'city', '--remove', '--age=48']), - - ('10 * * * *', 'django.core.management.call_command', ['banner_log_update']), - ('20 2,14 * * *', 'django.core.management.call_command', ['banner_log_check_previous_day']), - ('*/5 * * * *', 'django.core.management.call_command', ['update_views_cache']), - - ('40 6 * * * ', 'django.core.management.call_command', ['newsletter_contacts_remove_notactivated']), - ('41 5 * * *', 'django.core.management.call_command', ['newsletter_create_announce']), - - ('12 4 * * *', 'django.core.management.call_command', ['stats_daily']), - ('5 10 * * *', 'django.core.management.call_command', ['update_events_filter_fields']), -] - -PYMORPHY_DICTS = { - 'ru': { 'dir': os.path.join(SITE_ROOT, 'settings/russian_dicts')} #'/home/www/proj/settings/russian_dicts' }, -} - -# search backend -HAYSTACK_CONNECTIONS = { - 'default': { - 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', - 'URL': 'http://localhost:8983/solr' - # ...or for multicore... - # 'URL': 'http://127.0.0.1:8983/solr/mysite', - }, -} - - -# A sample logging configuration. The only tangible logging -# performed by this configuration is to send an email to -# the site admins on every HTTP 500 error when DEBUG=False. -# See http://docs.djangoproject.com/en/dev/topics/logging for -# more details on how to customize your logging configuration. -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'filters': { - 'require_debug_false': { - '()': 'django.utils.log.RequireDebugFalse' - } - }, - 'handlers': { - 'mail_admins': { - 'level': 'ERROR', - 'filters': ['require_debug_false'], - 'class': 'django.utils.log.AdminEmailHandler' - } - }, - 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, - }, - } -} - -# TODO automate crons -""" -# update search indexes -0 * * * * /usr/bin/python /var/www/proj/manage.py update_index conference --remove --age=6 -0 * * * * /usr/bin/python /var/www/proj/manage.py update_index exposition --remove --age=6 -0 1,13 * * * /usr/bin/python /var/www/proj/manage.py update_index place_exposition --remove --age=24 -0 3 * * * /usr/bin/python /var/www/proj/manage.py update_index company --remove --age=48 -0 4 * * * /usr/bin/python /var/www/proj/manage.py update_index theme --remove --age=48 -0 5 * * * /usr/bin/python /var/www/proj/manage.py update_index tag --remove --age=48 -0 6 * * * /usr/bin/python /var/www/proj/manage.py update_index country --remove --age=48 -0 7 * * * /usr/bin/python /var/www/proj/manage.py update_index city --remove --age=48 -# update banner logs -10 * * * * /usr/bin/python /var/www/proj/manage.py banner_log_update -20 2,14 * * * /usr/bin/python /var/www/proj/manage.py banner_log_check_previous_day -# update hotels prices -20 1 * * 6 /usr/bin/python /var/www/proj/manage.py update_hotels_price -# newsletter -20 * * * * /usr/bin/python /var/www/proj/manage.py send_newsletter -40 6 * * * /usr/bin/python /var/www/proj/manage.py newsletter_contacts_remove_notactivated - -""" - -THUMBNAIL_DEBUG = DEBUG -THUMBNAIL_ENGINE = "proj.sorlengine.SorlEngine" -THUMBNAIL_FORMAT = "PNG" - -CALLBACK_EMAIL = 'kotzilla@ukr.net' - -BOOKING_AID = '333667' -try: - from functions.overrides import SeoPaginator as Paginator -except ImportError: - from django.core.paginator import Paginator -DEFAULT_PAGINATOR = Paginator -ADMIN_PAGINATION = 20 -CLIENT_PAGINATION = 25 - -TEMPLATE_DEBUG = DEBUG -NO_LOGO = '/static/client/img/no-logo.png' - -# events settings -CURRENCY = ('RUB', 'USD', 'EUR', 'RMB', 'GBP', 'AED', 'SGD', 'TRY', 'CZK', 'CHF', 'SEK', 'LKR', 'UAH', 'IDR', 'PLN','JPY') -BIT_AUDIENCE = (('experts', _(u'Специалисты')), ('experts and consumers', _(u'Специалисты и потребители')), - ('general public', _(u'Широкая публика'))) - -MONTHES = {'jan': {'value': 1, 'name': _(u'Январь')}, 'feb': {'value': 2, 'name': _(u'Февраль')}, - 'mar': {'value': 3, 'name': _(u'Март')}, 'apr': {'value': 4, 'name': _(u'Апрель')}, - 'may': {'value': 5, 'name': _(u'Май')}, 'jun': {'value': 6, 'name': _(u'Июнь')}, - 'jul': {'value': 7, 'name': _(u'Июль')}, 'aug': {'value': 8, 'name': _(u'Август')}, - 'sep': {'value': 9, 'name': _(u'Сентябрь')}, 'oct': {'value': 10, 'name': _(u'Октябрь')}, - 'nov': {'value': 11, 'name': _(u'Ноябрь')}, 'dec': {'value': 12, 'name': _(u'Декабрь')}} - -SNG_COUNTRIES = [159, 186, 31, 6, 99, 13, 189, 64] -RUSSIA_PK = 159 -MOSCOW_PK = -2960561 -SPB_PK = -2996338 - - -CLIENT_DATE_FORMAT = ["%d.%m.%Y"] - -# cache pages in random seconds. random in this range -CACHE_RANGE = [60, 120] - -DEFAULT_POPUP_COOKIE = 'expo_b_default_popup' - -INI_CONFIG_PATH = os.path.join(SITE_ROOT, 'proj/config.ini') -INI_CONFIG = ConfigParser() -INI_CONFIG.read(INI_CONFIG_PATH) -C_CITY_CATALOG_KEY = 'conf_city_catalog' -C_COUNTRY_CATALOG_KEY = 'conf_country_catalog' -E_CITY_CATALOG_KEY = 'expo_city_catalog' -E_COUNTRY_CATALOG_KEY = 'expo_country_catalog' -DEFAULT_DESCRIPTION = { - 'e_description_ru': 'templates/client/includes/conference/default_description_ru.html', - 'e_description_en': 'templates/client/includes/conference/default_description_en.html', - 'c_description_ru': 'templates/client/includes/exposition/default_description_ru.html', - 'c_description_en': 'templates/client/includes/exposition/default_description_en.html', -} -PERIODIC = { - 0: '', - 1: _(u'Ежегодно'), - 2: _(u'2 раза в год'), - 3: _(u'3 раза в год'), - 4: _(u'4 раза в год'), - 5: _(u'5 раз в год'), - 6: _(u'Раз в 2 года'), - 7: _(u'Раз в 3 года'), - 8: _(u'Раз в 4 года'), - 9: _(u'Раз в 5 лет') -} -try: - from local import * -except ImportError, e: - pass -# save sessions in redis -SESSION_ENGINE = 'django.contrib.sessions.backends.cache' -if not DEBUG: - # cache template loading - TEMPLATE_LOADERS = ( - ('django.template.loaders.cached.Loader', ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - )), - ) -else: - TEMPLATE_LOADERS = ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - ) - -# debug_toolbar settings - -if DEBUG: - DEBUG_TOOLBAR_PATCH_SETTINGS = False - INTERNAL_IPS = ('127.0.0.1','176.121.5.82', '176.121.11.162', '77.123.47.46') - - MIDDLEWARE_CLASSES += ( - 'debug_toolbar.middleware.DebugToolbarMiddleware', - ) - - INSTALLED_APPS += ( - 'debug_toolbar', - ) - JQUERY_URL = os.path.join(SITE_ROOT, 'static/client/js/jquery-ui-1.10.4.custom.min.js'), - DEBUG_TOOLBAR_PANELS = [ - #'debug_toolbar.panels.versions.VersionsPanel', - 'debug_toolbar.panels.timer.TimerPanel', - 'debug_toolbar.panels.settings.SettingsPanel', - 'debug_toolbar.panels.headers.HeadersPanel', - 'debug_toolbar.panels.request.RequestPanel', - 'debug_toolbar.panels.sql.SQLPanel', - 'debug_toolbar.panels.staticfiles.StaticFilesPanel', - 'debug_toolbar.panels.templates.TemplatesPanel', - 'debug_toolbar.panels.cache.CachePanel', - 'debug_toolbar.panels.signals.SignalsPanel', - 'debug_toolbar.panels.logging.LoggingPanel', - 'debug_toolbar.panels.redirects.RedirectsPanel', -] - - -# logging -U_LOGFILE_SIZE = 1 * 1024 * 1024 -U_LOGFILE_COUNT = 2 -DEFAULT_LOGGER_NAME = 'django' -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'formatters': { - 'verbose': { - 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s \n' - }, - 'simple': { - 'format': '%(levelname)s %(message)s' - }, - }, - 'handlers': { - 'file': { - 'level': 'INFO', - 'filename': os.path.join(SITE_ROOT, 'logs/django.log'), - 'formatter': 'verbose', - 'class':'logging.handlers.RotatingFileHandler', - 'maxBytes': U_LOGFILE_SIZE, - 'backupCount': U_LOGFILE_COUNT, - }, - }, - 'loggers': { - 'django': { - 'handlers': ['file'], - 'propagate': True, - 'level': 'DEBUG', - }, - } -} diff --git a/support/prod/tech_work_hit.expomap.ru b/support/prod/tech_work_hit.expomap.ru deleted file mode 100644 index e7940a24..00000000 --- a/support/prod/tech_work_hit.expomap.ru +++ /dev/null @@ -1,97 +0,0 @@ -server { - server_name expomap.ru www.expomap.ru; -# listen 80; - - return 301 https://expomap.ru$request_uri; -} - -geo $maintenance { - default yes; - 127.0.0.1/32 no; - 31.43.24.170/24 no; -} - -server { - listen 176.121.11.162:443 ssl; - server_name www.expomap.ru; - -# ssl on; -# ssl_certificate /etc/nginx/ssl/expomap.ru.crt; -# ssl_certificate_key /etc/nginx/ssl/expomap.ru.key; - - return 301 https://expomap.ru$request_uri; -} - -server { - listen 176.121.11.162:443 ssl default_server ; - server_name expomap.ru ; -# ssl_stapling on; - ssl on; - ssl_certificate /etc/nginx/ssl/expomap.ru.crt; - ssl_certificate_key /etc/nginx/ssl/expomap.ru.key; - ssl_dhparam /etc/nginx/ssl/dhparam.pem; - ssl_session_timeout 24h; - ssl_session_cache shared:SSL:25m; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2; - ssl_prefer_server_ciphers on; - add_header Strict-Transport-Security "max-age=31536000;"; - add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:"; - - client_header_timeout 360s; - - error_page 503 /dev_work.html; - - location / { -# auth_basic "Unauthorized"; -# auth_basic_user_file /home/www/proj/.htpasswd; - - if ($maintenance = yes) { - return 503; - } - - proxy_pass http://127.0.0.1:8080; - proxy_redirect off; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $remote_addr; - include /etc/nginx/geoip_proxy.conf; - - client_max_body_size 100m; - client_body_buffer_size 128k; - - proxy_connect_timeout 90; - proxy_send_timeout 90; - proxy_read_timeout 90; - proxy_buffer_size 16k; - proxy_buffers 256 8k; - proxy_busy_buffers_size 2000k; - proxy_temp_file_write_size 2048k; - } - - - location /965E1EE7949FD639CA0124C8D8C57774.txt { - root /home/www/proj/; - } - - location /4885b11a73674eb6d54593c1d7efd758821e5ee79b8132feecaba10560f0123a.html { - root /home/www/proj/support; - } - - location /static { - root /home/www/proj; - } - location /media { - root /home/www/proj; - } - - location /templates { - root /home/www/proj/static; - } - location /subdmn { - root /home/old_files; - } - - -} - diff --git a/templates/client/includes/exposition/services.html b/templates/client/includes/exposition/services.html index fbcef945..8d3f7776 100644 --- a/templates/client/includes/exposition/services.html +++ b/templates/client/includes/exposition/services.html @@ -20,4 +20,4 @@ {% endif %} - \ No newline at end of file +