From 9d768c82059a4d00518511445274e4045e5e1bb4 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Tue, 21 Jun 2022 13:39:48 +0200 Subject: [PATCH] Changes for deployment --- caprover_create_app.py | 1 + caprover_deploy.sh | 3 +++ client/src/services/circle.ts | 1 + client/src/views/HomeView.vue | 2 +- compose/django/docker_start.sh | 7 +++++ .../core/management/commands/reset_schema.py | 26 +++++++++++++++++++ server/vbv_lernwelt/learnpath/models.py | 2 +- 7 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 server/vbv_lernwelt/core/management/commands/reset_schema.py 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))