diff --git a/server/vbv_lernwelt/assignment/migrations/0001_initial.py b/server/vbv_lernwelt/assignment/migrations/0001_initial.py index c40d150d..3cebf30b 100644 --- a/server/vbv_lernwelt/assignment/migrations/0001_initial.py +++ b/server/vbv_lernwelt/assignment/migrations/0001_initial.py @@ -1,325 +1,78 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 +from django.db import migrations, models import django.db.models.deletion +import uuid import wagtail.blocks import wagtail.fields -from django.db import migrations, models class Migration(migrations.Migration): + initial = True dependencies = [ - ("wagtailcore", "0083_workflowcontenttype"), + ('wagtailcore', '0083_workflowcontenttype'), ] operations = [ migrations.CreateModel( - name="Assignment", + name='Assignment', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ( - "intro_text", - wagtail.fields.RichTextField( - help_text="Erläuterung der Ausgangslage" - ), - ), - ( - "effort_required", - models.CharField( - blank=True, help_text="Zeitaufwand als Text", max_length=100 - ), - ), - ( - "performance_objectives", - wagtail.fields.StreamField( - [ - ( - "performance_objective", - wagtail.blocks.StructBlock( - [("text", wagtail.blocks.TextBlock())] - ), - ) - ], - blank=True, - help_text="Leistungsziele des Auftrags", - use_json_field=True, - ), - ), - ( - "tasks", - wagtail.fields.StreamField( - [ - ( - "task", - wagtail.blocks.StructBlock( - [ - ("title", wagtail.blocks.TextBlock()), - ( - "file_submission_required", - wagtail.blocks.BooleanBlock(required=False), - ), - ( - "content", - wagtail.blocks.StreamBlock( - [ - ( - "explanation", - wagtail.blocks.StructBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "ul", - "bold", - "italic", - ] - ), - ) - ] - ), - ), - ( - "user_text_input", - wagtail.blocks.StructBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - blank=True, - features=[ - "ul", - "bold", - "italic", - ], - required=False, - ), - ) - ] - ), - ), - ( - "user_confirmation", - wagtail.blocks.StructBlock( - [ - ( - "text", - wagtail.blocks.RichTextBlock( - features=[ - "ul", - "bold", - "italic", - ] - ), - ) - ] - ), - ), - ], - blank=True, - ), - ), - ] - ), - ) - ], - blank=True, - help_text="Teilaufgaben", - use_json_field=True, - ), - ), - ( - "evaluation_description", - wagtail.fields.RichTextField( - blank=True, help_text="Beschreibung der Bewertung" - ), - ), - ( - "evaluation_document_url", - models.CharField( - blank=True, - help_text="URL zum Beurteilungsinstrument", - max_length=255, - ), - ), - ( - "evaluation_tasks", - wagtail.fields.StreamField( - [ - ( - "task", - wagtail.blocks.StructBlock( - [ - ("title", wagtail.blocks.TextBlock()), - ( - "description", - wagtail.blocks.RichTextBlock( - blank=True, - features=["ul", "bold", "italic"], - required=False, - ), - ), - ("max_points", wagtail.blocks.IntegerBlock()), - ( - "sub_tasks", - wagtail.blocks.ListBlock( - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.TextBlock(), - ), - ( - "description", - wagtail.blocks.RichTextBlock( - blank=True, - features=[ - "ul", - "bold", - "italic", - ], - required=False, - ), - ), - ( - "points", - wagtail.blocks.IntegerBlock(), - ), - ] - ), - blank=True, - use_json_field=True, - ), - ), - ] - ), - ) - ], - blank=True, - help_text="Beurteilungsschritte", - use_json_field=True, - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('assignment_type', models.CharField(choices=[('CASEWORK', 'CASEWORK'), ('PREP_ASSIGNMENT', 'PREP_ASSIGNMENT'), ('REFLECTION', 'REFLECTION')], default='CASEWORK', max_length=50)), + ('intro_text', wagtail.fields.RichTextField(help_text='Erläuterung der Ausgangslage')), + ('effort_required', models.CharField(blank=True, help_text='Zeitaufwand als Text', max_length=100)), + ('performance_objectives', wagtail.fields.StreamField([('performance_objective', wagtail.blocks.StructBlock([('text', wagtail.blocks.TextBlock())]))], blank=True, help_text='Leistungsziele des Auftrags', use_json_field=True)), + ('tasks', wagtail.fields.StreamField([('task', wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('file_submission_required', wagtail.blocks.BooleanBlock(required=False)), ('content', wagtail.blocks.StreamBlock([('explanation', wagtail.blocks.StructBlock([('text', wagtail.blocks.RichTextBlock(features=['ul', 'bold', 'italic']))])), ('user_text_input', wagtail.blocks.StructBlock([('text', wagtail.blocks.RichTextBlock(blank=True, features=['ul', 'bold', 'italic'], required=False))])), ('user_confirmation', wagtail.blocks.StructBlock([('text', wagtail.blocks.RichTextBlock(features=['ul', 'bold', 'italic']))]))], blank=True))]))], blank=True, help_text='Teilaufgaben', use_json_field=True)), + ('evaluation_description', wagtail.fields.RichTextField(blank=True, help_text='Beschreibung der Bewertung')), + ('evaluation_document_url', models.CharField(blank=True, help_text='URL zum Beurteilungsinstrument', max_length=255)), + ('evaluation_tasks', wagtail.fields.StreamField([('task', wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('description', wagtail.blocks.RichTextBlock(blank=True, features=['ul', 'bold', 'italic'], required=False)), ('max_points', wagtail.blocks.IntegerBlock()), ('sub_tasks', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('description', wagtail.blocks.RichTextBlock(blank=True, features=['ul', 'bold', 'italic'], required=False)), ('points', wagtail.blocks.IntegerBlock())]), blank=True, use_json_field=True))]))], blank=True, help_text='Beurteilungsschritte', use_json_field=True)), ], options={ - "verbose_name": "Auftrag", + 'verbose_name': 'Auftrag', }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="AssignmentCompletion", + name='AssignmentCompletion', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ("submitted_at", models.DateTimeField(blank=True, null=True)), - ( - "evaluation_submitted_at", - models.DateTimeField(blank=True, null=True), - ), - ("evaluation_grade", models.FloatField(blank=True, null=True)), - ("evaluation_points", models.FloatField(blank=True, null=True)), - ( - "completion_status", - models.CharField( - choices=[ - ("IN_PROGRESS", "IN_PROGRESS"), - ("SUBMITTED", "SUBMITTED"), - ("EVALUATION_IN_PROGRESS", "EVALUATION_IN_PROGRESS"), - ("EVALUATION_SUBMITTED", "EVALUATION_SUBMITTED"), - ], - default="IN_PROGRESS", - max_length=255, - ), - ), - ("completion_data", models.JSONField(default=dict)), - ("additional_json_data", models.JSONField(default=dict)), + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('submitted_at', models.DateTimeField(blank=True, null=True)), + ('evaluation_submitted_at', models.DateTimeField(blank=True, null=True)), + ('evaluation_grade', models.FloatField(blank=True, null=True)), + ('evaluation_points', models.FloatField(blank=True, null=True)), + ('completion_status', models.CharField(choices=[('IN_PROGRESS', 'IN_PROGRESS'), ('SUBMITTED', 'SUBMITTED'), ('EVALUATION_IN_PROGRESS', 'EVALUATION_IN_PROGRESS'), ('EVALUATION_SUBMITTED', 'EVALUATION_SUBMITTED')], default='IN_PROGRESS', max_length=255)), + ('completion_data', models.JSONField(default=dict)), + ('additional_json_data', models.JSONField(default=dict)), ], ), migrations.CreateModel( - name="AssignmentListPage", + name='AssignmentListPage', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="AssignmentCompletionAuditLog", + name='AssignmentCompletionAuditLog', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ( - "completion_status", - models.CharField( - choices=[ - (1, "IN_PROGRESS"), - (2, "SUBMITTED"), - (3, "EVALUATION_IN_PROGRESS"), - (4, "EVALUATION_SUBMITTED"), - ], - default="IN_PROGRESS", - max_length=255, - ), - ), - ("completion_data", models.JSONField(default=dict)), - ("additional_json_data", models.JSONField(default=dict)), - ("assignment_user_email", models.CharField(max_length=255)), - ("assignment_slug", models.CharField(max_length=255)), - ( - "evaluation_user_email", - models.CharField(blank=True, default="", max_length=255), - ), - ("evaluation_grade", models.FloatField(blank=True, null=True)), - ("evaluation_points", models.FloatField(blank=True, null=True)), - ( - "assignment", - models.ForeignKey( - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to="assignment.assignment", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('completion_status', models.CharField(choices=[('IN_PROGRESS', 'IN_PROGRESS'), ('SUBMITTED', 'SUBMITTED'), ('EVALUATION_IN_PROGRESS', 'EVALUATION_IN_PROGRESS'), ('EVALUATION_SUBMITTED', 'EVALUATION_SUBMITTED')], default='IN_PROGRESS', max_length=255)), + ('completion_data', models.JSONField(default=dict)), + ('additional_json_data', models.JSONField(default=dict)), + ('assignment_user_email', models.CharField(max_length=255)), + ('assignment_slug', models.CharField(max_length=255)), + ('evaluation_user_email', models.CharField(blank=True, default='', max_length=255)), + ('evaluation_grade', models.FloatField(blank=True, null=True)), + ('evaluation_points', models.FloatField(blank=True, null=True)), + ('assignment', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='assignment.assignment')), ], ), ] diff --git a/server/vbv_lernwelt/assignment/migrations/0002_assignmentcompletionauditlog_assignment_user.py b/server/vbv_lernwelt/assignment/migrations/0002_assignmentcompletionauditlog_assignment_user.py index 2d2828f4..2323a768 100644 --- a/server/vbv_lernwelt/assignment/migrations/0002_assignmentcompletionauditlog_assignment_user.py +++ b/server/vbv_lernwelt/assignment/migrations/0002_assignmentcompletionauditlog_assignment_user.py @@ -1,8 +1,8 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion from django.conf import settings from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -10,19 +10,14 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("assignment", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('assignment', '0001_initial'), ] operations = [ migrations.AddField( - model_name="assignmentcompletionauditlog", - name="assignment_user", - field=models.ForeignKey( - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to=settings.AUTH_USER_MODEL, - ), + model_name='assignmentcompletionauditlog', + name='assignment_user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL), ), ] diff --git a/server/vbv_lernwelt/assignment/migrations/0003_initial.py b/server/vbv_lernwelt/assignment/migrations/0003_initial.py index 570836e8..756bee0d 100644 --- a/server/vbv_lernwelt/assignment/migrations/0003_initial.py +++ b/server/vbv_lernwelt/assignment/migrations/0003_initial.py @@ -1,8 +1,8 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion from django.conf import settings from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -10,70 +10,50 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("course", "0001_initial"), + ('course', '0001_initial'), + ('assignment', '0002_assignmentcompletionauditlog_assignment_user'), + ('wagtailcore', '0083_workflowcontenttype'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ("assignment", "0002_assignmentcompletionauditlog_assignment_user"), ] operations = [ migrations.AddField( - model_name="assignmentcompletionauditlog", - name="course_session", - field=models.ForeignKey( - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to="course.coursesession", - ), + model_name='assignmentcompletionauditlog', + name='course_session', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='course.coursesession'), ), migrations.AddField( - model_name="assignmentcompletionauditlog", - name="evaluation_user", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to=settings.AUTH_USER_MODEL, - ), + model_name='assignmentcompletionauditlog', + name='evaluation_user', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL), ), migrations.AddField( - model_name="assignmentcompletion", - name="assignment", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to="assignment.assignment" - ), + model_name='assignmentcompletion', + name='assignment', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assignment.assignment'), ), migrations.AddField( - model_name="assignmentcompletion", - name="assignment_user", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL - ), + model_name='assignmentcompletion', + name='assignment_user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( - model_name="assignmentcompletion", - name="course_session", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to="course.coursesession" - ), + model_name='assignmentcompletion', + name='course_session', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.coursesession'), ), migrations.AddField( - model_name="assignmentcompletion", - name="evaluation_user", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="+", - to=settings.AUTH_USER_MODEL, - ), + model_name='assignmentcompletion', + name='evaluation_user', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='assignmentcompletion', + name='learning_content_page', + field=models.ForeignKey(blank=True, default=None, help_text="Page reference mostly needed for 'REFLECTION' assignments", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.page'), ), migrations.AddConstraint( - model_name="assignmentcompletion", - constraint=models.UniqueConstraint( - fields=("assignment_user", "assignment", "course_session"), - name="assignment_completion_unique_user_assignment_course_session", - ), + model_name='assignmentcompletion', + constraint=models.UniqueConstraint(fields=('assignment_user', 'assignment', 'course_session', 'learning_content_page'), name='assignment_completion_unique_user_assignment_course_session'), ), ] diff --git a/server/vbv_lernwelt/assignment/migrations/0004_assignment_assignment_type.py b/server/vbv_lernwelt/assignment/migrations/0004_assignment_assignment_type.py deleted file mode 100644 index aef726ae..00000000 --- a/server/vbv_lernwelt/assignment/migrations/0004_assignment_assignment_type.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-19 13:43 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("assignment", "0003_initial"), - ] - - operations = [ - migrations.AddField( - model_name="assignment", - name="assignment_type", - field=models.CharField( - choices=[ - ("CASEWORK", "CASEWORK"), - ("PREP_ASSIGNMENT", "PREP_ASSIGNMENT"), - ("REFLECTION", "REFLECTION"), - ], - default="CASEWORK", - max_length=50, - ), - ), - ] diff --git a/server/vbv_lernwelt/assignment/migrations/0005_alter_assignmentcompletionauditlog_completion_status.py b/server/vbv_lernwelt/assignment/migrations/0005_alter_assignmentcompletionauditlog_completion_status.py deleted file mode 100644 index 623e4aa8..00000000 --- a/server/vbv_lernwelt/assignment/migrations/0005_alter_assignmentcompletionauditlog_completion_status.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-28 14:12 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("assignment", "0004_assignment_assignment_type"), - ] - - operations = [ - migrations.AlterField( - model_name="assignmentcompletionauditlog", - name="completion_status", - field=models.CharField( - choices=[ - ("IN_PROGRESS", "IN_PROGRESS"), - ("SUBMITTED", "SUBMITTED"), - ("EVALUATION_IN_PROGRESS", "EVALUATION_IN_PROGRESS"), - ("EVALUATION_SUBMITTED", "EVALUATION_SUBMITTED"), - ], - default="IN_PROGRESS", - max_length=255, - ), - ), - ] diff --git a/server/vbv_lernwelt/assignment/migrations/0006_auto_20230628_1616.py b/server/vbv_lernwelt/assignment/migrations/0006_auto_20230628_1616.py deleted file mode 100644 index e2a094bc..00000000 --- a/server/vbv_lernwelt/assignment/migrations/0006_auto_20230628_1616.py +++ /dev/null @@ -1,37 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-28 14:16 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("learnpath", "0007_learningunit_title_hidden"), - ("assignment", "0005_alter_assignmentcompletionauditlog_completion_status"), - ] - - operations = [ - migrations.RemoveConstraint( - model_name="assignmentcompletion", - name="assignment_completion_unique_user_assignment_course_session", - ), - migrations.AddField( - model_name="assignmentcompletion", - name="circle", - field=models.ForeignKey( - blank=True, - default=None, - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="learnpath.circle", - ), - ), - migrations.AddConstraint( - model_name="assignmentcompletion", - constraint=models.UniqueConstraint( - fields=("assignment_user", "assignment", "course_session", "circle"), - name="assignment_completion_unique_user_assignment_course_session", - ), - ), - ] diff --git a/server/vbv_lernwelt/assignment/migrations/0007_auto_20230712_1649.py b/server/vbv_lernwelt/assignment/migrations/0007_auto_20230712_1649.py deleted file mode 100644 index e64815ac..00000000 --- a/server/vbv_lernwelt/assignment/migrations/0007_auto_20230712_1649.py +++ /dev/null @@ -1,48 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-12 14:49 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailcore", "0083_workflowcontenttype"), - ("assignment", "0006_auto_20230628_1616"), - ] - - operations = [ - migrations.RemoveConstraint( - model_name="assignmentcompletion", - name="assignment_completion_unique_user_assignment_course_session", - ), - migrations.RemoveField( - model_name="assignmentcompletion", - name="circle", - ), - migrations.AddField( - model_name="assignmentcompletion", - name="learning_content_page", - field=models.ForeignKey( - blank=True, - default=None, - help_text="Page reference mostly needed for 'REFLECTION' assignments", - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="+", - to="wagtailcore.page", - ), - ), - migrations.AddConstraint( - model_name="assignmentcompletion", - constraint=models.UniqueConstraint( - fields=( - "assignment_user", - "assignment", - "course_session", - "learning_content_page", - ), - name="assignment_completion_unique_user_assignment_course_session", - ), - ), - ] diff --git a/server/vbv_lernwelt/assignment/models.py b/server/vbv_lernwelt/assignment/models.py index ae142063..407808d2 100644 --- a/server/vbv_lernwelt/assignment/models.py +++ b/server/vbv_lernwelt/assignment/models.py @@ -1,3 +1,4 @@ +import uuid from enum import Enum from django.db import models @@ -252,6 +253,8 @@ def is_valid_assignment_completion_status( class AssignmentCompletion(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) diff --git a/server/vbv_lernwelt/competence/migrations/0001_initial.py b/server/vbv_lernwelt/competence/migrations/0001_initial.py index e282a6b0..d110a5fe 100644 --- a/server/vbv_lernwelt/competence/migrations/0001_initial.py +++ b/server/vbv_lernwelt/competence/migrations/0001_initial.py @@ -1,9 +1,9 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 +from django.db import migrations, models import django.db.models.deletion import wagtail.blocks import wagtail.fields -from django.db import migrations, models class Migration(migrations.Migration): @@ -11,76 +11,43 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("wagtailcore", "0083_workflowcontenttype"), + ('wagtailcore', '0083_workflowcontenttype'), ] operations = [ migrations.CreateModel( - name="CompetencePage", + name='CompetencePage', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("competence_id", models.TextField(default="A1")), - ( - "items", - wagtail.fields.StreamField( - [("item", wagtail.blocks.TextBlock())], use_json_field=True - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('competence_id', models.TextField(default='A1')), + ('items', wagtail.fields.StreamField([('item', wagtail.blocks.TextBlock())], use_json_field=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="CompetenceProfilePage", + name='CompetenceProfilePage', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="PerformanceCriteria", + name='PerformanceCriteria', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("competence_id", models.TextField(default="A1.1")), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('competence_id', models.TextField(default='A1.1')), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), ] diff --git a/server/vbv_lernwelt/competence/migrations/0002_performancecriteria_learning_unit.py b/server/vbv_lernwelt/competence/migrations/0002_performancecriteria_learning_unit.py index 0278879a..d9c81c76 100644 --- a/server/vbv_lernwelt/competence/migrations/0002_performancecriteria_learning_unit.py +++ b/server/vbv_lernwelt/competence/migrations/0002_performancecriteria_learning_unit.py @@ -1,7 +1,7 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -9,19 +9,14 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("competence", "0001_initial"), - ("learnpath", "0001_initial"), + ('learnpath', '0001_initial'), + ('competence', '0001_initial'), ] operations = [ migrations.AddField( - model_name="performancecriteria", - name="learning_unit", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to="learnpath.learningunit", - ), + model_name='performancecriteria', + name='learning_unit', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='learnpath.learningunit'), ), ] diff --git a/server/vbv_lernwelt/competence/migrations/0003_auto_20230626_1747.py b/server/vbv_lernwelt/competence/migrations/0003_auto_20230626_1747.py deleted file mode 100644 index d359769b..00000000 --- a/server/vbv_lernwelt/competence/migrations/0003_auto_20230626_1747.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-26 15:47 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("competence", "0002_performancecriteria_learning_unit"), - ] - - operations = [ - migrations.AddField( - model_name="performancecriteria", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="performancecriteria", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - ] diff --git a/server/vbv_lernwelt/contrib/sites/migrations/0001_initial.py b/server/vbv_lernwelt/contrib/sites/migrations/0001_initial.py index 59647c85..74e0d7da 100644 --- a/server/vbv_lernwelt/contrib/sites/migrations/0001_initial.py +++ b/server/vbv_lernwelt/contrib/sites/migrations/0001_initial.py @@ -1,41 +1,32 @@ +# Generated by Django 3.2.13 on 2023-07-14 12:15 + import django.contrib.sites.models -from django.contrib.sites.models import _simple_domain_name_validator from django.db import migrations, models class Migration(migrations.Migration): - dependencies = [] + + initial = True + + dependencies = [ + ] operations = [ migrations.CreateModel( - name="Site", + name='Site', fields=[ - ( - "id", - models.AutoField( - verbose_name="ID", - serialize=False, - auto_created=True, - primary_key=True, - ), - ), - ( - "domain", - models.CharField( - max_length=100, - verbose_name="domain name", - validators=[_simple_domain_name_validator], - ), - ), - ("name", models.CharField(max_length=50, verbose_name="display name")), + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('domain', models.CharField(max_length=100, unique=True, validators=[django.contrib.sites.models._simple_domain_name_validator], verbose_name='domain name')), + ('name', models.CharField(max_length=50, verbose_name='display name')), ], options={ - "ordering": ("domain",), - "db_table": "django_site", - "verbose_name": "site", - "verbose_name_plural": "sites", + 'verbose_name': 'site', + 'verbose_name_plural': 'sites', + 'db_table': 'django_site', + 'ordering': ['domain'], }, - bases=(models.Model,), - managers=[("objects", django.contrib.sites.models.SiteManager())], - ) + managers=[ + ('objects', django.contrib.sites.models.SiteManager()), + ], + ), ] diff --git a/server/vbv_lernwelt/contrib/sites/migrations/0002_alter_domain_unique.py b/server/vbv_lernwelt/contrib/sites/migrations/0002_alter_domain_unique.py deleted file mode 100644 index 4359049f..00000000 --- a/server/vbv_lernwelt/contrib/sites/migrations/0002_alter_domain_unique.py +++ /dev/null @@ -1,19 +0,0 @@ -import django.contrib.sites.models -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [("sites", "0001_initial")] - - operations = [ - migrations.AlterField( - model_name="site", - name="domain", - field=models.CharField( - max_length=100, - unique=True, - validators=[django.contrib.sites.models._simple_domain_name_validator], - verbose_name="domain name", - ), - ) - ] diff --git a/server/vbv_lernwelt/contrib/sites/migrations/0003_set_site_domain_and_name.py b/server/vbv_lernwelt/contrib/sites/migrations/0003_set_site_domain_and_name.py deleted file mode 100644 index b1c98fa7..00000000 --- a/server/vbv_lernwelt/contrib/sites/migrations/0003_set_site_domain_and_name.py +++ /dev/null @@ -1,62 +0,0 @@ -""" -To understand why this file is here, please read: - -http://cookiecutter-django.readthedocs.io/en/latest/faq.html#why-is-there-a-django-contrib-sites-directory-in-cookiecutter-django -""" -from django.conf import settings -from django.db import migrations - - -def _update_or_create_site_with_sequence(site_model, connection, domain, name): - """Update or create the site with default ID and keep the DB sequence in sync.""" - site, created = site_model.objects.update_or_create( - id=settings.SITE_ID, - defaults={ - "domain": domain, - "name": name, - }, - ) - if created: - # We provided the ID explicitly when creating the Site entry, therefore the DB - # sequence to auto-generate them wasn't used and is now out of sync. If we - # don't do anything, we'll get a unique constraint violation the next time a - # site is created. - # To avoid this, we need to manually update DB sequence and make sure it's - # greater than the maximum value. - max_id = site_model.objects.order_by("-id").first().id - with connection.cursor() as cursor: - cursor.execute("SELECT last_value from django_site_id_seq") - (current_id,) = cursor.fetchone() - if current_id <= max_id: - cursor.execute( - "alter sequence django_site_id_seq restart with %s", - [max_id + 1], - ) - - -def update_site_forward(apps, schema_editor): - """Set site domain and name.""" - Site = apps.get_model("sites", "Site") - _update_or_create_site_with_sequence( - Site, - schema_editor.connection, - "vbv-lernwelt.iterativ.ch", - "VBV Lernwelt", - ) - - -def update_site_backward(apps, schema_editor): - """Revert site domain and name to default.""" - Site = apps.get_model("sites", "Site") - _update_or_create_site_with_sequence( - Site, - schema_editor.connection, - "example.com", - "example.com", - ) - - -class Migration(migrations.Migration): - dependencies = [("sites", "0002_alter_domain_unique")] - - operations = [migrations.RunPython(update_site_forward, update_site_backward)] diff --git a/server/vbv_lernwelt/contrib/sites/migrations/0004_alter_options_ordering_domain.py b/server/vbv_lernwelt/contrib/sites/migrations/0004_alter_options_ordering_domain.py deleted file mode 100644 index 095ca009..00000000 --- a/server/vbv_lernwelt/contrib/sites/migrations/0004_alter_options_ordering_domain.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.1.7 on 2021-02-04 14:49 - -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ("sites", "0003_set_site_domain_and_name"), - ] - - operations = [ - migrations.AlterModelOptions( - name="site", - options={ - "ordering": ["domain"], - "verbose_name": "site", - "verbose_name_plural": "sites", - }, - ), - ] diff --git a/server/vbv_lernwelt/core/migrations/0001_initial.py b/server/vbv_lernwelt/core/migrations/0001_initial.py index 833238c4..87f86943 100644 --- a/server/vbv_lernwelt/core/migrations/0001_initial.py +++ b/server/vbv_lernwelt/core/migrations/0001_initial.py @@ -1,8 +1,9 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 +import django.contrib.auth.models import django.contrib.auth.validators -import django.utils.timezone from django.db import migrations, models +import django.utils.timezone class Migration(migrations.Migration): @@ -10,182 +11,51 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("auth", "0012_alter_user_first_name_max_length"), + ('auth', '0012_alter_user_first_name_max_length'), ] operations = [ migrations.CreateModel( - name="SecurityRequestResponseLog", + name='SecurityRequestResponseLog', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("label", models.CharField(blank=True, default="", max_length=255)), - ( - "request_method", - models.CharField(blank=True, default="", max_length=255), - ), - ( - "request_full_path", - models.CharField(blank=True, default="", max_length=255), - ), - ( - "request_username", - models.CharField(blank=True, default="", max_length=255), - ), - ( - "request_client_ip", - models.CharField(blank=True, default="", max_length=255), - ), - ( - "response_status_code", - models.CharField(blank=True, default="", max_length=255), - ), - ("additional_json_data", models.JSONField(blank=True, default=dict)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('label', models.CharField(blank=True, default='', max_length=255)), + ('request_method', models.CharField(blank=True, default='', max_length=255)), + ('request_full_path', models.CharField(blank=True, default='', max_length=255)), + ('request_username', models.CharField(blank=True, default='', max_length=255)), + ('request_client_ip', models.CharField(blank=True, default='', max_length=255)), + ('response_status_code', models.CharField(blank=True, default='', max_length=255)), + ('additional_json_data', models.JSONField(blank=True, default=dict)), ], ), migrations.CreateModel( - name="User", + name='User', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("password", models.CharField(max_length=128, verbose_name="password")), - ( - "last_login", - models.DateTimeField( - blank=True, null=True, verbose_name="last login" - ), - ), - ( - "is_superuser", - models.BooleanField( - default=False, - help_text="Designates that this user has all permissions without explicitly assigning them.", - verbose_name="superuser status", - ), - ), - ( - "username", - models.CharField( - error_messages={ - "unique": "A user with that username already exists." - }, - help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", - max_length=150, - unique=True, - validators=[ - django.contrib.auth.validators.UnicodeUsernameValidator() - ], - verbose_name="username", - ), - ), - ( - "first_name", - models.CharField( - blank=True, max_length=150, verbose_name="first name" - ), - ), - ( - "last_name", - models.CharField( - blank=True, max_length=150, verbose_name="last name" - ), - ), - ( - "is_staff", - models.BooleanField( - default=False, - help_text="Designates whether the user can log into this admin site.", - verbose_name="staff status", - ), - ), - ( - "is_active", - models.BooleanField( - default=True, - help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", - verbose_name="active", - ), - ), - ( - "date_joined", - models.DateTimeField( - default=django.utils.timezone.now, verbose_name="date joined" - ), - ), - ( - "avatar_url", - models.CharField(blank=True, default="", max_length=254), - ), - ( - "email", - models.EmailField( - max_length=254, unique=True, verbose_name="email address" - ), - ), - ( - "sso_id", - models.UUIDField( - blank=True, - default=None, - null=True, - unique=True, - verbose_name="SSO subscriber ID", - ), - ), - ("additional_json_data", models.JSONField(blank=True, default=dict)), - ( - "language", - models.CharField( - choices=[ - ("de", "Deutsch"), - ("fr", "Français"), - ("it", "Italiano"), - ], - default="de", - max_length=2, - ), - ), - ( - "groups", - models.ManyToManyField( - blank=True, - help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.", - related_name="user_set", - related_query_name="user", - to="auth.Group", - verbose_name="groups", - ), - ), - ( - "user_permissions", - models.ManyToManyField( - blank=True, - help_text="Specific permissions for this user.", - related_name="user_set", - related_query_name="user", - to="auth.Permission", - verbose_name="user permissions", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), + ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), + ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('avatar_url', models.CharField(blank=True, default='/static/avatars/myvbv-default-avatar.png', max_length=254)), + ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')), + ('sso_id', models.UUIDField(blank=True, default=None, null=True, unique=True, verbose_name='SSO subscriber ID')), + ('additional_json_data', models.JSONField(blank=True, default=dict)), + ('language', models.CharField(choices=[('de', 'Deutsch'), ('fr', 'Français'), ('it', 'Italiano')], default='de', max_length=2)), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), ], options={ - "verbose_name": "user", - "verbose_name_plural": "users", - "abstract": False, + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, }, + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], ), ] diff --git a/server/vbv_lernwelt/core/migrations/0002_alter_user_managers.py b/server/vbv_lernwelt/core/migrations/0002_alter_user_managers.py deleted file mode 100644 index 3f6b16fe..00000000 --- a/server/vbv_lernwelt/core/migrations/0002_alter_user_managers.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-31 14:34 - -import django.contrib.auth.models -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("core", "0001_initial"), - ] - - operations = [ - migrations.AlterModelManagers( - name="user", - managers=[ - ("objects", django.contrib.auth.models.UserManager()), - ], - ), - ] diff --git a/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py b/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py deleted file mode 100644 index d1e22e74..00000000 --- a/server/vbv_lernwelt/core/migrations/0003_alter_user_avatar_url.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-02 12:32 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("core", "0002_alter_user_managers"), - ] - - operations = [ - migrations.AlterField( - model_name="user", - name="avatar_url", - field=models.CharField( - blank=True, - default="/static/avatars/myvbv-default-avatar.png", - max_length=254, - ), - ), - ] diff --git a/server/vbv_lernwelt/course/migrations/0001_initial.py b/server/vbv_lernwelt/course/migrations/0001_initial.py index 87fba784..da2e04a9 100644 --- a/server/vbv_lernwelt/course/migrations/0001_initial.py +++ b/server/vbv_lernwelt/course/migrations/0001_initial.py @@ -1,8 +1,8 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion -import django_jsonform.models.fields from django.db import migrations, models +import django.db.models.deletion +import vbv_lernwelt.course.models class Migration(migrations.Migration): @@ -10,194 +10,83 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("wagtailcore", "0083_workflowcontenttype"), + ('wagtailcore', '0083_workflowcontenttype'), ] operations = [ migrations.CreateModel( - name="CircleDocument", + name='CircleDocument', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("name", models.CharField(max_length=100)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('name', models.CharField(max_length=100)), ], ), migrations.CreateModel( - name="Course", + name='Course', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("title", models.CharField(max_length=255, verbose_name="Titel")), - ( - "category_name", - models.CharField( - default="Kategorie", - max_length=255, - verbose_name="Kategorie-Name", - ), - ), - ( - "slug", - models.SlugField( - allow_unicode=True, - blank=True, - max_length=255, - unique=True, - verbose_name="Slug", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=255, verbose_name='Titel')), + ('category_name', models.CharField(default='Kategorie', max_length=255, verbose_name='Kategorie-Name')), + ('slug', models.SlugField(allow_unicode=True, blank=True, max_length=255, unique=True, verbose_name='Slug')), ], options={ - "verbose_name": "Lehrgang", + 'verbose_name': 'Lehrgang', }, ), migrations.CreateModel( - name="CourseCategory", + name='CourseCategory', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "title", - models.CharField(blank=True, max_length=255, verbose_name="Titel"), - ), - ( - "general", - models.BooleanField(default=False, verbose_name="Allgemein"), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(blank=True, max_length=255, verbose_name='Titel')), + ('general', models.BooleanField(default=False, verbose_name='Allgemein')), ], ), migrations.CreateModel( - name="CourseCompletion", + name='CourseCompletion', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ("page_key", models.UUIDField()), - ("page_type", models.CharField(blank=True, default="", max_length=255)), - ("page_slug", models.CharField(blank=True, default="", max_length=255)), - ( - "completion_status", - models.CharField( - choices=[ - ("unknown", "unknown"), - ("success", "success"), - ("fail", "fail"), - ], - default="unknown", - max_length=255, - ), - ), - ("additional_json_data", models.JSONField(default=dict)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('page_type', models.CharField(blank=True, default='', max_length=255)), + ('completion_status', models.CharField(choices=[(vbv_lernwelt.course.models.CourseCompletionStatus['SUCCESS'], 'SUCCESS'), (vbv_lernwelt.course.models.CourseCompletionStatus['FAIL'], 'FAIL'), (vbv_lernwelt.course.models.CourseCompletionStatus['UNKNOWN'], 'UNKNOWN')], default='UNKNOWN', max_length=255)), + ('additional_json_data', models.JSONField(default=dict)), ], ), migrations.CreateModel( - name="CoursePage", + name='CoursePage', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), ], options={ - "verbose_name": "Lehrgang-Seite", + 'verbose_name': 'Lehrgang-Seite', }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="CourseSession", + name='CourseSession', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ("title", models.TextField()), - ("start_date", models.DateField(blank=True, null=True)), - ("end_date", models.DateField(blank=True, null=True)), - ( - "attendance_days", - django_jsonform.models.fields.JSONField(blank=True, default=list), - ), - ("assignment_details_list", models.JSONField(blank=True, default=list)), - ("additional_json_data", models.JSONField(blank=True, default=dict)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('title', models.TextField(unique=True)), + ('import_id', models.TextField(blank=True, default='')), + ('generation', models.TextField(blank=True, default='')), + ('region', models.TextField(blank=True, default='')), + ('group', models.TextField(blank=True, default='')), + ('start_date', models.DateField(blank=True, null=True)), + ('end_date', models.DateField(blank=True, null=True)), + ('additional_json_data', models.JSONField(blank=True, default=dict)), ], ), migrations.CreateModel( - name="CourseSessionUser", + name='CourseSessionUser', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ( - "role", - models.CharField( - choices=[ - ("MEMBER", "Teilnehmer"), - ("EXPERT", "Experte/Trainer"), - ("TUTOR", "Lernbegleitung"), - ], - default="MEMBER", - max_length=255, - ), - ), - ( - "course_session", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="course.coursesession", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('role', models.CharField(choices=[('MEMBER', 'Teilnehmer'), ('EXPERT', 'Experte/Trainer'), ('TUTOR', 'Lernbegleitung')], default='MEMBER', max_length=255)), + ('course_session', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.coursesession')), ], ), ] diff --git a/server/vbv_lernwelt/course/migrations/0002_initial.py b/server/vbv_lernwelt/course/migrations/0002_initial.py index a9d4b4fe..1f4a5fc8 100644 --- a/server/vbv_lernwelt/course/migrations/0002_initial.py +++ b/server/vbv_lernwelt/course/migrations/0002_initial.py @@ -1,8 +1,8 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion from django.conf import settings from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -10,96 +10,75 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("files", "0001_initial"), - ("course", "0001_initial"), + ('learnpath', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ("learnpath", "0001_initial"), + ('wagtailcore', '0083_workflowcontenttype'), + ('files', '0001_initial'), + ('course', '0001_initial'), ] operations = [ migrations.AddField( - model_name="coursesessionuser", - name="expert", - field=models.ManyToManyField( - blank=True, related_name="expert", to="learnpath.Circle" - ), + model_name='coursesessionuser', + name='expert', + field=models.ManyToManyField(blank=True, related_name='expert', to='learnpath.Circle'), ), migrations.AddField( - model_name="coursesessionuser", - name="user", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL - ), + model_name='coursesessionuser', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( - model_name="coursesession", - name="course", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to="course.course" - ), + model_name='coursesession', + name='course', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.course'), ), migrations.AddField( - model_name="coursepage", - name="course", - field=models.OneToOneField( - on_delete=django.db.models.deletion.PROTECT, to="course.course" - ), + model_name='coursepage', + name='course', + field=models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, to='course.course'), ), migrations.AddField( - model_name="coursecompletion", - name="course_session", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to="course.coursesession" - ), + model_name='coursecompletion', + name='course_session', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.coursesession'), ), migrations.AddField( - model_name="coursecompletion", - name="user", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL - ), + model_name='coursecompletion', + name='page', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='wagtailcore.page'), ), migrations.AddField( - model_name="coursecategory", - name="course", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to="course.course" - ), + model_name='coursecompletion', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( - model_name="circledocument", - name="course_session", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to="course.coursesession" - ), + model_name='coursecategory', + name='course', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.course'), ), migrations.AddField( - model_name="circledocument", - name="file", - field=models.OneToOneField( - on_delete=django.db.models.deletion.CASCADE, to="files.uploadfile" - ), + model_name='circledocument', + name='course_session', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.coursesession'), ), migrations.AddField( - model_name="circledocument", - name="learning_sequence", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="learnpath.learningsequence", - ), + model_name='circledocument', + name='file', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='files.uploadfile'), + ), + migrations.AddField( + model_name='circledocument', + name='learning_sequence', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='learnpath.learningsequence'), ), migrations.AddConstraint( - model_name="coursesessionuser", - constraint=models.UniqueConstraint( - fields=("course_session", "user"), - name="course_session_user_unique_course_session_user", - ), + model_name='coursesessionuser', + constraint=models.UniqueConstraint(fields=('course_session', 'user'), name='course_session_user_unique_course_session_user'), ), migrations.AddConstraint( - model_name="coursecompletion", - constraint=models.UniqueConstraint( - fields=("user", "page_key", "course_session"), - name="course_completion_unique_user_page_key", - ), + model_name='coursecompletion', + constraint=models.UniqueConstraint(fields=('user', 'page', 'course_session'), name='course_completion_unique_user_page_key'), ), ] diff --git a/server/vbv_lernwelt/course/migrations/0003_rename_attendance_days_coursesession_attendance_courses.py b/server/vbv_lernwelt/course/migrations/0003_rename_attendance_days_coursesession_attendance_courses.py deleted file mode 100644 index 3b013fb3..00000000 --- a/server/vbv_lernwelt/course/migrations/0003_rename_attendance_days_coursesession_attendance_courses.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-23 12:49 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0002_initial"), - ] - - operations = [ - migrations.RenameField( - model_name="coursesession", - old_name="attendance_days", - new_name="attendance_courses", - ), - ] diff --git a/server/vbv_lernwelt/course/migrations/0004_import_fields.py b/server/vbv_lernwelt/course/migrations/0004_import_fields.py deleted file mode 100644 index cc7f16c7..00000000 --- a/server/vbv_lernwelt/course/migrations/0004_import_fields.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-31 15:59 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0003_rename_attendance_days_coursesession_attendance_courses"), - ] - - operations = [ - migrations.AddField( - model_name="coursesession", - name="generation", - field=models.TextField(blank=True, default=""), - ), - migrations.AddField( - model_name="coursesession", - name="group", - field=models.TextField(blank=True, default=""), - ), - migrations.AddField( - model_name="coursesession", - name="import_id", - field=models.TextField(blank=True, default=""), - ), - migrations.AddField( - model_name="coursesession", - name="region", - field=models.TextField(blank=True, default=""), - ), - migrations.AlterField( - model_name="coursesession", - name="title", - field=models.TextField(unique=True), - ), - ] diff --git a/server/vbv_lernwelt/course/migrations/0005_remove_coursesession_attendance_courses.py b/server/vbv_lernwelt/course/migrations/0005_remove_coursesession_attendance_courses.py deleted file mode 100644 index f57fc644..00000000 --- a/server/vbv_lernwelt/course/migrations/0005_remove_coursesession_attendance_courses.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-14 14:02 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0004_import_fields"), - ] - - operations = [ - migrations.RemoveField( - model_name="coursesession", - name="attendance_courses", - ), - ] diff --git a/server/vbv_lernwelt/course/migrations/0006_auto_20230626_1724.py b/server/vbv_lernwelt/course/migrations/0006_auto_20230626_1724.py deleted file mode 100644 index c2135216..00000000 --- a/server/vbv_lernwelt/course/migrations/0006_auto_20230626_1724.py +++ /dev/null @@ -1,65 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-26 15:24 - -import django.db.models.deletion -from django.db import migrations, models - -import vbv_lernwelt.course.models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailcore", "0083_workflowcontenttype"), - ("course", "0005_remove_coursesession_attendance_courses"), - ] - - operations = [ - migrations.RemoveConstraint( - model_name="coursecompletion", - name="course_completion_unique_user_page_key", - ), - migrations.RemoveField( - model_name="coursecompletion", - name="page_key", - ), - migrations.RemoveField( - model_name="coursecompletion", - name="page_slug", - ), - migrations.AddField( - model_name="coursecompletion", - name="page", - field=models.ForeignKey( - default=1, - on_delete=django.db.models.deletion.CASCADE, - to="wagtailcore.page", - ), - preserve_default=False, - ), - migrations.AlterField( - model_name="coursecompletion", - name="completion_status", - field=models.CharField( - choices=[ - ( - vbv_lernwelt.course.models.CourseCompletionStatus["SUCCESS"], - "SUCCESS", - ), - (vbv_lernwelt.course.models.CourseCompletionStatus["FAIL"], "FAIL"), - ( - vbv_lernwelt.course.models.CourseCompletionStatus["UNKNOWN"], - "UNKNOWN", - ), - ], - default="UNKNOWN", - max_length=255, - ), - ), - migrations.AddConstraint( - model_name="coursecompletion", - constraint=models.UniqueConstraint( - fields=("user", "page", "course_session"), - name="course_completion_unique_user_page_key", - ), - ), - ] diff --git a/server/vbv_lernwelt/course/migrations/0006_remove_coursesession_assignment_details_list.py b/server/vbv_lernwelt/course/migrations/0006_remove_coursesession_assignment_details_list.py deleted file mode 100644 index b8c3106e..00000000 --- a/server/vbv_lernwelt/course/migrations/0006_remove_coursesession_assignment_details_list.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-21 14:19 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0005_remove_coursesession_attendance_courses"), - ] - - operations = [ - migrations.RemoveField( - model_name="coursesession", - name="assignment_details_list", - ), - ] diff --git a/server/vbv_lernwelt/course/migrations/0007_merge_20230711_1108.py b/server/vbv_lernwelt/course/migrations/0007_merge_20230711_1108.py deleted file mode 100644 index 1b1c6991..00000000 --- a/server/vbv_lernwelt/course/migrations/0007_merge_20230711_1108.py +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-11 09:08 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0006_auto_20230626_1724"), - ("course", "0006_remove_coursesession_assignment_details_list"), - ] - - operations = [] diff --git a/server/vbv_lernwelt/course_session/migrations/0001_initial.py b/server/vbv_lernwelt/course_session/migrations/0001_initial.py index 6d0ab3fd..334cb365 100644 --- a/server/vbv_lernwelt/course_session/migrations/0001_initial.py +++ b/server/vbv_lernwelt/course_session/migrations/0001_initial.py @@ -1,7 +1,8 @@ -# Generated by Django 3.2.13 on 2023-06-14 15:01 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion from django.db import migrations, models +import django.db.models.deletion +import django_jsonform.models.fields class Migration(migrations.Migration): @@ -9,48 +10,24 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("learnpath", "0007_learningunit_title_hidden"), - ("course", "0005_remove_coursesession_attendance_courses"), - ("duedate", "0002_auto_20230614_1500"), + ('course', '0001_initial'), ] operations = [ migrations.CreateModel( - name="CourseSessionAttendanceCourse", + name='CourseSessionAssignment', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("location", models.CharField(blank=True, default="", max_length=255)), - ("trainer", models.CharField(blank=True, default="", max_length=255)), - ( - "course_session", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="course.coursesession", - ), - ), - ( - "due_date", - models.OneToOneField( - on_delete=django.db.models.deletion.CASCADE, - related_name="attendance_course_due_date", - to="duedate.duedate", - ), - ), - ( - "learning_content", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="learnpath.learningcontentattendancecourse", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ], + ), + migrations.CreateModel( + name='CourseSessionAttendanceCourse', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('location', models.CharField(blank=True, default='', max_length=255)), + ('trainer', models.CharField(blank=True, default='', max_length=255)), + ('attendance_user_list', django_jsonform.models.fields.JSONField(default=list)), + ('course_session', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.coursesession')), ], ), ] diff --git a/server/vbv_lernwelt/course_session/migrations/0002_coursesessionassignment.py b/server/vbv_lernwelt/course_session/migrations/0002_coursesessionassignment.py deleted file mode 100644 index 43826084..00000000 --- a/server/vbv_lernwelt/course_session/migrations/0002_coursesessionassignment.py +++ /dev/null @@ -1,61 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-21 14:19 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0006_remove_coursesession_assignment_details_list"), - ("learnpath", "0007_learningunit_title_hidden"), - ("duedate", "0003_alter_duedate_course_session"), - ("course_session", "0001_initial"), - ] - - operations = [ - migrations.CreateModel( - name="CourseSessionAssignment", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "course_session", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="course.coursesession", - ), - ), - ( - "evaluation_deadline", - models.OneToOneField( - on_delete=django.db.models.deletion.CASCADE, - related_name="assignment_evaluation_deadline", - to="duedate.duedate", - ), - ), - ( - "learning_content", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - to="learnpath.learningcontentassignment", - ), - ), - ( - "submission_deadline", - models.OneToOneField( - on_delete=django.db.models.deletion.CASCADE, - related_name="assignment_submission_deadline", - to="duedate.duedate", - ), - ), - ], - ), - ] diff --git a/server/vbv_lernwelt/course_session/migrations/0002_coursesessionattendancecourse_attendance_user_list.py b/server/vbv_lernwelt/course_session/migrations/0002_coursesessionattendancecourse_attendance_user_list.py deleted file mode 100644 index 0fe26463..00000000 --- a/server/vbv_lernwelt/course_session/migrations/0002_coursesessionattendancecourse_attendance_user_list.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-23 15:17 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("course_session", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="coursesessionattendancecourse", - name="attendance_user_list", - field=models.JSONField(default=list), - ), - ] diff --git a/server/vbv_lernwelt/course_session/migrations/0002_coursesessionattendancecourse_due_date.py b/server/vbv_lernwelt/course_session/migrations/0002_coursesessionattendancecourse_due_date.py new file mode 100644 index 00000000..c5233e0e --- /dev/null +++ b/server/vbv_lernwelt/course_session/migrations/0002_coursesessionattendancecourse_due_date.py @@ -0,0 +1,22 @@ +# Generated by Django 3.2.13 on 2023-07-14 12:15 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('duedate', '0001_initial'), + ('course_session', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='coursesessionattendancecourse', + name='due_date', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='attendance_course_due_date', to='duedate.duedate'), + ), + ] diff --git a/server/vbv_lernwelt/course_session/migrations/0003_auto_20230628_1321.py b/server/vbv_lernwelt/course_session/migrations/0003_auto_20230628_1321.py deleted file mode 100644 index 8ea1d556..00000000 --- a/server/vbv_lernwelt/course_session/migrations/0003_auto_20230628_1321.py +++ /dev/null @@ -1,35 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-28 11:21 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("duedate", "0006_auto_20230627_1553"), - ("course_session", "0002_coursesessionassignment"), - ] - - operations = [ - migrations.AlterField( - model_name="coursesessionassignment", - name="evaluation_deadline", - field=models.OneToOneField( - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="assignment_evaluation_deadline", - to="duedate.duedate", - ), - ), - migrations.AlterField( - model_name="coursesessionassignment", - name="submission_deadline", - field=models.OneToOneField( - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="assignment_submission_deadline", - to="duedate.duedate", - ), - ), - ] diff --git a/server/vbv_lernwelt/course_session/migrations/0003_initial.py b/server/vbv_lernwelt/course_session/migrations/0003_initial.py new file mode 100644 index 00000000..b9fa76f0 --- /dev/null +++ b/server/vbv_lernwelt/course_session/migrations/0003_initial.py @@ -0,0 +1,44 @@ +# Generated by Django 3.2.13 on 2023-07-14 12:15 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('learnpath', '0001_initial'), + ('duedate', '0001_initial'), + ('course_session', '0002_coursesessionattendancecourse_due_date'), + ('course', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='coursesessionattendancecourse', + name='learning_content', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='learnpath.learningcontentattendancecourse'), + ), + migrations.AddField( + model_name='coursesessionassignment', + name='course_session', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='course.coursesession'), + ), + migrations.AddField( + model_name='coursesessionassignment', + name='evaluation_deadline', + field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='assignment_evaluation_deadline', to='duedate.duedate'), + ), + migrations.AddField( + model_name='coursesessionassignment', + name='learning_content', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='learnpath.learningcontentassignment'), + ), + migrations.AddField( + model_name='coursesessionassignment', + name='submission_deadline', + field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='assignment_submission_deadline', to='duedate.duedate'), + ), + ] diff --git a/server/vbv_lernwelt/course_session/migrations/0004_merge_20230711_1108.py b/server/vbv_lernwelt/course_session/migrations/0004_merge_20230711_1108.py deleted file mode 100644 index f607ebe8..00000000 --- a/server/vbv_lernwelt/course_session/migrations/0004_merge_20230711_1108.py +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-11 09:08 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("course_session", "0002_coursesessionattendancecourse_attendance_user_list"), - ("course_session", "0003_auto_20230628_1321"), - ] - - operations = [] diff --git a/server/vbv_lernwelt/course_session/migrations/0005_alter_coursesessionattendancecourse_attendance_user_list.py b/server/vbv_lernwelt/course_session/migrations/0005_alter_coursesessionattendancecourse_attendance_user_list.py deleted file mode 100644 index 1631e1cf..00000000 --- a/server/vbv_lernwelt/course_session/migrations/0005_alter_coursesessionattendancecourse_attendance_user_list.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-12 14:49 - -import django_jsonform.models.fields -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("course_session", "0004_merge_20230711_1108"), - ] - - operations = [ - migrations.AlterField( - model_name="coursesessionattendancecourse", - name="attendance_user_list", - field=django_jsonform.models.fields.JSONField(default=list), - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0001_initial.py b/server/vbv_lernwelt/duedate/migrations/0001_initial.py index d433175d..28c65e3e 100644 --- a/server/vbv_lernwelt/duedate/migrations/0001_initial.py +++ b/server/vbv_lernwelt/duedate/migrations/0001_initial.py @@ -1,7 +1,7 @@ -# Generated by Django 3.2.13 on 2023-06-14 09:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -9,40 +9,23 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("course", "0004_import_fields"), + ('course', '0001_initial'), + ('wagtailcore', '0083_workflowcontenttype'), ] operations = [ migrations.CreateModel( - name="DueDate", + name='DueDate', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("start", models.DateTimeField(db_index=True, null=True)), - ("end", models.DateTimeField(db_index=True, null=True)), - ("title", models.CharField(default="Termin", max_length=1024)), - ("url", models.URLField(blank=True, max_length=1024, null=True)), - ( - "learning_content_id", - models.CharField(blank=True, max_length=255, null=True), - ), - ( - "course_session", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="events", - to="course.coursesession", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start', models.DateTimeField(db_index=True, null=True)), + ('end', models.DateTimeField(blank=True, db_index=True, null=True)), + ('title', models.CharField(default='', max_length=1024)), + ('learning_content_description', models.CharField(blank=True, default='', max_length=1024)), + ('description', models.CharField(blank=True, default='', max_length=1024)), + ('url', models.CharField(blank=True, default='', max_length=1024)), + ('course_session', models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, to='course.coursesession')), + ('page', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='wagtailcore.page')), ], ), ] diff --git a/server/vbv_lernwelt/duedate/migrations/0002_auto_20230614_1500.py b/server/vbv_lernwelt/duedate/migrations/0002_auto_20230614_1500.py deleted file mode 100644 index c567593e..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0002_auto_20230614_1500.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-14 13:00 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailcore", "0083_workflowcontenttype"), - ("duedate", "0001_initial"), - ] - - operations = [ - migrations.RemoveField( - model_name="duedate", - name="learning_content_id", - ), - migrations.AddField( - model_name="duedate", - name="page", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to="wagtailcore.page", - ), - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0003_alter_duedate_course_session.py b/server/vbv_lernwelt/duedate/migrations/0003_alter_duedate_course_session.py deleted file mode 100644 index 070d58c7..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0003_alter_duedate_course_session.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-21 14:19 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0006_remove_coursesession_assignment_details_list"), - ("duedate", "0002_auto_20230614_1500"), - ] - - operations = [ - migrations.AlterField( - model_name="duedate", - name="course_session", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="duedates", - to="course.coursesession", - ), - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0004_auto_20230621_1703.py b/server/vbv_lernwelt/duedate/migrations/0004_auto_20230621_1703.py deleted file mode 100644 index 91b6d2f2..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0004_auto_20230621_1703.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-21 15:03 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("contenttypes", "0002_remove_content_type_name"), - ("duedate", "0003_alter_duedate_course_session"), - ] - - operations = [ - migrations.AddField( - model_name="duedate", - name="content_type", - field=models.ForeignKey( - null=True, - on_delete=django.db.models.deletion.CASCADE, - to="contenttypes.contenttype", - ), - ), - migrations.AddField( - model_name="duedate", - name="object_id", - field=models.PositiveIntegerField(null=True), - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0005_auto_20230622_1138.py b/server/vbv_lernwelt/duedate/migrations/0005_auto_20230622_1138.py deleted file mode 100644 index 9ec6e37e..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0005_auto_20230622_1138.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-22 09:38 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("duedate", "0004_auto_20230621_1703"), - ] - - operations = [ - migrations.RemoveField( - model_name="duedate", - name="content_type", - ), - migrations.RemoveField( - model_name="duedate", - name="object_id", - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0006_auto_20230627_1553.py b/server/vbv_lernwelt/duedate/migrations/0006_auto_20230627_1553.py deleted file mode 100644 index e412294d..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0006_auto_20230627_1553.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-27 13:53 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("duedate", "0005_auto_20230622_1138"), - ] - - operations = [ - migrations.AddField( - model_name="duedate", - name="description", - field=models.CharField(default="Abgabetermin", max_length=1024), - ), - migrations.AddField( - model_name="duedate", - name="learning_content_description", - field=models.CharField(default="GeleiteteFallarbeit", max_length=1024), - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0007_auto_20230703_1741.py b/server/vbv_lernwelt/duedate/migrations/0007_auto_20230703_1741.py deleted file mode 100644 index 05c6dace..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0007_auto_20230703_1741.py +++ /dev/null @@ -1,42 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-03 15:41 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0006_remove_coursesession_assignment_details_list"), - ("duedate", "0006_auto_20230627_1553"), - ] - - operations = [ - migrations.AlterField( - model_name="duedate", - name="course_session", - field=models.ForeignKey( - blank=True, - default=1, - on_delete=django.db.models.deletion.CASCADE, - related_name="duedates", - to="course.coursesession", - ), - preserve_default=False, - ), - migrations.AlterField( - model_name="duedate", - name="description", - field=models.CharField(default="", max_length=1024), - ), - migrations.AlterField( - model_name="duedate", - name="learning_content_description", - field=models.CharField(default="", max_length=1024), - ), - migrations.AlterField( - model_name="duedate", - name="url", - field=models.URLField(blank=True, default="", max_length=1024), - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0008_auto_20230711_1116.py b/server/vbv_lernwelt/duedate/migrations/0008_auto_20230711_1116.py deleted file mode 100644 index 006f14b7..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0008_auto_20230711_1116.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-11 09:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("duedate", "0007_auto_20230703_1741"), - ] - - operations = [ - migrations.AlterField( - model_name="duedate", - name="start", - field=models.DateTimeField(blank=True, db_index=True, null=True), - ), - migrations.AlterField( - model_name="duedate", - name="url", - field=models.CharField(blank=True, default="", max_length=1024), - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0009_alter_duedate_course_session.py b/server/vbv_lernwelt/duedate/migrations/0009_alter_duedate_course_session.py deleted file mode 100644 index 4b149840..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0009_alter_duedate_course_session.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-12 07:05 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("course", "0006_remove_coursesession_assignment_details_list"), - ("duedate", "0008_auto_20230711_1116"), - ] - - operations = [ - migrations.AlterField( - model_name="duedate", - name="course_session", - field=models.ForeignKey( - blank=True, - on_delete=django.db.models.deletion.CASCADE, - to="course.coursesession", - ), - ), - ] diff --git a/server/vbv_lernwelt/duedate/migrations/0010_auto_20230712_0920.py b/server/vbv_lernwelt/duedate/migrations/0010_auto_20230712_0920.py deleted file mode 100644 index a54f8713..00000000 --- a/server/vbv_lernwelt/duedate/migrations/0010_auto_20230712_0920.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-12 07:20 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("duedate", "0009_alter_duedate_course_session"), - ] - - operations = [ - migrations.AlterField( - model_name="duedate", - name="description", - field=models.CharField(blank=True, default="", max_length=1024), - ), - migrations.AlterField( - model_name="duedate", - name="end", - field=models.DateTimeField(blank=True, db_index=True, null=True), - ), - migrations.AlterField( - model_name="duedate", - name="learning_content_description", - field=models.CharField(blank=True, default="", max_length=1024), - ), - migrations.AlterField( - model_name="duedate", - name="start", - field=models.DateTimeField(db_index=True, null=True), - ), - migrations.AlterField( - model_name="duedate", - name="title", - field=models.CharField(default="", max_length=1024), - ), - ] diff --git a/server/vbv_lernwelt/feedback/migrations/0001_initial.py b/server/vbv_lernwelt/feedback/migrations/0001_initial.py index 469cb309..43f944ee 100644 --- a/server/vbv_lernwelt/feedback/migrations/0001_initial.py +++ b/server/vbv_lernwelt/feedback/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 from django.db import migrations, models @@ -7,23 +7,16 @@ class Migration(migrations.Migration): initial = True - dependencies = [] + dependencies = [ + ] operations = [ migrations.CreateModel( - name="FeedbackResponse", + name='FeedbackResponse', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("data", models.JSONField(default=dict)), - ("created_at", models.DateTimeField(auto_now_add=True)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.JSONField(default=dict)), + ('created_at', models.DateTimeField(auto_now_add=True)), ], ), ] diff --git a/server/vbv_lernwelt/feedback/migrations/0002_initial.py b/server/vbv_lernwelt/feedback/migrations/0002_initial.py index b10b9aed..bb30f97c 100644 --- a/server/vbv_lernwelt/feedback/migrations/0002_initial.py +++ b/server/vbv_lernwelt/feedback/migrations/0002_initial.py @@ -1,7 +1,7 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -9,24 +9,20 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("course", "0001_initial"), - ("learnpath", "0001_initial"), - ("feedback", "0001_initial"), + ('learnpath', '0001_initial'), + ('feedback', '0001_initial'), + ('course', '0001_initial'), ] operations = [ migrations.AddField( - model_name="feedbackresponse", - name="circle", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, to="learnpath.circle" - ), + model_name='feedbackresponse', + name='circle', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='learnpath.circle'), ), migrations.AddField( - model_name="feedbackresponse", - name="course_session", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, to="course.coursesession" - ), + model_name='feedbackresponse', + name='course_session', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='course.coursesession'), ), ] diff --git a/server/vbv_lernwelt/files/migrations/0001_initial.py b/server/vbv_lernwelt/files/migrations/0001_initial.py index d40af972..a965d023 100644 --- a/server/vbv_lernwelt/files/migrations/0001_initial.py +++ b/server/vbv_lernwelt/files/migrations/0001_initial.py @@ -1,9 +1,8 @@ -# Generated by Django 3.2.13 on 2023-05-11 20:06 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion from django.conf import settings from django.db import migrations, models - +import django.db.models.deletion import vbv_lernwelt.files.utils @@ -17,37 +16,15 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( - name="UploadFile", + name='UploadFile', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "file", - models.FileField( - blank=True, - null=True, - upload_to=vbv_lernwelt.files.utils.file_generate_upload_path, - ), - ), - ("original_file_name", models.TextField()), - ("file_name", models.CharField(max_length=255, unique=True)), - ("file_type", models.CharField(max_length=255)), - ("upload_finished_at", models.DateTimeField(blank=True, null=True)), - ( - "uploaded_by", - models.ForeignKey( - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to=settings.AUTH_USER_MODEL, - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file', models.FileField(blank=True, null=True, upload_to=vbv_lernwelt.files.utils.file_generate_upload_path)), + ('original_file_name', models.TextField()), + ('file_name', models.CharField(max_length=255, unique=True)), + ('file_type', models.CharField(max_length=255)), + ('upload_finished_at', models.DateTimeField(blank=True, null=True)), + ('uploaded_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), ], ), ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0001_initial.py b/server/vbv_lernwelt/learnpath/migrations/0001_initial.py index bd16996c..a41cfb3d 100644 --- a/server/vbv_lernwelt/learnpath/migrations/0001_initial.py +++ b/server/vbv_lernwelt/learnpath/migrations/0001_initial.py @@ -1,8 +1,9 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 -import django.db.models.deletion -import wagtail.fields from django.db import migrations, models +import django.db.models.deletion +import wagtail.blocks +import wagtail.fields class Migration(migrations.Migration): @@ -10,338 +11,221 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("course", "0001_initial"), - ("assignment", "0003_initial"), - ("wagtailcore", "0083_workflowcontenttype"), + ('course', '0001_initial'), + ('assignment', '0003_initial'), + ('wagtailcore', '0083_workflowcontenttype'), ] operations = [ migrations.CreateModel( - name="Circle", + name='Circle', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("description", models.TextField(blank=True, default="")), - ("goals", wagtail.fields.RichTextField()), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('description', models.TextField(blank=True, default='')), + ('goals', wagtail.fields.RichTextField()), ], options={ - "verbose_name": "Circle", + 'verbose_name': 'Circle', }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentAttendanceDay", + name='LearningContentAttendanceCourse', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=False)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentFeedback", + name='LearningContentDocumentList', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=True)), + ('documents', wagtail.fields.StreamField([('document', wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('description', wagtail.blocks.TextBlock(default='', required=False)), ('icon_url', wagtail.blocks.TextBlock(default='', required=False)), ('link_display_text', wagtail.blocks.CharBlock(default='Link öffnen', max_length=255)), ('url', wagtail.blocks.TextBlock(default='', required=False)), ('open_window', wagtail.blocks.BooleanBlock(default=False))]))], blank=True, use_json_field=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentLearningModule", + name='LearningContentFeedback', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentMediaLibrary", + name='LearningContentLearningModule', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentPlaceholder", + name='LearningContentMediaLibrary', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentRichText", + name='LearningContentPlaceholder', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentTest", + name='LearningContentRichText', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('text', wagtail.fields.RichTextField(blank=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentVideo", + name='LearningContentTest', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=False)), + ('checkbox_text', models.TextField(blank=True)), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningPath", + name='LearningContentVideo', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=True)), ], options={ - "verbose_name": "Learning Path", + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningSequence", + name='LearningPath', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("icon", models.CharField(default="it-icon-ls-start", max_length=255)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), ], options={ - "verbose_name": "Learning Sequence", + 'verbose_name': 'Learning Path', }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="Topic", + name='LearningSequence', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("is_visible", models.BooleanField(default=True)), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('icon', models.CharField(default='it-icon-ls-start', max_length=255)), ], options={ - "verbose_name": "Topic", + 'verbose_name': 'Learning Sequence', }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningUnit", + name='Topic', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ( - "course_category", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to="course.coursecategory", - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('is_visible', models.BooleanField(default=True)), ], options={ - "verbose_name": "Learning Unit", + 'verbose_name': 'Topic', }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LearningContentAssignment", + name='LearningUnit', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), - ( - "content_assignment", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="+", - to="assignment.assignment", - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('title_hidden', models.BooleanField(default=False)), + ('course_category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='course.coursecategory')), ], options={ - "abstract": False, + 'verbose_name': 'Learning Unit', }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='LearningContentAssignment', + fields=[ + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('minutes', models.PositiveIntegerField(default=15)), + ('description', wagtail.fields.RichTextField(blank=True)), + ('content_url', models.TextField(blank=True)), + ('has_course_completion_status', models.BooleanField(default=True)), + ('can_user_self_toggle_course_completion', models.BooleanField(default=False)), + ('assignment_type', models.CharField(choices=[('CASEWORK', 'CASEWORK'), ('PREP_ASSIGNMENT', 'PREP_ASSIGNMENT'), ('REFLECTION', 'REFLECTION')], default='CASEWORK', max_length=50)), + ('content_assignment', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='assignment.assignment')), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), ), ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0002_learningcontentrichtext_text.py b/server/vbv_lernwelt/learnpath/migrations/0002_learningcontentrichtext_text.py deleted file mode 100644 index b4f26255..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0002_learningcontentrichtext_text.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-17 09:00 - -import wagtail.fields -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("learnpath", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="learningcontentrichtext", - name="text", - field=wagtail.fields.RichTextField(blank=True), - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0003_rename_learningcontentattendanceday_learningcontentattendancecourse.py b/server/vbv_lernwelt/learnpath/migrations/0003_rename_learningcontentattendanceday_learningcontentattendancecourse.py deleted file mode 100644 index 7c0b9f61..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0003_rename_learningcontentattendanceday_learningcontentattendancecourse.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-23 12:49 - -from django.conf import settings -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailcore", "0083_workflowcontenttype"), - ("wagtailforms", "0005_alter_formsubmission_form_data"), - ("wagtailredirects", "0008_add_verbose_name_plural"), - ("contenttypes", "0002_remove_content_type_name"), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ("learnpath", "0002_learningcontentrichtext_text"), - ] - - operations = [ - migrations.RenameModel( - old_name="LearningContentAttendanceDay", - new_name="LearningContentAttendanceCourse", - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0004_learningcontentassignment_assignment_type.py b/server/vbv_lernwelt/learnpath/migrations/0004_learningcontentassignment_assignment_type.py deleted file mode 100644 index 5525b9a3..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0004_learningcontentassignment_assignment_type.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-19 15:21 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ( - "learnpath", - "0003_rename_learningcontentattendanceday_learningcontentattendancecourse", - ), - ] - - operations = [ - migrations.AddField( - model_name="learningcontentassignment", - name="assignment_type", - field=models.CharField( - choices=[ - ("CASEWORK", "CASEWORK"), - ("PREP_ASSIGNMENT", "PREP_ASSIGNMENT"), - ("REFLECTION", "REFLECTION"), - ], - default="CASEWORK", - max_length=50, - ), - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0005_learningcontentdocumentlist.py b/server/vbv_lernwelt/learnpath/migrations/0005_learningcontentdocumentlist.py deleted file mode 100644 index 406cfc8c..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0005_learningcontentdocumentlist.py +++ /dev/null @@ -1,85 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-26 10:34 - -import django.db.models.deletion -import wagtail.blocks -import wagtail.fields -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("wagtailcore", "0083_workflowcontenttype"), - ("learnpath", "0004_learningcontentassignment_assignment_type"), - ] - - operations = [ - migrations.CreateModel( - name="LearningContentDocumentList", - fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("minutes", models.PositiveIntegerField(default=15)), - ("description", wagtail.fields.RichTextField(blank=True)), - ("content_url", models.TextField(blank=True)), - ( - "documents", - wagtail.fields.StreamField( - [ - ( - "document", - wagtail.blocks.StructBlock( - [ - ("title", wagtail.blocks.TextBlock()), - ( - "description", - wagtail.blocks.TextBlock( - default="", required=False - ), - ), - ( - "icon_url", - wagtail.blocks.TextBlock( - default="", required=False - ), - ), - ( - "link_display_text", - wagtail.blocks.CharBlock( - default="Link öffnen", max_length=255 - ), - ), - ( - "url", - wagtail.blocks.TextBlock( - default="", required=False - ), - ), - ( - "open_window", - wagtail.blocks.BooleanBlock(default=False), - ), - ] - ), - ) - ], - blank=True, - use_json_field=True, - ), - ), - ], - options={ - "abstract": False, - }, - bases=("wagtailcore.page",), - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0006_learningcontenttest_checkbox_text.py b/server/vbv_lernwelt/learnpath/migrations/0006_learningcontenttest_checkbox_text.py deleted file mode 100644 index 545416ae..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0006_learningcontenttest_checkbox_text.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-26 14:31 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("learnpath", "0005_learningcontentdocumentlist"), - ] - - operations = [ - migrations.AddField( - model_name="learningcontenttest", - name="checkbox_text", - field=models.TextField(blank=True), - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0007_learningunit_title_hidden.py b/server/vbv_lernwelt/learnpath/migrations/0007_learningunit_title_hidden.py deleted file mode 100644 index e68e39d5..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0007_learningunit_title_hidden.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.2.13 on 2023-05-30 09:18 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("learnpath", "0006_learningcontenttest_checkbox_text"), - ] - - operations = [ - migrations.AddField( - model_name="learningunit", - name="title_hidden", - field=models.BooleanField(default=False), - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0008_alter_learningcontentassignment_content_assignment.py b/server/vbv_lernwelt/learnpath/migrations/0008_alter_learningcontentassignment_content_assignment.py deleted file mode 100644 index cd1300ed..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0008_alter_learningcontentassignment_content_assignment.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-28 11:21 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("assignment", "0004_assignment_assignment_type"), - ("learnpath", "0007_learningunit_title_hidden"), - ] - - operations = [ - migrations.AlterField( - model_name="learningcontentassignment", - name="content_assignment", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, to="assignment.assignment" - ), - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0008_auto_20230626_1747.py b/server/vbv_lernwelt/learnpath/migrations/0008_auto_20230626_1747.py deleted file mode 100644 index ee442287..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0008_auto_20230626_1747.py +++ /dev/null @@ -1,112 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-26 15:47 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ("learnpath", "0007_learningunit_title_hidden"), - ] - - operations = [ - migrations.AddField( - model_name="learningcontentassignment", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name="learningcontentassignment", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentattendancecourse", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name="learningcontentattendancecourse", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentdocumentlist", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentdocumentlist", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentfeedback", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentfeedback", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentlearningmodule", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentlearningmodule", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentmedialibrary", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentmedialibrary", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentplaceholder", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentplaceholder", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentrichtext", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentrichtext", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontenttest", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=False), - ), - migrations.AddField( - model_name="learningcontenttest", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentvideo", - name="can_user_self_toggle_course_completion", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="learningcontentvideo", - name="has_course_completion_status", - field=models.BooleanField(default=True), - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0009_alter_learningcontentassignment_content_assignment.py b/server/vbv_lernwelt/learnpath/migrations/0009_alter_learningcontentassignment_content_assignment.py deleted file mode 100644 index 076c78c6..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0009_alter_learningcontentassignment_content_assignment.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 3.2.13 on 2023-06-26 16:30 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("assignment", "0004_assignment_assignment_type"), - ("learnpath", "0008_auto_20230626_1747"), - ] - - operations = [ - migrations.AlterField( - model_name="learningcontentassignment", - name="content_assignment", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, to="assignment.assignment" - ), - ), - ] diff --git a/server/vbv_lernwelt/learnpath/migrations/0010_merge_20230711_1108.py b/server/vbv_lernwelt/learnpath/migrations/0010_merge_20230711_1108.py deleted file mode 100644 index 0b85ed9c..00000000 --- a/server/vbv_lernwelt/learnpath/migrations/0010_merge_20230711_1108.py +++ /dev/null @@ -1,13 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-11 09:08 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("learnpath", "0008_alter_learningcontentassignment_content_assignment"), - ("learnpath", "0009_alter_learningcontentassignment_content_assignment"), - ] - - operations = [] diff --git a/server/vbv_lernwelt/media_library/migrations/0001_initial.py b/server/vbv_lernwelt/media_library/migrations/0001_initial.py index 5277c312..bcc62f40 100644 --- a/server/vbv_lernwelt/media_library/migrations/0001_initial.py +++ b/server/vbv_lernwelt/media_library/migrations/0001_initial.py @@ -1,13 +1,13 @@ -# Generated by Django 3.2.13 on 2023-05-12 15:29 +# Generated by Django 3.2.13 on 2023-07-14 12:15 +from django.conf import settings +from django.db import migrations, models import django.db.models.deletion import taggit.managers import wagtail.blocks import wagtail.fields import wagtail.models.collections import wagtail.search.index -from django.conf import settings -from django.db import migrations, models class Migration(migrations.Migration): @@ -15,357 +15,62 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("taggit", "0004_alter_taggeditem_content_type_alter_taggeditem_tag"), - ("course", "0002_initial"), + ('wagtailcore', '0083_workflowcontenttype'), + ('course', '0002_initial'), + ('taggit', '0004_alter_taggeditem_content_type_alter_taggeditem_tag'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ("wagtailcore", "0083_workflowcontenttype"), ] operations = [ migrations.CreateModel( - name="MediaLibraryPage", + name='MediaLibraryPage', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="MediaCategoryPage", + name='MediaCategoryPage', fields=[ - ( - "page_ptr", - models.OneToOneField( - auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, - primary_key=True, - serialize=False, - to="wagtailcore.page", - ), - ), - ("introduction_text", models.TextField(default="")), - ( - "description_title", - models.TextField( - default="Das erwartet dich in diesem Handlungsfeld" - ), - ), - ("description_text", models.TextField(default="")), - ( - "items", - wagtail.fields.StreamField( - [("item", wagtail.blocks.TextBlock())], use_json_field=True - ), - ), - ( - "overview_icon", - models.CharField(default="icon-hf-fahrzeug", max_length=255), - ), - ( - "detail_image", - models.CharField(default="image-hf-fahrzeug", max_length=255), - ), - ( - "body", - wagtail.fields.StreamField( - [ - ( - "content_collection", - wagtail.blocks.StructBlock( - [ - ("title", wagtail.blocks.TextBlock()), - ( - "description", - wagtail.blocks.TextBlock( - default="", required=False - ), - ), - ( - "contents", - wagtail.blocks.StreamBlock( - [ - ( - "learn_media", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.TextBlock(), - ), - ( - "description", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "icon_url", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "link_display_text", - wagtail.blocks.CharBlock( - default="Link öffnen", - max_length=255, - ), - ), - ( - "url", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "open_window", - wagtail.blocks.BooleanBlock( - default=False - ), - ), - ] - ), - ), - ( - "external_link", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.TextBlock(), - ), - ( - "description", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "icon_url", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "link_display_text", - wagtail.blocks.CharBlock( - default="Link öffnen", - max_length=255, - ), - ), - ( - "url", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "open_window", - wagtail.blocks.BooleanBlock( - default=False - ), - ), - ] - ), - ), - ( - "internal_link", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.TextBlock(), - ), - ( - "description", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "icon_url", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "link_display_text", - wagtail.blocks.CharBlock( - default="Link öffnen", - max_length=255, - ), - ), - ( - "url", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "open_window", - wagtail.blocks.BooleanBlock( - default=False - ), - ), - ] - ), - ), - ( - "relative_link", - wagtail.blocks.StructBlock( - [ - ( - "title", - wagtail.blocks.TextBlock(), - ), - ( - "description", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "icon_url", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "link_display_text", - wagtail.blocks.CharBlock( - default="Link öffnen", - max_length=255, - ), - ), - ( - "url", - wagtail.blocks.TextBlock( - default="", - required=False, - ), - ), - ( - "open_window", - wagtail.blocks.BooleanBlock( - default=False - ), - ), - ] - ), - ), - ] - ), - ), - ] - ), - ) - ], - null=True, - use_json_field=True, - ), - ), - ( - "course_category", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to="course.coursecategory", - ), - ), + ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('introduction_text', models.TextField(default='')), + ('description_title', models.TextField(default='Das erwartet dich in diesem Handlungsfeld')), + ('description_text', models.TextField(default='')), + ('items', wagtail.fields.StreamField([('item', wagtail.blocks.TextBlock())], use_json_field=True)), + ('overview_icon', models.CharField(default='icon-hf-fahrzeug', max_length=255)), + ('detail_image', models.CharField(default='image-hf-fahrzeug', max_length=255)), + ('body', wagtail.fields.StreamField([('content_collection', wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('description', wagtail.blocks.TextBlock(default='', required=False)), ('contents', wagtail.blocks.StreamBlock([('learn_media', wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('description', wagtail.blocks.TextBlock(default='', required=False)), ('icon_url', wagtail.blocks.TextBlock(default='', required=False)), ('link_display_text', wagtail.blocks.CharBlock(default='Link öffnen', max_length=255)), ('url', wagtail.blocks.TextBlock(default='', required=False)), ('open_window', wagtail.blocks.BooleanBlock(default=False))])), ('external_link', wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('description', wagtail.blocks.TextBlock(default='', required=False)), ('icon_url', wagtail.blocks.TextBlock(default='', required=False)), ('link_display_text', wagtail.blocks.CharBlock(default='Link öffnen', max_length=255)), ('url', wagtail.blocks.TextBlock(default='', required=False)), ('open_window', wagtail.blocks.BooleanBlock(default=False))])), ('internal_link', wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('description', wagtail.blocks.TextBlock(default='', required=False)), ('icon_url', wagtail.blocks.TextBlock(default='', required=False)), ('link_display_text', wagtail.blocks.CharBlock(default='Link öffnen', max_length=255)), ('url', wagtail.blocks.TextBlock(default='', required=False)), ('open_window', wagtail.blocks.BooleanBlock(default=False))])), ('relative_link', wagtail.blocks.StructBlock([('title', wagtail.blocks.TextBlock()), ('description', wagtail.blocks.TextBlock(default='', required=False)), ('icon_url', wagtail.blocks.TextBlock(default='', required=False)), ('link_display_text', wagtail.blocks.CharBlock(default='Link öffnen', max_length=255)), ('url', wagtail.blocks.TextBlock(default='', required=False)), ('open_window', wagtail.blocks.BooleanBlock(default=False))]))]))]))], null=True, use_json_field=True)), + ('course_category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='course.coursecategory')), ], options={ - "abstract": False, + 'abstract': False, }, - bases=("wagtailcore.page",), + bases=('wagtailcore.page',), ), migrations.CreateModel( - name="LibraryDocument", + name='LibraryDocument', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("title", models.CharField(max_length=255, verbose_name="title")), - ("file", models.FileField(upload_to="documents", verbose_name="file")), - ( - "created_at", - models.DateTimeField(auto_now_add=True, verbose_name="created at"), - ), - ("file_size", models.PositiveIntegerField(editable=False, null=True)), - ( - "file_hash", - models.CharField(blank=True, editable=False, max_length=40), - ), - ("display_text", models.CharField(default="", max_length=1024)), - ("description", models.TextField(default="")), - ("link_display_text", models.CharField(default="", max_length=1024)), - ("thumbnail", models.URLField()), - ( - "collection", - models.ForeignKey( - default=wagtail.models.collections.get_root_collection_id, - on_delete=django.db.models.deletion.CASCADE, - related_name="+", - to="wagtailcore.collection", - verbose_name="collection", - ), - ), - ( - "tags", - taggit.managers.TaggableManager( - blank=True, - help_text=None, - through="taggit.TaggedItem", - to="taggit.Tag", - verbose_name="tags", - ), - ), - ( - "uploaded_by_user", - models.ForeignKey( - blank=True, - editable=False, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to=settings.AUTH_USER_MODEL, - verbose_name="uploaded by user", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=255, verbose_name='title')), + ('file', models.FileField(upload_to='documents', verbose_name='file')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')), + ('file_size', models.PositiveIntegerField(editable=False, null=True)), + ('file_hash', models.CharField(blank=True, editable=False, max_length=40)), + ('display_text', models.CharField(default='', max_length=1024)), + ('description', models.TextField(default='')), + ('link_display_text', models.CharField(default='', max_length=1024)), + ('thumbnail', models.URLField()), + ('collection', models.ForeignKey(default=wagtail.models.collections.get_root_collection_id, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='wagtailcore.collection', verbose_name='collection')), + ('tags', taggit.managers.TaggableManager(blank=True, help_text=None, through='taggit.TaggedItem', to='taggit.Tag', verbose_name='tags')), + ('uploaded_by_user', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='uploaded by user')), ], options={ - "verbose_name": "document", - "verbose_name_plural": "documents", - "abstract": False, + 'verbose_name': 'document', + 'verbose_name_plural': 'documents', + 'abstract': False, }, bases=(wagtail.search.index.Indexed, models.Model), ), diff --git a/server/vbv_lernwelt/notify/migrations/0001_initial.py b/server/vbv_lernwelt/notify/migrations/0001_initial.py index e802df1c..63c348c4 100644 --- a/server/vbv_lernwelt/notify/migrations/0001_initial.py +++ b/server/vbv_lernwelt/notify/migrations/0001_initial.py @@ -1,10 +1,10 @@ -# Generated by Django 3.2.13 on 2023-05-11 20:06 +# Generated by Django 3.2.13 on 2023-07-14 12:15 +from django.conf import settings +from django.db import migrations, models import django.db.models.deletion import django.utils.timezone import jsonfield.fields -from django.conf import settings -from django.db import migrations, models class Migration(migrations.Migration): @@ -13,113 +13,41 @@ class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ("contenttypes", "0002_remove_content_type_name"), + ('contenttypes', '0002_remove_content_type_name'), ] operations = [ migrations.CreateModel( - name="Notification", + name='Notification', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "level", - models.CharField( - choices=[ - ("success", "success"), - ("info", "info"), - ("warning", "warning"), - ("error", "error"), - ], - default="info", - max_length=20, - ), - ), - ("unread", models.BooleanField(db_index=True, default=True)), - ("actor_object_id", models.CharField(max_length=255)), - ("verb", models.CharField(max_length=255)), - ("description", models.TextField(blank=True, null=True)), - ( - "target_object_id", - models.CharField(blank=True, max_length=255, null=True), - ), - ( - "action_object_object_id", - models.CharField(blank=True, max_length=255, null=True), - ), - ( - "timestamp", - models.DateTimeField( - db_index=True, default=django.utils.timezone.now - ), - ), - ("public", models.BooleanField(db_index=True, default=True)), - ("deleted", models.BooleanField(db_index=True, default=False)), - ("emailed", models.BooleanField(db_index=True, default=False)), - ("data", jsonfield.fields.JSONField(blank=True, null=True)), - ( - "notification_type", - models.CharField( - choices=[ - ("USER_INTERACTION", "User Interaction"), - ("PROGRESS", "Progress"), - ("INFORMATION", "Information"), - ], - default="INFORMATION", - max_length=32, - ), - ), - ("target_url", models.URLField(blank=True, null=True)), - ("actor_avatar_url", models.URLField(blank=True, null=True)), - ("course", models.CharField(blank=True, max_length=32, null=True)), - ( - "action_object_content_type", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="notify_action_object", - to="contenttypes.contenttype", - ), - ), - ( - "actor_content_type", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="notify_actor", - to="contenttypes.contenttype", - ), - ), - ( - "recipient", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="notifications", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "target_content_type", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="notify_target", - to="contenttypes.contenttype", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('level', models.CharField(choices=[('success', 'success'), ('info', 'info'), ('warning', 'warning'), ('error', 'error')], default='info', max_length=20, verbose_name='level')), + ('unread', models.BooleanField(db_index=True, default=True, verbose_name='unread')), + ('actor_object_id', models.CharField(max_length=255, verbose_name='actor object id')), + ('verb', models.CharField(max_length=255, verbose_name='verb')), + ('description', models.TextField(blank=True, null=True, verbose_name='description')), + ('target_object_id', models.CharField(blank=True, max_length=255, null=True, verbose_name='target object id')), + ('action_object_object_id', models.CharField(blank=True, max_length=255, null=True, verbose_name='action object object id')), + ('timestamp', models.DateTimeField(db_index=True, default=django.utils.timezone.now, verbose_name='timestamp')), + ('public', models.BooleanField(db_index=True, default=True, verbose_name='public')), + ('deleted', models.BooleanField(db_index=True, default=False, verbose_name='deleted')), + ('emailed', models.BooleanField(db_index=True, default=False, verbose_name='emailed')), + ('data', jsonfield.fields.JSONField(blank=True, null=True, verbose_name='data')), + ('notification_type', models.CharField(choices=[('USER_INTERACTION', 'User Interaction'), ('PROGRESS', 'Progress'), ('INFORMATION', 'Information')], default='INFORMATION', max_length=32)), + ('target_url', models.URLField(blank=True, null=True)), + ('actor_avatar_url', models.URLField(blank=True, null=True)), + ('course', models.CharField(blank=True, max_length=32, null=True)), + ('action_object_content_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notify_action_object', to='contenttypes.contenttype', verbose_name='action object content type')), + ('actor_content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notify_actor', to='contenttypes.contenttype', verbose_name='actor content type')), + ('recipient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notifications', to=settings.AUTH_USER_MODEL, verbose_name='recipient')), + ('target_content_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notify_target', to='contenttypes.contenttype', verbose_name='target content type')), ], options={ - "ordering": ["-timestamp"], - "abstract": False, - "index_together": {("recipient", "unread")}, + 'verbose_name': 'Notification', + 'verbose_name_plural': 'Notifications', + 'ordering': ['-timestamp'], + 'abstract': False, + 'index_together': {('recipient', 'unread')}, }, ), ] diff --git a/server/vbv_lernwelt/notify/migrations/0002_auto_20230712_0905.py b/server/vbv_lernwelt/notify/migrations/0002_auto_20230712_0905.py deleted file mode 100644 index cbc4d336..00000000 --- a/server/vbv_lernwelt/notify/migrations/0002_auto_20230712_0905.py +++ /dev/null @@ -1,162 +0,0 @@ -# Generated by Django 3.2.13 on 2023-07-12 07:05 - -import django.db.models.deletion -import django.utils.timezone -import jsonfield.fields -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("contenttypes", "0002_remove_content_type_name"), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ("notify", "0001_initial"), - ] - - operations = [ - migrations.AlterModelOptions( - name="notification", - options={ - "ordering": ["-timestamp"], - "verbose_name": "Notification", - "verbose_name_plural": "Notifications", - }, - ), - migrations.AlterField( - model_name="notification", - name="action_object_content_type", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="notify_action_object", - to="contenttypes.contenttype", - verbose_name="action object content type", - ), - ), - migrations.AlterField( - model_name="notification", - name="action_object_object_id", - field=models.CharField( - blank=True, - max_length=255, - null=True, - verbose_name="action object object id", - ), - ), - migrations.AlterField( - model_name="notification", - name="actor_content_type", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="notify_actor", - to="contenttypes.contenttype", - verbose_name="actor content type", - ), - ), - migrations.AlterField( - model_name="notification", - name="actor_object_id", - field=models.CharField(max_length=255, verbose_name="actor object id"), - ), - migrations.AlterField( - model_name="notification", - name="data", - field=jsonfield.fields.JSONField( - blank=True, null=True, verbose_name="data" - ), - ), - migrations.AlterField( - model_name="notification", - name="deleted", - field=models.BooleanField( - db_index=True, default=False, verbose_name="deleted" - ), - ), - migrations.AlterField( - model_name="notification", - name="description", - field=models.TextField(blank=True, null=True, verbose_name="description"), - ), - migrations.AlterField( - model_name="notification", - name="emailed", - field=models.BooleanField( - db_index=True, default=False, verbose_name="emailed" - ), - ), - migrations.AlterField( - model_name="notification", - name="level", - field=models.CharField( - choices=[ - ("success", "success"), - ("info", "info"), - ("warning", "warning"), - ("error", "error"), - ], - default="info", - max_length=20, - verbose_name="level", - ), - ), - migrations.AlterField( - model_name="notification", - name="public", - field=models.BooleanField( - db_index=True, default=True, verbose_name="public" - ), - ), - migrations.AlterField( - model_name="notification", - name="recipient", - field=models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="notifications", - to=settings.AUTH_USER_MODEL, - verbose_name="recipient", - ), - ), - migrations.AlterField( - model_name="notification", - name="target_content_type", - field=models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="notify_target", - to="contenttypes.contenttype", - verbose_name="target content type", - ), - ), - migrations.AlterField( - model_name="notification", - name="target_object_id", - field=models.CharField( - blank=True, max_length=255, null=True, verbose_name="target object id" - ), - ), - migrations.AlterField( - model_name="notification", - name="timestamp", - field=models.DateTimeField( - db_index=True, - default=django.utils.timezone.now, - verbose_name="timestamp", - ), - ), - migrations.AlterField( - model_name="notification", - name="unread", - field=models.BooleanField( - db_index=True, default=True, verbose_name="unread" - ), - ), - migrations.AlterField( - model_name="notification", - name="verb", - field=models.CharField(max_length=255, verbose_name="verb"), - ), - ]