BO 1.17 split_tests, training_plan.tree_id
This commit is contained in:
parent
cc086325fb
commit
1812fc4d52
@ -10,3 +10,4 @@ from .exercise_plan import ExercisePlanAdmin
|
|||||||
from .description import DescriptionAdmin
|
from .description import DescriptionAdmin
|
||||||
from .training_plan import TrainingPlanAdmin, TrainingPlanDetailAdmin
|
from .training_plan import TrainingPlanAdmin, TrainingPlanDetailAdmin
|
||||||
from .faq import FaqAdmin
|
from .faq import FaqAdmin
|
||||||
|
from .split_tests import SplitTestAdmin
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
from ..models.split_tests import SplitTests
|
||||||
|
|
||||||
|
|
||||||
|
class SplitTestAdmin(admin.ModelAdmin):
|
||||||
|
list_display = ('test_id', 'name','remote_config_key', 'remote_config_value', 'test_value', 'active', 'valid_to')
|
||||||
|
list_editable = ('name','remote_config_key', 'remote_config_value', 'test_value', 'active', 'valid_to')
|
||||||
|
|
||||||
|
|
||||||
|
admin.site.register(SplitTests, SplitTestAdmin)
|
||||||
|
admin.autodiscover()
|
@ -13,7 +13,7 @@ class TranslationTrainingPlanInline(admin.TabularInline):
|
|||||||
|
|
||||||
class TrainingPlanAdmin(admin.ModelAdmin):
|
class TrainingPlanAdmin(admin.ModelAdmin):
|
||||||
list_display = ('training_plan_id', 'name','internal_name', 'free')
|
list_display = ('training_plan_id', 'name','internal_name', 'free')
|
||||||
fields = ('name','description')
|
fields = ('tree', 'name','description', 'internal_name', 'free')
|
||||||
list_editable = ('name','internal_name', 'free')
|
list_editable = ('name','internal_name', 'free')
|
||||||
|
|
||||||
inlines = [
|
inlines = [
|
||||||
|
@ -13,3 +13,4 @@ from .evaluation import Evaluation, EvaluationAttribute
|
|||||||
from .description import Description, DescriptionTranslation
|
from .description import Description, DescriptionTranslation
|
||||||
from .training_plan import TrainingPlan, TrainingPlanDetail
|
from .training_plan import TrainingPlan, TrainingPlanDetail
|
||||||
from .faq import Faq, FaqTranslation
|
from .faq import Faq, FaqTranslation
|
||||||
|
from .split_tests import SplitTests
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from .enums import LanguageTypes
|
from .enums import LanguageTypes
|
||||||
|
from ckeditor.fields import RichTextField
|
||||||
|
|
||||||
|
|
||||||
class ExerciseTree(models.Model):
|
class ExerciseTree(models.Model):
|
||||||
tree_id = models.AutoField(primary_key=True)
|
tree_id = models.AutoField(primary_key=True)
|
||||||
name = models.CharField(max_length=100, help_text='The name should be in English here')
|
name = models.CharField(max_length=100, help_text='The name should be in English here')
|
||||||
description = models.TextField(max_length=1000, blank=True, null=True, help_text='The description should be in '
|
description = RichTextField(max_length=1000, blank=True, null=True, help_text='The description should be in '
|
||||||
'English here')
|
'English here')
|
||||||
image_url = models.ImageField(upload_to='images/', help_text='The menu image size is 1366x768')
|
image_url = models.ImageField(upload_to='images/', help_text='The menu image size is 1366x768')
|
||||||
active = models.BooleanField(default=0, blank=True, null=True)
|
active = models.BooleanField(default=0, blank=True, null=True)
|
||||||
@ -28,7 +29,7 @@ class ExerciseTreeTranslation(models.Model):
|
|||||||
tree = models.ForeignKey(ExerciseTree, on_delete=models.CASCADE)
|
tree = models.ForeignKey(ExerciseTree, on_delete=models.CASCADE)
|
||||||
language_code = models.CharField(max_length=2, choices=LanguageTypes.choices, default=LanguageTypes.HU)
|
language_code = models.CharField(max_length=2, choices=LanguageTypes.choices, default=LanguageTypes.HU)
|
||||||
name = models.CharField(max_length=100)
|
name = models.CharField(max_length=100)
|
||||||
description = models.TextField(max_length=1000, blank=True, null=True)
|
description = RichTextField(max_length=1000, blank=True, null=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = 'exercise_tree_translation'
|
db_table = 'exercise_tree_translation'
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
from django.db import models
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
class SplitTests(models.Model):
|
||||||
|
test_id = models.AutoField(primary_key=True)
|
||||||
|
name = models.CharField(max_length=50, help_text='Unique test name',
|
||||||
|
verbose_name=_("name"))
|
||||||
|
remote_config_key = models.CharField(max_length=50, blank=True)
|
||||||
|
remote_config_value = models.CharField(max_length=50, blank=True)
|
||||||
|
test_value = models.CharField(max_length=50, blank=True)
|
||||||
|
active = models.BooleanField()
|
||||||
|
valid_to = models.DateTimeField(blank=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'split_tests'
|
||||||
|
verbose_name = _("A/B Test")
|
||||||
|
verbose_name_plural = _("A/B Tests")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
@ -3,11 +3,12 @@ from django.db import models
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from .enums import LanguageTypes
|
from .enums import LanguageTypes
|
||||||
from ..models import ExerciseType
|
from ..models import ExerciseType, ExerciseTree
|
||||||
|
|
||||||
|
|
||||||
class TrainingPlan(models.Model):
|
class TrainingPlan(models.Model):
|
||||||
training_plan_id = models.AutoField(primary_key=True)
|
training_plan_id = models.AutoField(primary_key=True)
|
||||||
|
tree = models.ForeignKey(ExerciseTree,on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=100, help_text='The name of the training plan',
|
name = models.CharField(max_length=100, help_text='The name of the training plan',
|
||||||
verbose_name=_("name"))
|
verbose_name=_("name"))
|
||||||
description = RichTextField(blank=True, null=True)
|
description = RichTextField(blank=True, null=True)
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
version: "3.7"
|
version: "3.7"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
web:
|
web:
|
||||||
build: .
|
build: .
|
||||||
container_name: backoffice
|
container_name: backoffice
|
||||||
@ -13,12 +15,13 @@ services:
|
|||||||
command: gunicorn aitrainer_backoffice.aitrainer_backoffice.wsgi --env DJANGO_SETTINGS_MODULE=aitrainer_backoffice.aitrainer_backoffice.settings.prod --bind 0.0.0.0:8000 --workers 3
|
command: gunicorn aitrainer_backoffice.aitrainer_backoffice.wsgi --env DJANGO_SETTINGS_MODULE=aitrainer_backoffice.aitrainer_backoffice.settings.prod --bind 0.0.0.0:8000 --workers 3
|
||||||
|
|
||||||
mysql-server:
|
mysql-server:
|
||||||
image: mysql:8.0.20
|
image: mysql:8.0.21
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
|
MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
|
||||||
volumes:
|
volumes:
|
||||||
- mysql-data-backoffice:/var/lib/mysql
|
- mysql-data-backoffice:/var/lib/mysql
|
||||||
|
- /home/bosi/backoffice/aitrainer_backoffice/mysqlconf:/etc/mysql/conf.d
|
||||||
ports:
|
ports:
|
||||||
- "33060:3306"
|
- "33060:3306"
|
||||||
|
|
||||||
@ -27,10 +30,113 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
PMA_HOST: mysql-server
|
PMA_HOST: mysql-server
|
||||||
PMA_USER: $MYSQL_USER
|
PMA_USER: aitrainer
|
||||||
PMA_PASSWORD: $MYSQL_ROOT_PASSWORD
|
PMA_PASSWORD: andio2009
|
||||||
ports:
|
ports:
|
||||||
- "8085:80"
|
- "8085:80"
|
||||||
|
volumes:
|
||||||
|
- ./htpasswd:/etc/phpmyadmin/.htpasswd
|
||||||
|
- ./phpmyadmin.config.php:/etc/phpmyadmin/config.user.inc.php
|
||||||
|
|
||||||
|
wordpress:
|
||||||
|
image: wordpress
|
||||||
|
container_name: wordpress
|
||||||
|
restart: always
|
||||||
|
links:
|
||||||
|
- mysql-server:mysql
|
||||||
|
depends_on:
|
||||||
|
- mysql-server
|
||||||
|
ports:
|
||||||
|
- "8090:80"
|
||||||
|
environment:
|
||||||
|
UPLOAD_LIMIT: 512M
|
||||||
|
UPLOAD_MAX_FILESIZE: 128M
|
||||||
|
WORDPRESS_DB_HOST: mysql-server
|
||||||
|
WORDPRESS_DB_USER: $MYSQL_USER
|
||||||
|
WORDPRESS_DB_PASSWORD: $MYSQL_ROOT_PASSWORD
|
||||||
|
WORDPRESS_DB_NAME: wp
|
||||||
|
volumes:
|
||||||
|
- wordpress:/var/www/html
|
||||||
|
- ./wp_php_custom.ini:/usr/local/etc/php/conf.d/uploads.ini
|
||||||
|
- ./wp_htaccess:/var/www/html/.htaccess
|
||||||
|
|
||||||
|
mautic:
|
||||||
|
image: mautic/mautic:v3
|
||||||
|
container_name: mautic
|
||||||
|
links:
|
||||||
|
- mysql-server:mysql
|
||||||
|
depends_on:
|
||||||
|
- mysql-server
|
||||||
|
ports:
|
||||||
|
- "8091:80"
|
||||||
|
volumes:
|
||||||
|
- mautic_data:/var/www/html
|
||||||
|
environment:
|
||||||
|
- MAUTIC_DB_HOST=mysql-server
|
||||||
|
- MAUTIC_DB_USER=aitrainer
|
||||||
|
- MAUTIC_DB_PASSWORD=andio2009
|
||||||
|
- MAUTIC_DB_NAME=mautic
|
||||||
|
- MAUTIC_RUN_CRON_JOBS=true
|
||||||
|
|
||||||
|
api:
|
||||||
|
# container_name: api_server
|
||||||
|
image: api_server:latest
|
||||||
|
build: .
|
||||||
|
depends_on:
|
||||||
|
- mysql-server
|
||||||
|
restart: always
|
||||||
|
working_dir: /aitrainer_server
|
||||||
|
environment:
|
||||||
|
SPRING_DATASOURCE_URL: jdbc:mysql://mysql-server:3306/aitrainer?serverTimezone=CET&useSSL=false&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||||
|
command: bash -c "SERVER_PORT=8888 java -jar aitrainer_server.jar --spring.profiles.active=prod"
|
||||||
|
ports:
|
||||||
|
- "8888:8888"
|
||||||
|
|
||||||
|
api_test_ssl:
|
||||||
|
image: api_server_ssl_test:latest
|
||||||
|
build: .
|
||||||
|
depends_on:
|
||||||
|
- mysql-server
|
||||||
|
restart: always
|
||||||
|
working_dir: /aitrainer_server
|
||||||
|
environment:
|
||||||
|
SPRING_DATASOURCE_URL: jdbc:mysql://mysql-server:3306/aitrainer_test?serverTimezone=CET&useSSL=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||||
|
command: bash -c "SERVER_PORT=8843 java -jar aitrainer_server.jar --spring.profiles.active=prodtest"
|
||||||
|
ports:
|
||||||
|
- "8843:8843"
|
||||||
|
|
||||||
|
api_ssl:
|
||||||
|
image: api_server_ssl:latest
|
||||||
|
build: .
|
||||||
|
depends_on:
|
||||||
|
- mysql-server
|
||||||
|
restart: always
|
||||||
|
working_dir: /aitrainer_server
|
||||||
|
environment:
|
||||||
|
SPRING_DATASOURCE_URL: jdbc:mysql://mysql-server:3306/aitrainer?serverTimezone=CET&useSSL=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||||
|
command: bash -c "SERVER_PORT=8943 java -jar aitrainer_server.jar --spring.profiles.active=prod"
|
||||||
|
ports:
|
||||||
|
- "8943:8943"
|
||||||
|
|
||||||
|
|
||||||
|
wiki:
|
||||||
|
image: requarks/wiki:2
|
||||||
|
depends_on:
|
||||||
|
- mysql-server
|
||||||
|
environment:
|
||||||
|
DB_TYPE: mysql
|
||||||
|
DB_HOST: mysql-server
|
||||||
|
DB_PORT: 3306
|
||||||
|
DB_USER: aitrainer
|
||||||
|
DB_PASS: andio2009
|
||||||
|
DB_NAME: wiki
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mysql-data-backoffice:
|
mysql-data-backoffice:
|
||||||
media:
|
media:
|
||||||
|
wordpress:
|
||||||
|
mautic_data:
|
||||||
|
xwiki-data:
|
Loading…
Reference in New Issue
Block a user