Use titleslug model for admin slug
This commit is contained in:
parent
083a8b03a8
commit
b0ae5a7cf1
|
|
@ -103,7 +103,6 @@ class AdminRoomSlugBlock(blocks.StructBlock):
|
||||||
class Meta:
|
class Meta:
|
||||||
icon = 'link'
|
icon = 'link'
|
||||||
|
|
||||||
slug = blocks.TextBlock()
|
|
||||||
title = blocks.TextBlock()
|
title = blocks.TextBlock()
|
||||||
|
|
||||||
# 'text_block' 'task' 'basic_knowledge' 'student_entry' 'image_block'
|
# 'text_block' 'task' 'basic_knowledge' 'student_entry' 'image_block'
|
||||||
|
|
|
||||||
|
|
@ -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
|
import assignments.models
|
||||||
from django.db import migrations
|
from django.db import migrations
|
||||||
|
|
@ -19,6 +19,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='contentblock',
|
model_name='contentblock',
|
||||||
name='contents',
|
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),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
@ -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
|
from django.db import migrations, models
|
||||||
|
import django_extensions.db.fields
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
@ -14,9 +15,13 @@ class Migration(migrations.Migration):
|
||||||
name='AdminGeneratedRoomSlug',
|
name='AdminGeneratedRoomSlug',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('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, verbose_name='title')),
|
||||||
('title', models.CharField(max_length=255)),
|
('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(
|
migrations.AddField(
|
||||||
model_name='room',
|
model_name='room',
|
||||||
|
|
@ -44,7 +44,7 @@ class RoomEntry(TitleSlugDescriptionModel):
|
||||||
return user.is_superuser or self.room.school_class.is_user_in_schoolclass(user)
|
return user.is_superuser or self.room.school_class.is_user_in_schoolclass(user)
|
||||||
|
|
||||||
|
|
||||||
class AdminGeneratedRoomSlug(models.Model):
|
class AdminGeneratedRoomSlug(TitleSlugDescriptionModel):
|
||||||
slug = models.CharField(blank=False, null=False, max_length=255)
|
|
||||||
title = models.CharField(blank=False, null=False, max_length=255)
|
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return 'AdmimSlug {}-{}'.format(self.id, self.title)
|
||||||
|
|
|
||||||
|
|
@ -103,14 +103,8 @@ class AdminRoomsQuery(object):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
room, created = Room.objects.get_or_create(school_class=schoolclass, user_created=False, slug=slug,
|
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):
|
if not room.user_created and room.school_class.is_user_in_schoolclass(info.context.user):
|
||||||
return room
|
return room
|
||||||
else:
|
else:
|
||||||
return None
|
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()
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ class AdminRoomQueryPermission(TestCase):
|
||||||
self.room1 = RoomFactory(school_class=self.sc1)
|
self.room1 = RoomFactory(school_class=self.sc1)
|
||||||
self.room2 = RoomFactory(school_class=sc2)
|
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.sc1_id = to_global_id('SchoolClass', self.sc1.pk)
|
||||||
self.sc2_id = to_global_id('SchoolClass', sc2.pk)
|
self.sc2_id = to_global_id('SchoolClass', sc2.pk)
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ from rooms.models import AdminGeneratedRoomSlug
|
||||||
def do_after_page_edit(request, page):
|
def do_after_page_edit(request, page):
|
||||||
blocks = get_room_blocks(page)
|
blocks = get_room_blocks(page)
|
||||||
for block in blocks:
|
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):
|
def get_room_blocks(page):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue