Add assignment as a snippet
This commit is contained in:
parent
ca96676e5c
commit
f235d50424
|
|
@ -1,21 +1,28 @@
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django_extensions.db.models import TimeStampedModel
|
from django_extensions.db.models import TimeStampedModel
|
||||||
|
from wagtail.admin.edit_handlers import FieldPanel
|
||||||
from books.models import Module
|
from wagtail.snippets.models import register_snippet
|
||||||
|
|
||||||
|
|
||||||
|
@register_snippet
|
||||||
class Assignment(TimeStampedModel):
|
class Assignment(TimeStampedModel):
|
||||||
title = models.CharField(max_length=255)
|
title = models.CharField(max_length=255)
|
||||||
assignment = models.TextField()
|
assignment = models.TextField()
|
||||||
deleted = models.BooleanField(default=False)
|
deleted = models.BooleanField(default=False)
|
||||||
owner = models.ForeignKey(get_user_model(),
|
owner = models.ForeignKey(get_user_model(),
|
||||||
on_delete=models.PROTECT) # probably don't want to delete all assignments if a user gets deleted
|
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)
|
user_created = models.BooleanField(default=False)
|
||||||
|
|
||||||
|
panels = [
|
||||||
|
FieldPanel('title'),
|
||||||
|
FieldPanel('assignment'),
|
||||||
|
FieldPanel('module'),
|
||||||
|
]
|
||||||
|
|
||||||
def __str__(self):
|
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):
|
class StudentSubmission(TimeStampedModel):
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
from wagtail.core import blocks
|
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']
|
DEFAULT_RICH_TEXT_FEATURES = ['bold', 'italic', 'link', 'ol', 'ul']
|
||||||
|
|
||||||
|
|
@ -43,7 +46,7 @@ class AssignmentBlock(blocks.StructBlock):
|
||||||
class Meta:
|
class Meta:
|
||||||
icon = 'download'
|
icon = 'download'
|
||||||
|
|
||||||
assignment_id = blocks.IntegerBlock()
|
assignment_id = SnippetChooserBlock(Assignment)
|
||||||
|
|
||||||
|
|
||||||
# 'video_block'
|
# 'video_block'
|
||||||
|
|
|
||||||
|
|
@ -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),
|
||||||
|
),
|
||||||
|
]
|
||||||
Loading…
Reference in New Issue