diff --git a/server/api/schema.py b/server/api/schema.py index 06fd3195..9ca320bf 100644 --- a/server/api/schema.py +++ b/server/api/schema.py @@ -8,7 +8,7 @@ from api import graphene_wagtail # Keep this import exactly here, it's necessar from assignments.schema.mutations import AssignmentMutations from assignments.schema.queries import AssignmentsQuery -from book.schema.mutations import BookMutations +from books.schema.mutations import BookMutations from filteredbook.schema import BookQuery from objectives.schema import ObjectivesQuery from rooms.mutations import RoomMutations diff --git a/server/assignments/migrations/0001_initial.py b/server/assignments/migrations/0001_initial.py index 069e0f80..84aa5cc1 100644 --- a/server/assignments/migrations/0001_initial.py +++ b/server/assignments/migrations/0001_initial.py @@ -1,6 +1,5 @@ -# Generated by Django 2.0.6 on 2018-09-27 09:45 +# Generated by Django 2.0.6 on 2018-10-04 07:39 -from django.conf import settings from django.db import migrations, models import django.db.models.deletion import django_extensions.db.fields @@ -11,7 +10,6 @@ class Migration(migrations.Migration): initial = True dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ @@ -38,7 +36,8 @@ class Migration(migrations.Migration): ('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')), ('text', models.TextField(blank=True)), - ('document', models.FilePathField(null=True)), + ('document', models.URLField(blank=True, default='', max_length=255)), + ('final', models.BooleanField(default=False)), ], options={ 'ordering': ('-modified', '-created'), @@ -61,16 +60,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='studentsubmission', name='assignment', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='assignments.Assignment'), - ), - migrations.AddField( - model_name='studentsubmission', - name='student', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='assignment', - name='owner', - field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='submissions', to='assignments.Assignment'), ), ] diff --git a/server/assignments/migrations/0002_auto_20181001_1254.py b/server/assignments/migrations/0002_auto_20181001_1254.py deleted file mode 100644 index 6cd08f5a..00000000 --- a/server/assignments/migrations/0002_auto_20181001_1254.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 2.0.6 on 2018-10-01 12:54 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('assignments', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='studentsubmission', - name='final', - field=models.BooleanField(default=False), - ), - migrations.AlterField( - model_name='studentsubmission', - name='assignment', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='submissions', to='assignments.Assignment'), - ), - ] diff --git a/server/assignments/migrations/0002_auto_20181004_0739.py b/server/assignments/migrations/0002_auto_20181004_0739.py new file mode 100644 index 00000000..0c40f2c4 --- /dev/null +++ b/server/assignments/migrations/0002_auto_20181004_0739.py @@ -0,0 +1,28 @@ +# Generated by Django 2.0.6 on 2018-10-04 07:39 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('assignments', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='studentsubmission', + name='student', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name='assignment', + name='owner', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/server/assignments/migrations/0003_auto_20181002_1435.py b/server/assignments/migrations/0003_auto_20181002_1435.py deleted file mode 100644 index 47554273..00000000 --- a/server/assignments/migrations/0003_auto_20181002_1435.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.0.6 on 2018-10-02 14:35 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('assignments', '0002_auto_20181001_1254'), - ] - - operations = [ - migrations.AlterField( - model_name='studentsubmission', - name='document', - field=models.URLField(blank=True, default='', max_length=255), - ), - ] diff --git a/server/book/migrations/0002_auto_20180913_0738.py b/server/book/migrations/0002_auto_20180913_0738.py deleted file mode 100644 index 04154d44..00000000 --- a/server/book/migrations/0002_auto_20180913_0738.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 2.0.6 on 2018-09-13 07:38 - -from django.db import migrations, models -import wagtail.core.blocks -import wagtail.core.fields -import wagtail.images.blocks - - -class Migration(migrations.Migration): - - dependencies = [ - ('user', '0001_initial'), - ('book', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='contentblock', - name='hidden_for', - field=models.ManyToManyField(to='user.UserGroup'), - ), - migrations.AlterField( - model_name='contentblock', - name='contents', - field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='doc-full')), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='placeholder')), ('student_entry', wagtail.core.blocks.StructBlock([('task_text', wagtail.core.blocks.RichTextBlock())], icon='download')), ('image_block', wagtail.images.blocks.ImageChooserBlock(icon='image')), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='link')), ('task', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())], icon='media')), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())], icon='doc-full'))], blank=True, null=True), - ), - ] diff --git a/server/book/migrations/0003_auto_20180918_1605.py b/server/book/migrations/0003_auto_20180918_1605.py deleted file mode 100644 index 5c3cf5e4..00000000 --- a/server/book/migrations/0003_auto_20180918_1605.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 2.0.6 on 2018-09-18 16:05 - -from django.db import migrations -import wagtail.core.blocks -import wagtail.core.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('book', '0002_auto_20180913_0738'), - ] - - operations = [ - migrations.AlterField( - model_name='contentblock', - name='contents', - field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='doc-full')), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='placeholder')), ('student_entry', wagtail.core.blocks.StructBlock([('task_text', wagtail.core.blocks.RichTextBlock())], icon='download')), ('image_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='image')), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='link')), ('task', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())], icon='media')), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())], icon='doc-full'))], blank=True, null=True), - ), - ] diff --git a/server/book/migrations/0004_auto_20180927_0945.py b/server/book/migrations/0004_auto_20180927_0945.py deleted file mode 100644 index f1a5c8c6..00000000 --- a/server/book/migrations/0004_auto_20180927_0945.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 2.0.6 on 2018-09-27 09:45 - -from django.db import migrations -import wagtail.core.blocks -import wagtail.core.fields -import wagtail.images.blocks - - -class Migration(migrations.Migration): - - dependencies = [ - ('book', '0003_auto_20180918_1605'), - ] - - operations = [ - migrations.AlterField( - model_name='contentblock', - name='contents', - field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('student_entry', wagtail.core.blocks.StructBlock([('task_text', wagtail.core.blocks.RichTextBlock())])), ('image_block', wagtail.images.blocks.ImageChooserBlock()), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('task', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True), - ), - ] diff --git a/server/book/migrations/0005_auto_20181001_1254.py b/server/book/migrations/0005_auto_20181001_1254.py deleted file mode 100644 index 12f4321a..00000000 --- a/server/book/migrations/0005_auto_20181001_1254.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 2.0.6 on 2018-10-01 12:54 - -from django.db import migrations -import wagtail.core.blocks -import wagtail.core.fields -import wagtail.images.blocks - - -class Migration(migrations.Migration): - - dependencies = [ - ('book', '0004_auto_20180927_0945'), - ] - - operations = [ - migrations.AlterField( - model_name='contentblock', - name='contents', - field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.core.blocks.IntegerBlock())])), ('image_block', wagtail.images.blocks.ImageChooserBlock()), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('task', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True), - ), - ] diff --git a/server/book/migrations/0006_auto_20181002_1359.py b/server/book/migrations/0006_auto_20181002_1359.py deleted file mode 100644 index cd4f89fd..00000000 --- a/server/book/migrations/0006_auto_20181002_1359.py +++ /dev/null @@ -1,21 +0,0 @@ -# Generated by Django 2.0.6 on 2018-10-02 13:59 - -from django.db import migrations -import wagtail.core.blocks -import wagtail.core.fields -import wagtail.images.blocks - - -class Migration(migrations.Migration): - - dependencies = [ - ('book', '0005_auto_20181001_1254'), - ] - - operations = [ - migrations.AlterField( - model_name='contentblock', - name='contents', - field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.core.blocks.IntegerBlock())])), ('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())])), ('task', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True), - ), - ] diff --git a/server/book/migrations/0007_chapter_description.py b/server/book/migrations/0007_chapter_description.py deleted file mode 100644 index e84dc126..00000000 --- a/server/book/migrations/0007_chapter_description.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.0.6 on 2018-10-03 16:44 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('book', '0006_auto_20181002_1359'), - ] - - operations = [ - migrations.AddField( - model_name='chapter', - name='description', - field=models.TextField(blank=True), - ), - ] diff --git a/server/book/__init__.py b/server/books/__init__.py similarity index 100% rename from server/book/__init__.py rename to server/books/__init__.py diff --git a/server/book/admin.py b/server/books/admin.py similarity index 89% rename from server/book/admin.py rename to server/books/admin.py index 9f375922..194e4782 100644 --- a/server/book/admin.py +++ b/server/books/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin -from book.models import Book, Topic, Module, ContentBlock -from book.models.chapter import Chapter +from books.models import Book, Topic, Module, ContentBlock +from books.models.chapter import Chapter from core.wagtail_utils import wagtail_parent_filter diff --git a/server/book/apps.py b/server/books/apps.py similarity index 77% rename from server/book/apps.py rename to server/books/apps.py index af5749dc..27697045 100644 --- a/server/book/apps.py +++ b/server/books/apps.py @@ -2,4 +2,4 @@ from django.apps import AppConfig class BookConfig(AppConfig): - name = 'book' + name = 'books' diff --git a/server/book/blocks.py b/server/books/blocks.py similarity index 100% rename from server/book/blocks.py rename to server/books/blocks.py diff --git a/server/book/factories.py b/server/books/factories.py similarity index 97% rename from server/book/factories.py rename to server/books/factories.py index af353bf9..d30515db 100644 --- a/server/book/factories.py +++ b/server/books/factories.py @@ -7,8 +7,8 @@ from factory import CREATE_STRATEGY from wagtail.core.rich_text import RichText from assignments.models import Assignment -from book.blocks import BasicKnowledgeBlock, ImageUrlBlock, LinkBlock, AssignmentBlock, VideoBlock -from book.models import Book, Topic, Module, Chapter, ContentBlock, TextBlock +from books.blocks import BasicKnowledgeBlock, ImageUrlBlock, LinkBlock, AssignmentBlock, VideoBlock +from books.models import Book, Topic, Module, Chapter, ContentBlock, TextBlock from core.factories import BasePageFactory, fake, DummyImageFactory, fake_paragraph, fake_title diff --git a/server/book/migrations/0001_initial.py b/server/books/migrations/0001_initial.py similarity index 77% rename from server/book/migrations/0001_initial.py rename to server/books/migrations/0001_initial.py index 07e4b43c..7fce7e33 100644 --- a/server/book/migrations/0001_initial.py +++ b/server/books/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2018-09-11 14:14 +# Generated by Django 2.0.6 on 2018-10-04 07:39 from django.db import migrations, models import django.db.models.deletion @@ -32,6 +32,7 @@ class Migration(migrations.Migration): name='Chapter', 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)), ], options={ 'verbose_name': 'Kapitel', @@ -43,7 +44,7 @@ class Migration(migrations.Migration): name='ContentBlock', 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')), - ('contents', wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='doc-full')), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='placeholder')), ('student_entry', wagtail.core.blocks.StructBlock([('task_text', wagtail.core.blocks.RichTextBlock())], icon='download')), ('image_block', wagtail.images.blocks.ImageChooserBlock(icon='image')), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='link')), ('task', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='tick'))], blank=True, null=True)), + ('contents', wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())])), ('basic_knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('assignment', wagtail.core.blocks.StructBlock([('assignment_id', wagtail.core.blocks.IntegerBlock())])), ('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())])), ('task', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='tick')), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('document_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True)), ('type', models.CharField(choices=[('plain', 'Normal'), ('yellow', 'Gelb'), ('green', 'GrĂ¼n'), ('blue', 'Blau')], default='plain', max_length=100)), ], options={ diff --git a/server/books/migrations/0002_contentblock_hidden_for.py b/server/books/migrations/0002_contentblock_hidden_for.py new file mode 100644 index 00000000..6d14f6f3 --- /dev/null +++ b/server/books/migrations/0002_contentblock_hidden_for.py @@ -0,0 +1,21 @@ +# Generated by Django 2.0.6 on 2018-10-04 07:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('user', '0001_initial'), + ('books', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='contentblock', + name='hidden_for', + field=models.ManyToManyField(to='user.UserGroup'), + ), + ] diff --git a/server/book/migrations/__init__.py b/server/books/migrations/__init__.py similarity index 100% rename from server/book/migrations/__init__.py rename to server/books/migrations/__init__.py diff --git a/server/book/models/__init__.py b/server/books/models/__init__.py similarity index 100% rename from server/book/models/__init__.py rename to server/books/models/__init__.py diff --git a/server/book/models/book.py b/server/books/models/book.py similarity index 94% rename from server/book/models/book.py rename to server/books/models/book.py index 2ba40052..383de484 100644 --- a/server/book/models/book.py +++ b/server/books/models/book.py @@ -27,4 +27,4 @@ class Book(StrictHierarchyPage): template = 'generic_page.html' - subpage_types = ['book.Topic'] + subpage_types = ['books.Topic'] diff --git a/server/book/models/chapter.py b/server/books/models/chapter.py similarity index 90% rename from server/book/models/chapter.py rename to server/books/models/chapter.py index a9559139..7e340b4b 100644 --- a/server/book/models/chapter.py +++ b/server/books/models/chapter.py @@ -31,6 +31,6 @@ class Chapter(StrictHierarchyPage): template = 'generic_page.html' - parent_page_types = ['book.Module'] - subpage_types = ['book.ContentBlock'] + parent_page_types = ['books.Module'] + subpage_types = ['books.ContentBlock'] diff --git a/server/book/models/contentblock.py b/server/books/models/contentblock.py similarity index 92% rename from server/book/models/contentblock.py rename to server/books/models/contentblock.py index d143a2f5..c29753d8 100644 --- a/server/book/models/contentblock.py +++ b/server/books/models/contentblock.py @@ -5,7 +5,7 @@ from wagtail.admin.edit_handlers import FieldPanel, TabbedInterface, ObjectList, from wagtail.core.fields import StreamField from wagtail.images.blocks import ImageChooserBlock -from book.blocks import TextBlock, BasicKnowledgeBlock, LinkBlock, VideoBlock, DocumentBlock, \ +from books.blocks import TextBlock, BasicKnowledgeBlock, LinkBlock, VideoBlock, DocumentBlock, \ ImageUrlBlock, AssignmentBlock from core.wagtail_utils import StrictHierarchyPage from user.models import UserGroup @@ -67,5 +67,5 @@ class ContentBlock(StrictHierarchyPage): template = 'generic_page.html' - parent_page_types = ['book.Chapter'] + parent_page_types = ['books.Chapter'] subpage_types = [] diff --git a/server/book/models/module.py b/server/books/models/module.py similarity index 92% rename from server/book/models/module.py rename to server/books/models/module.py index 6866db6c..b6ebc0de 100644 --- a/server/book/models/module.py +++ b/server/books/models/module.py @@ -5,7 +5,7 @@ from wagtail.admin.edit_handlers import FieldPanel, TabbedInterface, ObjectList from wagtail.core.fields import RichTextField from wagtail.images.edit_handlers import ImageChooserPanel -from book.blocks import DEFAULT_RICH_TEXT_FEATURES +from books.blocks import DEFAULT_RICH_TEXT_FEATURES from core.wagtail_utils import StrictHierarchyPage logger = logging.getLogger(__name__) @@ -51,8 +51,8 @@ class Module(StrictHierarchyPage): template = 'generic_page.html' - parent_page_types = ['book.Topic'] - subpage_types = ['book.Chapter'] + parent_page_types = ['books.Topic'] + subpage_types = ['books.Chapter'] def get_child_ids(self): return self.get_children().values_list('id', flat=True) diff --git a/server/book/models/topic.py b/server/books/models/topic.py similarity index 88% rename from server/book/models/topic.py rename to server/books/models/topic.py index e2d8d0d0..d3c89890 100644 --- a/server/book/models/topic.py +++ b/server/books/models/topic.py @@ -4,7 +4,7 @@ from django.db import models from wagtail.admin.edit_handlers import FieldPanel, TabbedInterface, ObjectList from wagtail.core.fields import RichTextField -from book.blocks import DEFAULT_RICH_TEXT_FEATURES +from books.blocks import DEFAULT_RICH_TEXT_FEATURES from core.wagtail_utils import StrictHierarchyPage logger = logging.getLogger(__name__) @@ -37,5 +37,5 @@ class Topic(StrictHierarchyPage): template = 'generic_page.html' - parent_page_types = ['book.Book'] - subpage_types = ['book.Module'] + parent_page_types = ['books.Book'] + subpage_types = ['books.Module'] diff --git a/server/book/schema/__init__.py b/server/books/schema/__init__.py similarity index 100% rename from server/book/schema/__init__.py rename to server/books/schema/__init__.py diff --git a/server/book/schema/inputs.py b/server/books/schema/inputs.py similarity index 100% rename from server/book/schema/inputs.py rename to server/books/schema/inputs.py diff --git a/server/book/schema/mutations/__init__.py b/server/books/schema/mutations/__init__.py similarity index 100% rename from server/book/schema/mutations/__init__.py rename to server/books/schema/mutations/__init__.py diff --git a/server/book/schema/mutations/contentblock.py b/server/books/schema/mutations/contentblock.py similarity index 96% rename from server/book/schema/mutations/contentblock.py rename to server/books/schema/mutations/contentblock.py index be633f44..e4deab0f 100644 --- a/server/book/schema/mutations/contentblock.py +++ b/server/books/schema/mutations/contentblock.py @@ -5,9 +5,9 @@ from django.core.exceptions import ValidationError from graphene import relay from api.utils import get_object, get_errors -from book.models import ContentBlock, Chapter, UserGroup -from book.schema.inputs import ContentBlockInput -from book.schema.queries import ContentBlockNode +from books.models import ContentBlock, Chapter, UserGroup +from books.schema.inputs import ContentBlockInput +from books.schema.queries import ContentBlockNode from .utils import handle_content_block diff --git a/server/book/schema/mutations/utils.py b/server/books/schema/mutations/utils.py similarity index 100% rename from server/book/schema/mutations/utils.py rename to server/books/schema/mutations/utils.py diff --git a/server/book/schema/queries.py b/server/books/schema/queries.py similarity index 100% rename from server/book/schema/queries.py rename to server/books/schema/queries.py diff --git a/server/book/tests/__init__.py b/server/books/tests/__init__.py similarity index 100% rename from server/book/tests/__init__.py rename to server/books/tests/__init__.py diff --git a/server/book/tests/test_module_mutations.py b/server/books/tests/test_module_mutations.py similarity index 97% rename from server/book/tests/test_module_mutations.py rename to server/books/tests/test_module_mutations.py index d5daf07b..8058c804 100644 --- a/server/book/tests/test_module_mutations.py +++ b/server/books/tests/test_module_mutations.py @@ -4,8 +4,8 @@ from graphql_relay import to_global_id from api.schema import schema from api.utils import get_graphql_mutation, get_object -from book.factories import ContentBlockFactory -from book.models import ContentBlock +from books.factories import ContentBlockFactory +from books.models import ContentBlock class NewContentBlockMutationTest(TestCase): diff --git a/server/core/management/commands/dummy_data.py b/server/core/management/commands/dummy_data.py index 803a220d..cec12668 100644 --- a/server/core/management/commands/dummy_data.py +++ b/server/core/management/commands/dummy_data.py @@ -9,7 +9,7 @@ from django.core.management import BaseCommand from django.db import connection from wagtail.core.models import Page -from book.factories import BookFactory, TopicFactory, ModuleFactory, ChapterFactory, ContentBlockFactory +from books.factories import BookFactory, TopicFactory, ModuleFactory, ChapterFactory, ContentBlockFactory from core.factories import UserFactory from objectives.factories import ObjectiveGroupFactory, ObjectiveFactory diff --git a/server/core/settings.py b/server/core/settings.py index e536d0e8..243a4171 100644 --- a/server/core/settings.py +++ b/server/core/settings.py @@ -46,7 +46,7 @@ INSTALLED_APPS = [ 'core', 'api', 'user', - 'book', + 'books', 'objectives', 'rooms', 'filteredbook', diff --git a/server/filteredbook/migrations/0001_initial.py b/server/filteredbook/migrations/0001_initial.py index a8ea65c1..a2b250f9 100644 --- a/server/filteredbook/migrations/0001_initial.py +++ b/server/filteredbook/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2018-09-11 14:14 +# Generated by Django 2.0.6 on 2018-10-04 07:39 from django.db import migrations, models import django.db.models.deletion @@ -9,7 +9,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('book', '0001_initial'), + ('books', '0001_initial'), ] operations = [ @@ -17,7 +17,7 @@ class Migration(migrations.Migration): name='Visibility', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('content_block', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='book.ContentBlock')), + ('content_block', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='visible_to', to='books.ContentBlock')), ], options={ 'verbose_name': 'Visibility', diff --git a/server/filteredbook/migrations/0002_visibility_user_group.py b/server/filteredbook/migrations/0002_visibility_user_group.py index a9aa20f2..56a9e1cf 100644 --- a/server/filteredbook/migrations/0002_visibility_user_group.py +++ b/server/filteredbook/migrations/0002_visibility_user_group.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2018-09-11 14:14 +# Generated by Django 2.0.6 on 2018-10-04 07:39 from django.db import migrations, models import django.db.models.deletion @@ -9,8 +9,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('filteredbook', '0001_initial'), ('user', '0001_initial'), + ('filteredbook', '0001_initial'), ] operations = [ diff --git a/server/filteredbook/migrations/0003_auto_20180911_1501.py b/server/filteredbook/migrations/0003_auto_20180911_1501.py deleted file mode 100644 index 203c4fa4..00000000 --- a/server/filteredbook/migrations/0003_auto_20180911_1501.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 2.0.6 on 2018-09-11 15:01 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('filteredbook', '0002_visibility_user_group'), - ] - - operations = [ - migrations.AlterField( - model_name='visibility', - name='content_block', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='visible_to', to='book.ContentBlock'), - ), - ] diff --git a/server/filteredbook/models.py b/server/filteredbook/models.py index 13a82d0a..c404a370 100644 --- a/server/filteredbook/models.py +++ b/server/filteredbook/models.py @@ -1,6 +1,6 @@ from django.db import models -from book.models import ContentBlock +from books.models import ContentBlock from user.models import UserGroup diff --git a/server/filteredbook/schema.py b/server/filteredbook/schema.py index 23475ffb..7304734e 100644 --- a/server/filteredbook/schema.py +++ b/server/filteredbook/schema.py @@ -7,8 +7,8 @@ from graphene_django import DjangoObjectType from graphene_django.filter import DjangoFilterConnectionField from api.utils import get_object -from book.models import Book, Topic, Module, Chapter, ContentBlock -from book.schema.queries import BookNode, TopicNode, ModuleNode, ContentBlockNode +from books.models import Book, Topic, Module, Chapter, ContentBlock +from books.schema.queries import BookNode, TopicNode, ModuleNode, ContentBlockNode class FilteredChapterNode(DjangoObjectType): diff --git a/server/objectives/factories.py b/server/objectives/factories.py index a04c7ca3..18e2d330 100644 --- a/server/objectives/factories.py +++ b/server/objectives/factories.py @@ -3,7 +3,7 @@ import random import factory from django.contrib.auth import get_user_model -from book.factories import ModuleFactory +from books.factories import ModuleFactory from core.factories import fake from objectives.models import ObjectiveGroup, Objective diff --git a/server/objectives/migrations/0001_initial.py b/server/objectives/migrations/0001_initial.py index 948e8d57..c08a2055 100644 --- a/server/objectives/migrations/0001_initial.py +++ b/server/objectives/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2018-09-11 14:14 +# Generated by Django 2.0.6 on 2018-10-04 07:39 from django.db import migrations, models import django.db.models.deletion diff --git a/server/objectives/migrations/0002_auto_20180911_1414.py b/server/objectives/migrations/0002_auto_20181004_0739.py similarity index 87% rename from server/objectives/migrations/0002_auto_20180911_1414.py rename to server/objectives/migrations/0002_auto_20181004_0739.py index 28647a1d..f7ad2442 100644 --- a/server/objectives/migrations/0002_auto_20180911_1414.py +++ b/server/objectives/migrations/0002_auto_20181004_0739.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2018-09-11 14:14 +# Generated by Django 2.0.6 on 2018-10-04 07:39 from django.conf import settings from django.db import migrations, models @@ -10,9 +10,9 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('book', '0001_initial'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('books', '0002_contentblock_hidden_for'), ('objectives', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ @@ -24,7 +24,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='objectivegroup', name='module', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='objective_groups', to='book.Module'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='objective_groups', to='books.Module'), ), migrations.AddField( model_name='objectivegroup', diff --git a/server/objectives/models.py b/server/objectives/models.py index cac1738c..5d986d0d 100644 --- a/server/objectives/models.py +++ b/server/objectives/models.py @@ -2,7 +2,7 @@ from django.contrib.auth import get_user_model from django.db import models from django_extensions.db.models import TitleDescriptionModel -from book.models import Module +from books.models import Module class ObjectiveGroup(models.Model): diff --git a/server/rooms/factories.py b/server/rooms/factories.py index 47aff693..c2a69a50 100644 --- a/server/rooms/factories.py +++ b/server/rooms/factories.py @@ -6,8 +6,8 @@ from django.contrib.auth import get_user_model from factory import CREATE_STRATEGY from wagtail.core.rich_text import RichText -from book.blocks import ImageUrlBlock -from book.factories import TextBlockFactory, BasicKnowledgeBlockFactory, ImageUrlBlockFactory, LinkBlockFactory +from books.blocks import ImageUrlBlock +from books.factories import TextBlockFactory, BasicKnowledgeBlockFactory, ImageUrlBlockFactory, LinkBlockFactory from core.factories import fake, fake_paragraph from rooms.models import Room, RoomEntry from user.models import UserGroup diff --git a/server/rooms/inputs.py b/server/rooms/inputs.py index 227ff64b..c7f22159 100644 --- a/server/rooms/inputs.py +++ b/server/rooms/inputs.py @@ -1,7 +1,7 @@ import graphene from graphene import InputObjectType -from book.schema.inputs import ContentElementInput +from books.schema.inputs import ContentElementInput from user.inputs import UserGroupInput diff --git a/server/rooms/migrations/0001_initial.py b/server/rooms/migrations/0001_initial.py index 11d47954..dd858b7c 100644 --- a/server/rooms/migrations/0001_initial.py +++ b/server/rooms/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2018-09-11 14:14 +# Generated by Django 2.0.6 on 2018-10-04 07:39 from django.db import migrations, models import django_extensions.db.fields @@ -36,7 +36,7 @@ class Migration(migrations.Migration): ('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')), ('subtitle', models.CharField(blank=True, max_length=255)), - ('contents', wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())], icon='doc-full')), ('image_url', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='image')), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())], icon='link'))], blank=True, null=True)), + ('contents', wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())])), ('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())])), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True)), ], options={ 'verbose_name': 'Raumeintrag', diff --git a/server/rooms/migrations/0002_auto_20180911_1414.py b/server/rooms/migrations/0002_auto_20181004_0739.py similarity index 95% rename from server/rooms/migrations/0002_auto_20180911_1414.py rename to server/rooms/migrations/0002_auto_20181004_0739.py index ca05b3ef..bd30e2e7 100644 --- a/server/rooms/migrations/0002_auto_20180911_1414.py +++ b/server/rooms/migrations/0002_auto_20181004_0739.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2018-09-11 14:14 +# Generated by Django 2.0.6 on 2018-10-04 07:39 from django.conf import settings from django.db import migrations, models @@ -10,8 +10,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('user', '0001_initial'), ('rooms', '0001_initial'), + ('user', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] diff --git a/server/rooms/migrations/0003_auto_20180927_0945.py b/server/rooms/migrations/0003_auto_20180927_0945.py deleted file mode 100644 index 4c0ba038..00000000 --- a/server/rooms/migrations/0003_auto_20180927_0945.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 2.0.6 on 2018-09-27 09:45 - -from django.db import migrations -import wagtail.core.blocks -import wagtail.core.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('rooms', '0002_auto_20180911_1414'), - ] - - operations = [ - migrations.AlterField( - model_name='roomentry', - name='contents', - field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())])), ('image_url_block', wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.RichTextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('link_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True), - ), - ] diff --git a/server/rooms/migrations/0004_auto_20181002_1359.py b/server/rooms/migrations/0004_auto_20181002_1359.py deleted file mode 100644 index f4709e50..00000000 --- a/server/rooms/migrations/0004_auto_20181002_1359.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 2.0.6 on 2018-10-02 13:59 - -from django.db import migrations -import wagtail.core.blocks -import wagtail.core.fields - - -class Migration(migrations.Migration): - - dependencies = [ - ('rooms', '0003_auto_20180927_0945'), - ] - - operations = [ - migrations.AlterField( - model_name='roomentry', - name='contents', - field=wagtail.core.fields.StreamField([('text_block', wagtail.core.blocks.StructBlock([('text', wagtail.core.blocks.RichTextBlock())])), ('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())])), ('video_block', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True), - ), - ] diff --git a/server/rooms/models.py b/server/rooms/models.py index 668293ce..c07920d2 100644 --- a/server/rooms/models.py +++ b/server/rooms/models.py @@ -3,8 +3,8 @@ from django.db import models from django_extensions.db.models import TitleDescriptionModel, TitleSlugDescriptionModel from wagtail.core.fields import StreamField -from book.blocks import ImageUrlBlock, LinkBlock, VideoBlock -from book.models import ContentBlock, TextBlock +from books.blocks import ImageUrlBlock, LinkBlock, VideoBlock +from books.models import ContentBlock, TextBlock from user.models import UserGroup diff --git a/server/rooms/serializers.py b/server/rooms/serializers.py index 7e5f9f44..54afc550 100644 --- a/server/rooms/serializers.py +++ b/server/rooms/serializers.py @@ -2,7 +2,7 @@ import json from rest_framework import serializers -from book.schema.mutations.utils import handle_content_block +from books.schema.mutations.utils import handle_content_block from rooms.models import Room, RoomEntry diff --git a/server/user/migrations/0001_initial.py b/server/user/migrations/0001_initial.py index 412c2ded..f1ba8852 100644 --- a/server/user/migrations/0001_initial.py +++ b/server/user/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.0.6 on 2018-09-11 14:14 +# Generated by Django 2.0.6 on 2018-10-04 07:39 from django.conf import settings import django.contrib.auth.models