Add assignment as a snippet

This commit is contained in:
Ramon Wenger 2018-12-05 15:07:25 +01:00
parent ca96676e5c
commit f235d50424
3 changed files with 38 additions and 5 deletions

View File

@ -1,21 +1,28 @@
from django.contrib.auth import get_user_model
from django.db import models
from django_extensions.db.models import TimeStampedModel
from books.models import Module
from wagtail.admin.edit_handlers import FieldPanel
from wagtail.snippets.models import register_snippet
@register_snippet
class Assignment(TimeStampedModel):
title = models.CharField(max_length=255)
assignment = models.TextField()
deleted = models.BooleanField(default=False)
owner = models.ForeignKey(get_user_model(),
on_delete=models.PROTECT) # probably don't want to delete all assignments if a user gets deleted
module = models.ForeignKey(Module, related_name='assignments', on_delete=models.CASCADE)
module = models.ForeignKey('books.Module', related_name='assignments', on_delete=models.CASCADE)
user_created = models.BooleanField(default=False)
panels = [
FieldPanel('title'),
FieldPanel('assignment'),
FieldPanel('module'),
]
def __str__(self):
return self.title
return self.title if not self.user_created else '{} (erstellt von {})'.format(self.title, self.owner)
class StudentSubmission(TimeStampedModel):

View File

@ -1,4 +1,7 @@
from wagtail.core import blocks
from wagtail.snippets.blocks import SnippetChooserBlock
from assignments.models import Assignment
DEFAULT_RICH_TEXT_FEATURES = ['bold', 'italic', 'link', 'ol', 'ul']
@ -43,7 +46,7 @@ class AssignmentBlock(blocks.StructBlock):
class Meta:
icon = 'download'
assignment_id = blocks.IntegerBlock()
assignment_id = SnippetChooserBlock(Assignment)
# 'video_block'

View File

@ -0,0 +1,23 @@
# Generated by Django 2.0.6 on 2018-12-04 16:29
import assignments.models
from django.db import migrations
import wagtail.core.blocks
import wagtail.core.fields
import wagtail.images.blocks
import wagtail.snippets.blocks
class Migration(migrations.Migration):
dependencies = [
('books', '0005_auto_20181025_1155'),
]
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()), ('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))])), ('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),
),
]