import os import environ import datetime import django as django_module from celery.schedules import crontab from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent DJANGO_DIR = os.path.dirname(django_module.__file__) SECRET_KEY = 'django-insecure-13n6^zl86r@=9@!z8gsfv(q6wpggo+$box)^tklnoe9auck-)c' root = environ.Path(__file__) - 2 env = environ.Env( DEBUG=(bool, False), LANGUAGE_CODE=(str, 'ru-RU'), TIME_ZONE=(str, 'Asia/Vladivostok'), USE_TZ=(bool, False), USE_I18N=(bool, True), CORS_ORIGIN_WHITELIST=(list, []), AUTH_CONVERT_PASSWORD_TO_LOWER_CASE=(bool, False) ) DEBUG = env('DEBUG', False) REDIS_HOST = env.str('REDIS_HOST', 'medicine-stack-redis') REDIS_PORT = env.str('REDIS_PORT', '6379') REDIS_DB = env.str('REDIS_DB', 1) POSTGRES_HOST = env.str('POSTGRES_HOST', 'medicine-stack-postgres') POSTGRES_PORT = env.str('POSTGRES_PORT', '5432') POSTGRES_DB = env.str('POSTGRES_DB', 'medicine_mts') POSTGRES_USER = env.str('POSTGRES_USER', 'postgres') POSTGRES_PASSWORD = env.str('POSTGRES_PASSWORD', 'password') ALLOWED_HOSTS = ['*'] INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'constance', 'ace_editor', 'rangefilter', 'appa', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ] ROOT_URLCONF = 'appa.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ os.path.join(BASE_DIR, 'appa/templates'), DJANGO_DIR ], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'appa.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'HOST': POSTGRES_HOST, 'PORT': POSTGRES_PORT, 'NAME': POSTGRES_DB, 'USER': POSTGRES_USER, 'PASSWORD': POSTGRES_PASSWORD, }, 'medicine': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'medicine', 'USER': POSTGRES_USER, 'PASSWORD': POSTGRES_PASSWORD, 'HOST': POSTGRES_HOST, 'PORT': POSTGRES_PORT }, } AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] LANGUAGE_CODE = env.str('LANGUAGE_CODE') TIME_ZONE = env.str('TIME_ZONE') USE_I18N = env.bool('USE_I18N') USE_TZ = env.bool('USE_TZ') STATIC_URL = '/medicine-mts/django_static/' STATIC_ROOT = os.path.join(BASE_DIR, 'django_static') DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' SESSION_COOKIE_NAME = env.str('SESSION_COOKIE_NAME', 'medicine-mts') CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend' CONSTANCE_ADDITIONAL_FIELDS = { 'char': ['django.forms.fields.CharField', { 'widget': 'django.forms.TextInput', 'widget_kwargs': dict(attrs={'size': 60}), 'required': False }], 'url': ['django.forms.fields.URLField', { 'widget': 'django.forms.TextInput', 'widget_kwargs': dict(attrs={'size': 60}), 'required': False }], } CONSTANCE_CONFIG = { 'USERNAME': ('', 'Имя пользователя', 'char'), 'PASSWORD': ('', 'Пароль', 'char'), 'HOST': ('', 'Хост', 'char'), 'IS_ENABLED': (False, 'Активен', bool), 'MEDICINE_TOKEN': ('', 'Токен', 'char'), 'MEDICINE_HOST': ('http://medicine-app/', 'Хост', 'char'), } CONSTANCE_CONFIG_FIELDSETS = ( ('МТС', ( 'HOST', 'USERNAME', 'PASSWORD', 'IS_ENABLED', )), ('МИС', ( 'MEDICINE_HOST', 'MEDICINE_TOKEN', )), ) REQUEST_TIMEOUT = 5 REDIS_CELERY_DB = env.str('REDIS_CELERY_DB', '3') BROKER_URL = f'redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_CELERY_DB}' CELERY_DEFAULT_QUEUE = 'default' CELERY_ENABLE_UTC = True CELERY_IGNORE_RESULT = True CELERYBEAT_SCHEDULE = { } DATE_FORMAT = 'd.m.Y' DATETIME_FORMAT = 'd.m.Y H:i' CALL_REQUEST_TIME_START = datetime.time(9, 0) CALL_REQUEST_TIME_END = datetime.time(21, 0) if DEBUG: AUTH_PASSWORD_VALIDATORS = [] SESSION_COOKIE_NAME = 'dev-medicine-mts'