From 9c5b7f24a4edb40d2f36b9f132c52d1f479737fc Mon Sep 17 00:00:00 2001
From: "Tibor Bossanyi (Freelancer)" <tibor.bossanyi@delti.com>
Date: Thu, 29 Sep 2022 16:36:56 +0200
Subject: [PATCH] v1.38

---
 .../aitrainer_backoffice/settings/deploy.py   |   2 +-
 .../aitrainer_backoffice/settings/dev.py      |   2 +-
 .../aitrainer_backoffice/settings/prod.py     |  16 +-
 .../aitrainer_backoffice/settings/prod_org.py | 189 ++++++++++++++++++
 4 files changed, 197 insertions(+), 12 deletions(-)
 create mode 100644 aitrainer_backoffice/aitrainer_backoffice/settings/prod_org.py

diff --git a/aitrainer_backoffice/aitrainer_backoffice/settings/deploy.py b/aitrainer_backoffice/aitrainer_backoffice/settings/deploy.py
index 81b86a4..0a0fae3 100644
--- a/aitrainer_backoffice/aitrainer_backoffice/settings/deploy.py
+++ b/aitrainer_backoffice/aitrainer_backoffice/settings/deploy.py
@@ -1,7 +1,7 @@
 import os
 from firebase_admin import initialize_app
 
-BACKOFFICE_VERSION = "1.37"
+BACKOFFICE_VERSION = "1.38"
 
 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
diff --git a/aitrainer_backoffice/aitrainer_backoffice/settings/dev.py b/aitrainer_backoffice/aitrainer_backoffice/settings/dev.py
index 7649434..917d4d4 100644
--- a/aitrainer_backoffice/aitrainer_backoffice/settings/dev.py
+++ b/aitrainer_backoffice/aitrainer_backoffice/settings/dev.py
@@ -1,7 +1,7 @@
 import os
 from firebase_admin import initialize_app
 
-BACKOFFICE_VERSION = "1.37"
+BACKOFFICE_VERSION = "1.38"
 
 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
diff --git a/aitrainer_backoffice/aitrainer_backoffice/settings/prod.py b/aitrainer_backoffice/aitrainer_backoffice/settings/prod.py
index 03e68e7..c62e588 100644
--- a/aitrainer_backoffice/aitrainer_backoffice/settings/prod.py
+++ b/aitrainer_backoffice/aitrainer_backoffice/settings/prod.py
@@ -14,17 +14,13 @@ SECRET_KEY = os.environ['DJANGO_KEY']
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = False
 
-ALLOWED_HOSTS = ['62.171.188.119', "admin.aitrainer.app",
-    'mail.aitrainer.info',
-    'aitrainer.info',
-    'www.aitrainer.info',
-    'aitrainer.app',
-    'www.aitrainer.app',
-    'www.workouttest.com',
+ALLOWED_HOSTS = ['62.171.188.119', 
+    '.aitrainer.info',
+    '.aitrainer.app',
+    '.workouttest.com',
     'workouttest.com',
-    'www.workouttest.org',
-    'workouttest.org',
-    'git.aitrainer.app']
+    '.workouttest.org',
+    'andio.hu']
 
 env = os.environ['GOOGLE_APPLICATION_CREDENTIALS']
 FIREBASE_APP = initialize_app()
diff --git a/aitrainer_backoffice/aitrainer_backoffice/settings/prod_org.py b/aitrainer_backoffice/aitrainer_backoffice/settings/prod_org.py
new file mode 100644
index 0000000..92172b7
--- /dev/null
+++ b/aitrainer_backoffice/aitrainer_backoffice/settings/prod_org.py
@@ -0,0 +1,189 @@
+import os
+from firebase_admin import initialize_app
+
+BACKOFFICE_VERSION = "1.38"
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = os.environ['DJANGO_KEY']
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = False
+
+ALLOWED_HOSTS = ['62.171.188.119', 
+    '.aitrainer.info',
+    '.aitrainer.app',
+    '.workouttest.com',
+    'workouttest.com',
+    '.workouttest.org',
+    'andio.hu']
+
+env = os.environ['GOOGLE_APPLICATION_CREDENTIALS']
+FIREBASE_APP = initialize_app()
+
+INSTALLED_APPS = [
+    'aitrainer_backoffice.aitrainer_backoffice',
+    'aitrainer_backoffice.controlling.apps.ControllingConfigLive',
+    'django.contrib.admin',
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.messages',
+    'django.contrib.staticfiles',
+    'ckeditor',
+    'ckeditor_uploader',
+    'django_admin_json_editor',
+    'rangefilter',
+    'adminsortable2',
+    'inline_actions',
+    'django_cron',
+    'firebase_admin',
+]
+
+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',
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'aitrainer_backoffice.aitrainer_backoffice.urls'
+
+TEMPLATES = [
+    {
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
+        'DIRS': [],
+        '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 = 'aitrainer_backoffice.wsgi.application'
+
+# Database
+# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
+
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': 'aitrainer_test',
+        'USER': 'aitrainer',
+        'PASSWORD': 'andio2009',
+        'HOST': 'mariadb-galera.db.svc.cluster.local',
+        'PORT': 33060
+    },
+    'live': {
+        'ENGINE': 'django.db.backends.mysql',
+        'NAME': 'aitrainer',
+        'USER': 'aitrainer',
+        'PASSWORD': 'andio2009',
+        'HOST': 'mariadb-galera.db.svc.cluster.local',
+        'PORT': 33060
+    }
+}
+
+DATABASE_ROUTERS = ['aitrainer_backoffice.aitrainer_backoffice.db_router.TestRouter']
+
+# Password validation
+# https://docs.djangoproject.com/en/3.0/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/3.0/topics/i18n/
+
+LANGUAGE_CODE = 'hu-HU'
+
+TIME_ZONE = 'Europe/Budapest'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/3.0/howto/static-files/
+
+STATIC_URL = '/static/'
+STATIC_ROOT = os.path.join(BASE_DIR, 'static')
+STATICFILES_DIRS = [
+    os.path.join(BASE_DIR, 'static'),
+    os.path.join(BASE_DIR, 'aitrainer_backoffice/static'),
+]
+
+MEDIA_URL = '/media/'
+MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
+CKEDITOR_UPLOAD_PATH = MEDIA_URL
+
+LOGGING = {
+    'version': 1,
+    'disable_existing_loggers': False,
+    'filters': {
+        'require_debug_true': {
+            '()': 'django.utils.log.RequireDebugTrue',
+        },
+    },
+    'handlers': {
+        'file': {
+            'level': 'ERROR',
+            'class': 'logging.FileHandler',
+            'filename': '/var/log/django_error.log',
+        }
+    },
+    'loggers': {
+             'django': {
+             'handlers': ['file'],
+             'level': 'DEBUG',
+            'propagate': True,
+        },        
+    },
+}
+
+CACHES = {
+    'default': {
+        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
+        'LOCATION': '/var/tmp/django_cache',
+        'TIMEOUT': 300,
+        'OPTIONS': {
+            'MAX_ENTRIES': 50000
+        }
+    }
+}
+
+# deployment settings
+#SECURE_SSL_REDIRECT = False
+#SESSION_COOKIE_SECURE = True
+#CSRF_COOKIE_SECURE = True
+
+
+CRON_CLASSES = [
+    'aitrainer_backoffice.controlling.cron.cron.NotificationJob',
+]