skillbox/server/books/blocks.py

112 lines
2.2 KiB
Python

from wagtail.core import blocks
from wagtail.snippets.blocks import SnippetChooserBlock
from assignments.models import Assignment
from surveys.models import Survey
DEFAULT_RICH_TEXT_FEATURES = ['ul']
INSTRUMENTS_RICH_TEXT_FEATURES = ['bold', 'ul']
# link_block
class LinkBlock(blocks.StructBlock):
class Meta:
icon = 'link'
text = blocks.TextBlock()
url = blocks.URLBlock()
# 'text_block' 'solution'
class TextBlock(blocks.StructBlock):
class Meta:
icon = 'doc-full'
text = blocks.RichTextBlock(features=DEFAULT_RICH_TEXT_FEATURES)
# 'basic_knowledge'
class BasicKnowledgeBlock(blocks.StructBlock):
class Meta:
icon = 'placeholder'
description = blocks.RichTextBlock(required=False)
basic_knowledge = blocks.PageChooserBlock(required=True, target_model='basicknowledge.BasicKnowledge')
# 'image_url'
class ImageUrlBlock(blocks.StructBlock):
class Meta:
icon = 'image'
title = blocks.TextBlock()
url = blocks.URLBlock()
# 'assignment'
class AssignmentBlock(blocks.StructBlock):
class Meta:
icon = 'download'
assignment_id = SnippetChooserBlock(Assignment)
# 'survey'
class SurveyBlock(blocks.StructBlock):
class Meta:
icon = 'form'
survey_id = SnippetChooserBlock(Survey)
# 'video_block'
class VideoBlock(blocks.StructBlock):
class Meta:
icon = 'media'
url = blocks.URLBlock()
# 'document_block'
class DocumentBlock(blocks.StructBlock):
class Meta:
icon = 'doc-full'
url = blocks.URLBlock()
class InfogramBlock(blocks.StructBlock):
id = blocks.TextBlock()
title = blocks.TextBlock()
class GeniallyBlock(blocks.StructBlock):
id = blocks.TextBlock()
class SectionTitleBlock(blocks.StructBlock):
text = blocks.TextBlock()
class SubtitleBlock(blocks.StructBlock):
text = blocks.TextBlock()
class InstrumentTextBlock(blocks.StructBlock):
class Meta:
icon = 'doc-full'
text = blocks.RichTextBlock(features=INSTRUMENTS_RICH_TEXT_FEATURES)
class AdminRoomSlugBlock(blocks.StructBlock):
class Meta:
icon = 'link'
title = blocks.TextBlock()
# 'text_block' 'task' 'basic_knowledge' 'student_entry' 'image_block'
#
# url = blocks.URLBlock()
# document = DocumentChooserBlock()