From 5ed883e83bd3a584c3e7264e5c0dada597250644 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Fri, 14 Jul 2023 14:37:59 +0200 Subject: [PATCH] Use UUIDs as primary key for models with user context --- cypress/consts.js | 8 ++++---- .../vbv_lernwelt/assignment/migrations/0001_initial.py | 2 +- .../0002_assignmentcompletionauditlog_assignment_user.py | 2 +- .../vbv_lernwelt/assignment/migrations/0003_initial.py | 8 ++++---- .../vbv_lernwelt/competence/migrations/0001_initial.py | 2 +- .../migrations/0002_performancecriteria_learning_unit.py | 4 ++-- .../contrib/sites/migrations/0001_initial.py | 2 +- server/vbv_lernwelt/core/constants.py | 8 ++++---- server/vbv_lernwelt/core/migrations/0001_initial.py | 5 +++-- server/vbv_lernwelt/core/models.py | 6 ++++-- server/vbv_lernwelt/course/migrations/0001_initial.py | 9 +++++---- server/vbv_lernwelt/course/migrations/0002_initial.py | 4 ++-- server/vbv_lernwelt/course/models.py | 9 ++++++++- .../course_session/migrations/0001_initial.py | 2 +- .../0002_coursesessionattendancecourse_due_date.py | 2 +- .../course_session/migrations/0003_initial.py | 6 +++--- server/vbv_lernwelt/duedate/migrations/0001_initial.py | 2 +- server/vbv_lernwelt/feedback/migrations/0001_initial.py | 5 +++-- server/vbv_lernwelt/feedback/migrations/0002_initial.py | 4 ++-- server/vbv_lernwelt/feedback/models.py | 4 ++++ server/vbv_lernwelt/files/migrations/0001_initial.py | 5 +++-- server/vbv_lernwelt/files/models.py | 4 ++++ server/vbv_lernwelt/learnpath/migrations/0001_initial.py | 4 ++-- .../media_library/migrations/0001_initial.py | 6 +++--- server/vbv_lernwelt/notify/migrations/0001_initial.py | 5 +++-- server/vbv_lernwelt/notify/models.py | 4 ++++ 26 files changed, 74 insertions(+), 48 deletions(-) diff --git a/cypress/consts.js b/cypress/consts.js index 303130ce..c10d4f95 100644 --- a/cypress/consts.js +++ b/cypress/consts.js @@ -1,8 +1,8 @@ // ids for cypress test data -export const ADMIN_USER_ID = -1; -export const TEST_TRAINER1_USER_ID = -11; -export const TEST_STUDENT1_USER_ID = -21; -export const TEST_STUDENT2_USER_ID = -22; +export const ADMIN_USER_ID = "872efd96-3bd7-4a1e-a239-2d72cad9f604"; +export const TEST_TRAINER1_USER_ID = "b9e71f59-c44f-4290-b93a-9b3151e9a2fc"; +export const TEST_STUDENT1_USER_ID = "65c73ad0-6d53-43a9-a4a4-64143f27b03a"; +export const TEST_STUDENT2_USER_ID = "19c40d94-15cc-4198-aaad-ef707c4b0900"; export const TEST_COURSE_SESSION_BERN_ID = -1; export const TEST_COURSE_SESSION_ZURICH_ID = -2; diff --git a/server/vbv_lernwelt/assignment/migrations/0001_initial.py b/server/vbv_lernwelt/assignment/migrations/0001_initial.py index 3cebf30b..6d296c2b 100644 --- a/server/vbv_lernwelt/assignment/migrations/0001_initial.py +++ b/server/vbv_lernwelt/assignment/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion 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 2323a768..a22f627f 100644 --- a/server/vbv_lernwelt/assignment/migrations/0002_assignmentcompletionauditlog_assignment_user.py +++ b/server/vbv_lernwelt/assignment/migrations/0002_assignmentcompletionauditlog_assignment_user.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.conf import settings from django.db import migrations, models diff --git a/server/vbv_lernwelt/assignment/migrations/0003_initial.py b/server/vbv_lernwelt/assignment/migrations/0003_initial.py index 756bee0d..e0c91528 100644 --- a/server/vbv_lernwelt/assignment/migrations/0003_initial.py +++ b/server/vbv_lernwelt/assignment/migrations/0003_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.conf import settings from django.db import migrations, models @@ -10,10 +10,10 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('course', '0001_initial'), - ('assignment', '0002_assignmentcompletionauditlog_assignment_user'), - ('wagtailcore', '0083_workflowcontenttype'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('assignment', '0002_assignmentcompletionauditlog_assignment_user'), + ('course', '0001_initial'), + ('wagtailcore', '0083_workflowcontenttype'), ] operations = [ diff --git a/server/vbv_lernwelt/competence/migrations/0001_initial.py b/server/vbv_lernwelt/competence/migrations/0001_initial.py index d110a5fe..5880ce62 100644 --- a/server/vbv_lernwelt/competence/migrations/0001_initial.py +++ b/server/vbv_lernwelt/competence/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion 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 d9c81c76..e9abc826 100644 --- a/server/vbv_lernwelt/competence/migrations/0002_performancecriteria_learning_unit.py +++ b/server/vbv_lernwelt/competence/migrations/0002_performancecriteria_learning_unit.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion @@ -9,8 +9,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('learnpath', '0001_initial'), ('competence', '0001_initial'), + ('learnpath', '0001_initial'), ] operations = [ diff --git a/server/vbv_lernwelt/contrib/sites/migrations/0001_initial.py b/server/vbv_lernwelt/contrib/sites/migrations/0001_initial.py index 74e0d7da..94cb993d 100644 --- a/server/vbv_lernwelt/contrib/sites/migrations/0001_initial.py +++ b/server/vbv_lernwelt/contrib/sites/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 import django.contrib.sites.models from django.db import migrations, models diff --git a/server/vbv_lernwelt/core/constants.py b/server/vbv_lernwelt/core/constants.py index 5ec2388d..d525ee0d 100644 --- a/server/vbv_lernwelt/core/constants.py +++ b/server/vbv_lernwelt/core/constants.py @@ -11,10 +11,10 @@ DEFAULT_RICH_TEXT_FEATURES_WITH_HEADER = [ ] # ids for cypress test data -ADMIN_USER_ID = -1 -TEST_TRAINER1_USER_ID = -11 -TEST_STUDENT1_USER_ID = -21 -TEST_STUDENT2_USER_ID = -22 +ADMIN_USER_ID = "872efd96-3bd7-4a1e-a239-2d72cad9f604" +TEST_TRAINER1_USER_ID = "b9e71f59-c44f-4290-b93a-9b3151e9a2fc" +TEST_STUDENT1_USER_ID = "65c73ad0-6d53-43a9-a4a4-64143f27b03a" +TEST_STUDENT2_USER_ID = "19c40d94-15cc-4198-aaad-ef707c4b0900" TEST_COURSE_SESSION_BERN_ID = -1 TEST_COURSE_SESSION_ZURICH_ID = -2 diff --git a/server/vbv_lernwelt/core/migrations/0001_initial.py b/server/vbv_lernwelt/core/migrations/0001_initial.py index 87f86943..ca8955ff 100644 --- a/server/vbv_lernwelt/core/migrations/0001_initial.py +++ b/server/vbv_lernwelt/core/migrations/0001_initial.py @@ -1,9 +1,10 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 import django.contrib.auth.models import django.contrib.auth.validators from django.db import migrations, models import django.utils.timezone +import uuid class Migration(migrations.Migration): @@ -31,7 +32,6 @@ class Migration(migrations.Migration): migrations.CreateModel( 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')), @@ -41,6 +41,7 @@ class Migration(migrations.Migration): ('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')), + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('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')), diff --git a/server/vbv_lernwelt/core/models.py b/server/vbv_lernwelt/core/models.py index c1a09d96..8f8bcb75 100644 --- a/server/vbv_lernwelt/core/models.py +++ b/server/vbv_lernwelt/core/models.py @@ -1,3 +1,5 @@ +import uuid + from django.contrib.auth.models import AbstractUser from django.db import models from django.db.models import JSONField @@ -15,8 +17,8 @@ class User(AbstractUser): ("it", "Italiano"), ) - # FIXME: look into it... - # objects = UserManager() + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + avatar_url = models.CharField( max_length=254, blank=True, default="/static/avatars/myvbv-default-avatar.png" ) diff --git a/server/vbv_lernwelt/course/migrations/0001_initial.py b/server/vbv_lernwelt/course/migrations/0001_initial.py index da2e04a9..42a76e70 100644 --- a/server/vbv_lernwelt/course/migrations/0001_initial.py +++ b/server/vbv_lernwelt/course/migrations/0001_initial.py @@ -1,7 +1,8 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion +import uuid import vbv_lernwelt.course.models @@ -17,7 +18,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CircleDocument', fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('name', models.CharField(max_length=100)), ], @@ -45,7 +46,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CourseCompletion', fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('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)), ('page_type', models.CharField(blank=True, default='', max_length=255)), @@ -82,7 +83,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CourseSessionUser', fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('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)), ('role', models.CharField(choices=[('MEMBER', 'Teilnehmer'), ('EXPERT', 'Experte/Trainer'), ('TUTOR', 'Lernbegleitung')], default='MEMBER', max_length=255)), diff --git a/server/vbv_lernwelt/course/migrations/0002_initial.py b/server/vbv_lernwelt/course/migrations/0002_initial.py index 1f4a5fc8..ab3ffe95 100644 --- a/server/vbv_lernwelt/course/migrations/0002_initial.py +++ b/server/vbv_lernwelt/course/migrations/0002_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.conf import settings from django.db import migrations, models @@ -10,11 +10,11 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('learnpath', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('wagtailcore', '0083_workflowcontenttype'), ('files', '0001_initial'), ('course', '0001_initial'), + ('learnpath', '0001_initial'), ] operations = [ diff --git a/server/vbv_lernwelt/course/models.py b/server/vbv_lernwelt/course/models.py index c13dbc45..78701ad8 100644 --- a/server/vbv_lernwelt/course/models.py +++ b/server/vbv_lernwelt/course/models.py @@ -1,4 +1,5 @@ import enum +import uuid from django.db import models from django.db.models import UniqueConstraint @@ -161,6 +162,8 @@ class CourseCompletionStatus(enum.Enum): class CourseCompletion(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) @@ -220,9 +223,11 @@ class CourseSession(models.Model): class CourseSessionUser(models.Model): """ - Ein Benutzer der an einer CourseSession teilnimmt + Ein Benutzer der an einer Durchführung teilnimmt """ + 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) @@ -268,6 +273,8 @@ class CourseSessionUser(models.Model): class CircleDocument(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + created_at = models.DateTimeField(auto_now_add=True) file = models.OneToOneField(UploadFile, on_delete=models.CASCADE) name = models.CharField(max_length=100) diff --git a/server/vbv_lernwelt/course_session/migrations/0001_initial.py b/server/vbv_lernwelt/course_session/migrations/0001_initial.py index 334cb365..82479436 100644 --- a/server/vbv_lernwelt/course_session/migrations/0001_initial.py +++ b/server/vbv_lernwelt/course_session/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion 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 index c5233e0e..ceddc4c8 100644 --- a/server/vbv_lernwelt/course_session/migrations/0002_coursesessionattendancecourse_due_date.py +++ b/server/vbv_lernwelt/course_session/migrations/0002_coursesessionattendancecourse_due_date.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion diff --git a/server/vbv_lernwelt/course_session/migrations/0003_initial.py b/server/vbv_lernwelt/course_session/migrations/0003_initial.py index b9fa76f0..950d20b3 100644 --- a/server/vbv_lernwelt/course_session/migrations/0003_initial.py +++ b/server/vbv_lernwelt/course_session/migrations/0003_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion @@ -9,10 +9,10 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('learnpath', '0001_initial'), - ('duedate', '0001_initial'), ('course_session', '0002_coursesessionattendancecourse_due_date'), ('course', '0001_initial'), + ('duedate', '0001_initial'), + ('learnpath', '0001_initial'), ] operations = [ diff --git a/server/vbv_lernwelt/duedate/migrations/0001_initial.py b/server/vbv_lernwelt/duedate/migrations/0001_initial.py index 28c65e3e..fced76b6 100644 --- a/server/vbv_lernwelt/duedate/migrations/0001_initial.py +++ b/server/vbv_lernwelt/duedate/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion diff --git a/server/vbv_lernwelt/feedback/migrations/0001_initial.py b/server/vbv_lernwelt/feedback/migrations/0001_initial.py index 43f944ee..390ba00e 100644 --- a/server/vbv_lernwelt/feedback/migrations/0001_initial.py +++ b/server/vbv_lernwelt/feedback/migrations/0001_initial.py @@ -1,6 +1,7 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models +import uuid class Migration(migrations.Migration): @@ -14,7 +15,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='FeedbackResponse', fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('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 bb30f97c..26b01cd2 100644 --- a/server/vbv_lernwelt/feedback/migrations/0002_initial.py +++ b/server/vbv_lernwelt/feedback/migrations/0002_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion @@ -9,9 +9,9 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('learnpath', '0001_initial'), ('feedback', '0001_initial'), ('course', '0001_initial'), + ('learnpath', '0001_initial'), ] operations = [ diff --git a/server/vbv_lernwelt/feedback/models.py b/server/vbv_lernwelt/feedback/models.py index 6901601e..b3d687ce 100644 --- a/server/vbv_lernwelt/feedback/models.py +++ b/server/vbv_lernwelt/feedback/models.py @@ -1,3 +1,5 @@ +import uuid + from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models from django.utils.translation import gettext_lazy as _ @@ -19,6 +21,8 @@ class FeedbackIntegerField(models.IntegerField): class FeedbackResponse(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + class DiscoveredChoices(models.TextChoices): INTERNET = "I", _("Internet") LEAFLET = "L", _("Leaflet") diff --git a/server/vbv_lernwelt/files/migrations/0001_initial.py b/server/vbv_lernwelt/files/migrations/0001_initial.py index a965d023..b3d0b982 100644 --- a/server/vbv_lernwelt/files/migrations/0001_initial.py +++ b/server/vbv_lernwelt/files/migrations/0001_initial.py @@ -1,8 +1,9 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.conf import settings from django.db import migrations, models import django.db.models.deletion +import uuid import vbv_lernwelt.files.utils @@ -18,7 +19,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='UploadFile', fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('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)), diff --git a/server/vbv_lernwelt/files/models.py b/server/vbv_lernwelt/files/models.py index 69a3dd12..32cec66c 100644 --- a/server/vbv_lernwelt/files/models.py +++ b/server/vbv_lernwelt/files/models.py @@ -1,3 +1,5 @@ +import uuid + from django.conf import settings from django.db import models @@ -12,6 +14,8 @@ from vbv_lernwelt.files.utils import file_generate_upload_path class UploadFile(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + file = models.FileField(upload_to=file_generate_upload_path, blank=True, null=True) original_file_name = models.TextField() diff --git a/server/vbv_lernwelt/learnpath/migrations/0001_initial.py b/server/vbv_lernwelt/learnpath/migrations/0001_initial.py index a41cfb3d..737e36ed 100644 --- a/server/vbv_lernwelt/learnpath/migrations/0001_initial.py +++ b/server/vbv_lernwelt/learnpath/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.db import migrations, models import django.db.models.deletion @@ -11,8 +11,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('course', '0001_initial'), ('assignment', '0003_initial'), + ('course', '0001_initial'), ('wagtailcore', '0083_workflowcontenttype'), ] diff --git a/server/vbv_lernwelt/media_library/migrations/0001_initial.py b/server/vbv_lernwelt/media_library/migrations/0001_initial.py index bcc62f40..05091256 100644 --- a/server/vbv_lernwelt/media_library/migrations/0001_initial.py +++ b/server/vbv_lernwelt/media_library/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.conf import settings from django.db import migrations, models @@ -15,10 +15,10 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('wagtailcore', '0083_workflowcontenttype'), ('course', '0002_initial'), - ('taggit', '0004_alter_taggeditem_content_type_alter_taggeditem_tag'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('taggit', '0004_alter_taggeditem_content_type_alter_taggeditem_tag'), + ('wagtailcore', '0083_workflowcontenttype'), ] operations = [ diff --git a/server/vbv_lernwelt/notify/migrations/0001_initial.py b/server/vbv_lernwelt/notify/migrations/0001_initial.py index 63c348c4..ebcd59ce 100644 --- a/server/vbv_lernwelt/notify/migrations/0001_initial.py +++ b/server/vbv_lernwelt/notify/migrations/0001_initial.py @@ -1,10 +1,11 @@ -# Generated by Django 3.2.13 on 2023-07-14 12:15 +# Generated by Django 3.2.13 on 2023-07-14 12:28 from django.conf import settings from django.db import migrations, models import django.db.models.deletion import django.utils.timezone import jsonfield.fields +import uuid class Migration(migrations.Migration): @@ -20,7 +21,6 @@ class Migration(migrations.Migration): migrations.CreateModel( 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, 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')), @@ -33,6 +33,7 @@ class Migration(migrations.Migration): ('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')), + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('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)), diff --git a/server/vbv_lernwelt/notify/models.py b/server/vbv_lernwelt/notify/models.py index 0592214f..ece24ca4 100644 --- a/server/vbv_lernwelt/notify/models.py +++ b/server/vbv_lernwelt/notify/models.py @@ -1,3 +1,5 @@ +import uuid + from django.db import models from django.utils.translation import gettext_lazy as _ from notifications.base.models import AbstractNotification @@ -10,6 +12,8 @@ class NotificationType(models.TextChoices): class Notification(AbstractNotification): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) + notification_type = models.CharField( max_length=32, choices=NotificationType.choices,