195 lines
5.0 KiB
Python
195 lines
5.0 KiB
Python
|
||
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'
|