""" Django settings for pAerBim project. Generated by 'django-admin startproject' using Django 4.2.7. For more information on this file, see https://docs.djangoproject.com/en/4.2/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/4.2/ref/settings/ """ from pathlib import Path # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'django-insecure-0lk552&eia*_v5q$c8((o4=0d6x_t4%y-*x9p=n05nydiu)s9-' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True # ALLOWED_HOSTS = [] ALLOWED_HOSTS = ['*'] SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') CSRF_TRUSTED_ORIGINS = ['https://aerbim.com', 'http://127.0.0.1:8019/', 'https://www.youtube.com/'] X_FRAME_OPTIONS = 'SAMEORIGIN' # Application definition FILEBROWSER_SHOW_IN_DASHBOARD = False LIST_PER_PAGE = 100 INSTALLED_APPS = [ 'colorfield', 'super_inlines', # 'grappelli', 'filebrowser', "admin_interface", 'modeltranslation', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', # 'nested_admin', 'ckeditor', 'ckeditor_uploader', 'GeneralApp', 'ServicesApp', 'SlidesApp', 'PortfolioApp', 'DocsApp', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', # 'AuthApp.middleware.ResponseInterceptionMiddleware', ] ROOT_URLCONF = 'pAerBim.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'] , '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', 'django.template.context_processors.media', ], }, }, ] WSGI_APPLICATION = 'pAerBim.wsgi.application' # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases # DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': BASE_DIR / 'db.sqlite3', # } # } DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'aerbimDB', 'USER': 'test_user', 'PASSWORD': 'test_db_pass', 'HOST': '127.0.0.1', 'PORT': '5432', } } # Password validation # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators 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', }, ] # Internationalization # https://docs.djangoproject.com/en/4.2/topics/i18n/ LANGUAGE_CODE = 'ru' TIME_ZONE = 'Europe/Minsk' USE_I18N = True # USE_TZ = True USE_L10N = True USE_TZ = False # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/4.2/howto/static-files/ MEDIA_URL = '/media/' # MEDIA_ROOT = 'media/' import os MEDIA_ROOT = os.path.join(BASE_DIR, 'media') STATIC_URL = '/static/' STATIC_ROOT = '/' STATICFILES_DIRS = [ BASE_DIR / "static", ] import os LOCALE_PATHS = ( os.path.join(BASE_DIR,'locale'), ) gettext = lambda s: s LANGUAGES = ( (u'ru', gettext(u'Russian')), (u'en', gettext(u'English')), ) MODELTRANSLATION_LANGUAGES = ('ru', 'en') MODELTRANSLATION_ENABLE_FALLBACKS = True MODELTRANSLATION_FALLBACK_LANGUAGES = { 'default': ('ru','en'), } # Add custom languages not provided by Django import django.conf.locale LANG_INFO = dict(django.conf.locale.LANG_INFO.items()) #+ EXTRA_LANG_INFO.items()) django.conf.locale.LANG_INFO = LANG_INFO # Default primary key field type # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' CKEDITOR_BASEPATH = "/static/ckeditor/ckeditor/" CKEDITOR_UPLOAD_PATH = "uploads/" CKEDITOR_RESTRICT_BY_DATE = False CKEDITOR_RESTRICT_BY_USER = False CKEDITOR_BROWSE_SHOW_DIRS = True CKEDITOR_IMAGE_BACKEND = "pillow" # CKEDITOR_BROWSE_SHOW_DIRS = True CKEDITOR_JQUERY_URL = 'https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js' CKEDITOR_CONFIGS = { 'default': { 'versionCheck': False, 'height': 291, 'width': '70vw', 'filebrowserWindowHeight': 600, 'filebrowserWindowWidth': "90%", 'toolbar': 'Custom', 'forcePasteAsPlainText': True, 'allowedContent': True, 'extraAllowedContent': 'iframe[*]', # 'disallowedContent': 'img{width,height};img[width,height]', 'extraPlugins': ','.join([ 'codesnippet', # 'youtube' ]), 'enterMode': 2, 'basicEntities' : False, 'entities_additional': '', 'entities' : False, 'htmlEncodeOutput' : False, # 'toolbar_Custom': [ # ['Bold', 'Italic', 'Underline'], # ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'], # ['Link', 'Unlink'], # ['RemoveFormat', 'Source'] # ], 'toolbar_Custom': [ {'name': 'document', 'items': ['Source', '-', 'Save', '-', 'Find', 'Replace', '-', 'SelectAll']}, {'name': 'clipboard', 'items': ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo', '-', 'Maximize', 'ShowBlocks']}, # {'name': 'forms', # 'items': ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', # 'HiddenField']}, '/', {'name': 'basicstyles', 'items': ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'TextColor', 'BGColor', '-', 'RemoveFormat', '-']}, {'name': 'paragraph', 'items': ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl' ]}, '/', {'name': 'links', 'items': ['Link', 'Unlink', 'Anchor', '-', 'Blockquote' ]}, {'name': 'insert', 'items': ['Image', 'Youtube', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak', 'Iframe'] }, # { # 'name': 'youtube', # 'items': ['Youtube',] # } ], } } PDF_FOLDER = 'media/pdf' WKHTML_TO_PDF = 'BaseModels\wkhtmltopdf\{0}\wkhtmltopdf'.format(u'bin') try: import db_local_sets DATABASES = db_local_sets.DATABASES except ImportError as e: pass # global prod_server try: import db_local_sets # SERVER_URL = local_sets.SERVER_URL except ImportError: pass try: from settings_local import * except ImportError: print('settings_local fail')