From b0ae5a7cf1271f114bc221929278cd7d14b92088 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Wed, 7 Aug 2019 15:42:00 +0200 Subject: [PATCH] Use titleslug model for admin slug --- server/books/blocks.py | 1 - ...to_20190807_1220.py => 0013_auto_20190807_1340.py} | 4 ++-- ...to_20190807_1218.py => 0007_auto_20190807_1323.py} | 11 ++++++++--- server/rooms/models.py | 6 +++--- server/rooms/schema.py | 8 +------- server/rooms/tests/test_admin_room_query.py | 2 +- server/rooms/wagtail_hooks.py | 2 +- 7 files changed, 16 insertions(+), 18 deletions(-) rename server/books/migrations/{0013_auto_20190807_1220.py => 0013_auto_20190807_1340.py} (51%) rename server/rooms/migrations/{0007_auto_20190807_1218.py => 0007_auto_20190807_1323.py} (54%) diff --git a/server/books/blocks.py b/server/books/blocks.py index 38c0a094..d2f8f560 100644 --- a/server/books/blocks.py +++ b/server/books/blocks.py @@ -103,7 +103,6 @@ class AdminRoomSlugBlock(blocks.StructBlock): class Meta: icon = 'link' - slug = blocks.TextBlock() title = blocks.TextBlock() # 'text_block' 'task' 'basic_knowledge' 'student_entry' 'image_block' diff --git a/server/books/migrations/0013_auto_20190807_1220.py b/server/books/migrations/0013_auto_20190807_1340.py similarity index 51% rename from server/books/migrations/0013_auto_20190807_1220.py rename to server/books/migrations/0013_auto_20190807_1340.py index e3bf9b9f..34bc13f8 100644 --- a/server/books/migrations/0013_auto_20190807_1220.py +++ b/server/books/migrations/0013_auto_20190807_1340.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2019-08-07 12:20 +# Generated by Django 2.0.6 on 2019-08-07 13:40 import assignments.models from django.db import migrations @@ -19,6 +19,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='contentblock', name='contents', - field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul']))])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock(required=False)), ('basic_knowledge', wagtail.core.blocks.PageChooserBlock(required=True, target_model=['basicknowledge.BasicKnowledge']))])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.snippets.blocks.SnippetChooserBlock(assignments.models.Assignment))])), ('survey', wagtail.core.blocks.StructBlock([('survey_id', wagtail.snippets.blocks.SnippetChooserBlock(surveys.models.Survey))])), ('image_block', wagtail.images.blocks.ImageChooserBlock()), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('solution', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul']))], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('infogram_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock()), ('title', wagtail.core.blocks.TextBlock())])), ('genially_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock())])), ('subtitle', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock())])), ('admin_room_slug', wagtail.core.blocks.StructBlock([('slug', wagtail.core.blocks.TextBlock()), ('title', wagtail.core.blocks.TextBlock())])), ('content_list_item', wagtail.core.blocks.StreamBlock([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul']))])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock(required=False)), ('basic_knowledge', wagtail.core.blocks.PageChooserBlock(required=True, target_model=['basicknowledge.BasicKnowledge']))])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.snippets.blocks.SnippetChooserBlock(assignments.models.Assignment))])), ('survey', wagtail.core.blocks.StructBlock([('survey_id', wagtail.snippets.blocks.SnippetChooserBlock(surveys.models.Survey))])), ('image_block', wagtail.images.blocks.ImageChooserBlock()), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('solution', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul']))], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('infogram_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock()), ('title', wagtail.core.blocks.TextBlock())])), ('genially_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock())])), ('subtitle', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock())])), ('admin_room_slug', wagtail.core.blocks.StructBlock([('slug', wagtail.core.blocks.TextBlock()), ('title', wagtail.core.blocks.TextBlock())]))]))], blank=True, null=True), + field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul']))])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock(required=False)), ('basic_knowledge', wagtail.core.blocks.PageChooserBlock(required=True, target_model=['basicknowledge.BasicKnowledge']))])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.snippets.blocks.SnippetChooserBlock(assignments.models.Assignment))])), ('survey', wagtail.core.blocks.StructBlock([('survey_id', wagtail.snippets.blocks.SnippetChooserBlock(surveys.models.Survey))])), ('image_block', wagtail.images.blocks.ImageChooserBlock()), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('solution', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul']))], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('infogram_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock()), ('title', wagtail.core.blocks.TextBlock())])), ('genially_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock())])), ('subtitle', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock())])), ('admin_room_slug', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock())])), ('content_list_item', wagtail.core.blocks.StreamBlock([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul']))])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock(required=False)), ('basic_knowledge', wagtail.core.blocks.PageChooserBlock(required=True, target_model=['basicknowledge.BasicKnowledge']))])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.snippets.blocks.SnippetChooserBlock(assignments.models.Assignment))])), ('survey', wagtail.core.blocks.StructBlock([('survey_id', wagtail.snippets.blocks.SnippetChooserBlock(surveys.models.Survey))])), ('image_block', wagtail.images.blocks.ImageChooserBlock()), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('solution', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock(features=['ul']))], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('infogram_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock()), ('title', wagtail.core.blocks.TextBlock())])), ('genially_block', wagtail.core.blocks.StructBlock([('id', wagtail.core.blocks.TextBlock())])), ('subtitle', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock())])), ('admin_room_slug', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.TextBlock())]))]))], blank=True, null=True), ), ] diff --git a/server/rooms/migrations/0007_auto_20190807_1218.py b/server/rooms/migrations/0007_auto_20190807_1323.py similarity index 54% rename from server/rooms/migrations/0007_auto_20190807_1218.py rename to server/rooms/migrations/0007_auto_20190807_1323.py index 353dcef5..59e7e654 100644 --- a/server/rooms/migrations/0007_auto_20190807_1218.py +++ b/server/rooms/migrations/0007_auto_20190807_1323.py @@ -1,6 +1,7 @@ -# Generated by Django 2.0.6 on 2019-08-07 12:18 +# Generated by Django 2.0.6 on 2019-08-07 13:23 from django.db import migrations, models +import django_extensions.db.fields class Migration(migrations.Migration): @@ -14,9 +15,13 @@ class Migration(migrations.Migration): name='AdminGeneratedRoomSlug', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('slug', models.CharField(max_length=255)), - ('title', models.CharField(max_length=255)), + ('title', models.CharField(max_length=255, verbose_name='title')), + ('description', models.TextField(blank=True, null=True, verbose_name='description')), + ('slug', django_extensions.db.fields.AutoSlugField(blank=True, editable=False, populate_from='title', verbose_name='slug')), ], + options={ + 'abstract': False, + }, ), migrations.AddField( model_name='room', diff --git a/server/rooms/models.py b/server/rooms/models.py index 47120c14..44e43659 100644 --- a/server/rooms/models.py +++ b/server/rooms/models.py @@ -44,7 +44,7 @@ class RoomEntry(TitleSlugDescriptionModel): return user.is_superuser or self.room.school_class.is_user_in_schoolclass(user) -class AdminGeneratedRoomSlug(models.Model): - slug = models.CharField(blank=False, null=False, max_length=255) - title = models.CharField(blank=False, null=False, max_length=255) +class AdminGeneratedRoomSlug(TitleSlugDescriptionModel): + def __str__(self): + return 'AdmimSlug {}-{}'.format(self.id, self.title) diff --git a/server/rooms/schema.py b/server/rooms/schema.py index 3db48198..5f5a506c 100644 --- a/server/rooms/schema.py +++ b/server/rooms/schema.py @@ -103,14 +103,8 @@ class AdminRoomsQuery(object): return None room, created = Room.objects.get_or_create(school_class=schoolclass, user_created=False, slug=slug, - title=slug.title) + title=slug.title, appearance='blue') if not room.user_created and room.school_class.is_user_in_schoolclass(info.context.user): return room else: return None - - # def resolve_all_room_entries(self, info, **kwargs): - # if not info.context.user.is_superuser: - # return RoomEntry.objects.none() - # else: - # return RoomEntry.objects.all() diff --git a/server/rooms/tests/test_admin_room_query.py b/server/rooms/tests/test_admin_room_query.py index 9c4ce36c..e64b23ab 100644 --- a/server/rooms/tests/test_admin_room_query.py +++ b/server/rooms/tests/test_admin_room_query.py @@ -27,7 +27,7 @@ class AdminRoomQueryPermission(TestCase): self.room1 = RoomFactory(school_class=self.sc1) self.room2 = RoomFactory(school_class=sc2) - self.admin_slug = AdminGeneratedRoomSlugFactory(slug='test-slug', title='title') + self.admin_slug = AdminGeneratedRoomSlugFactory(title='some title') self.sc1_id = to_global_id('SchoolClass', self.sc1.pk) self.sc2_id = to_global_id('SchoolClass', sc2.pk) diff --git a/server/rooms/wagtail_hooks.py b/server/rooms/wagtail_hooks.py index 26bbfee5..ed05d5cf 100644 --- a/server/rooms/wagtail_hooks.py +++ b/server/rooms/wagtail_hooks.py @@ -17,7 +17,7 @@ from rooms.models import AdminGeneratedRoomSlug def do_after_page_edit(request, page): blocks = get_room_blocks(page) for block in blocks: - AdminGeneratedRoomSlug.objects.get_or_create(slug=block[1]['slug']) + AdminGeneratedRoomSlug.objects.get_or_create(title=block[1]['title']) def get_room_blocks(page):