diff --git a/caprover_create_app.py b/caprover_create_app.py
index 2306907f..6d776d48 100644
--- a/caprover_create_app.py
+++ b/caprover_create_app.py
@@ -47,6 +47,7 @@ cap.create_and_update_app(
'IT_DJANGO_SECRET_KEY': env.str('IT_DJANGO_SECRET_KEY'),
'IT_DJANGO_ADMIN_URL': env.str('IT_DJANGO_ADMIN_URL'),
'IT_DJANGO_ALLOWED_HOSTS': env.str('IT_DJANGO_ALLOWED_HOSTS'),
+ 'IT_DJANGO_DEBUG': 'false',
'IT_SENTRY_DSN': env.str('IT_SENTRY_DSN'),
'IT_APP_ENVIRONMENT': 'caprover',
'POSTGRES_HOST': 'srv-captain--vbv-lernwelt-postgres-db',
diff --git a/caprover_deploy.sh b/caprover_deploy.sh
index aa996df9..f259c6d8 100755
--- a/caprover_deploy.sh
+++ b/caprover_deploy.sh
@@ -1,5 +1,8 @@
#!/bin/bash
+# script should fail when any process returns non zero code
+set -ev
+
# create client
npm run build
diff --git a/client/src/services/circle.ts b/client/src/services/circle.ts
index e2427408..15d43773 100644
--- a/client/src/services/circle.ts
+++ b/client/src/services/circle.ts
@@ -52,6 +52,7 @@ export function parseLearningSequences (children: CircleChild[]): LearningSequen
});
if (learningUnit && learningSequence) {
+ // TypeScript does not get it here...
(learningSequence as LearningSequence).learningUnits.push(learningUnit);
result.push(learningSequence);
} else {
diff --git a/client/src/views/HomeView.vue b/client/src/views/HomeView.vue
index 4686655a..de8b39f2 100644
--- a/client/src/views/HomeView.vue
+++ b/client/src/views/HomeView.vue
@@ -10,7 +10,7 @@ import MainNavigationBar from '@/components/MainNavigationBar.vue';
Styelguide
Login
-
Lernpfad "Versicherungsvermittlerin" (Login benötigt)
+
Circle "Analyse" (Login benötigt)
diff --git a/compose/django/docker_start.sh b/compose/django/docker_start.sh
index 9c06873f..05e535bd 100644
--- a/compose/django/docker_start.sh
+++ b/compose/django/docker_start.sh
@@ -4,8 +4,15 @@ set -o errexit
set -o pipefail
set -o nounset
+# TODO remove after stabilisation
+python /app/manage.py reset_schema
+
python /app/manage.py collectstatic --noinput
python /app/manage.py createcachetable
python /app/manage.py migrate
+# TODO remove after stabilisation
+python /app/manage.py create_default_users
+python /app/manage.py create_default_learning_path
+
/usr/local/bin/gunicorn config.asgi --bind 0.0.0.0:80 --chdir=/app -k uvicorn.workers.UvicornWorker
diff --git a/server/vbv_lernwelt/core/management/commands/reset_schema.py b/server/vbv_lernwelt/core/management/commands/reset_schema.py
new file mode 100644
index 00000000..d4faa57d
--- /dev/null
+++ b/server/vbv_lernwelt/core/management/commands/reset_schema.py
@@ -0,0 +1,26 @@
+import djclick as click
+from django.conf import settings
+from django.db import transaction, connection
+
+
+def reset_schema(db_config_user):
+ sql_list = (
+ 'DROP SCHEMA public CASCADE',
+ f'CREATE SCHEMA public AUTHORIZATION {db_config_user}',
+ 'GRANT ALL ON SCHEMA public TO postgres',
+ 'GRANT ALL ON SCHEMA public TO public',
+ "COMMENT ON SCHEMA public IS 'standard public schema';",
+ )
+
+ with transaction.atomic():
+ with connection.cursor() as cursor:
+ for sql in sql_list:
+ cursor.execute(sql)
+
+
+@click.command()
+def command():
+ user = settings.DATABASES['default']['USER']
+ print(user)
+
+ reset_schema(db_config_user=user)
diff --git a/server/vbv_lernwelt/learnpath/models.py b/server/vbv_lernwelt/learnpath/models.py
index fdc5896b..4549ae91 100644
--- a/server/vbv_lernwelt/learnpath/models.py
+++ b/server/vbv_lernwelt/learnpath/models.py
@@ -200,7 +200,7 @@ class LearningContent(Page):
return display_title
class Meta:
- verbose_name = "Learning Unit"
+ verbose_name = "Learning Content"
def full_clean(self, *args, **kwargs):
self.slug = find_available_slug(LearningContent, slugify(self.title, allow_unicode=True))