Add module reference to survey

This commit is contained in:
Ramon Wenger 2019-09-09 14:03:04 +02:00
parent 9e4784e5d8
commit 2af5749311
3 changed files with 33 additions and 0 deletions

View File

@ -84,3 +84,13 @@ class ContentBlock(StrictHierarchyPage):
@property
def module(self):
return self.get_parent().get_parent().specific
def save(self, *args, **kwargs):
for type, content_block, _ in self.contents.stream_data:
if type == 'survey':
module = self.module
survey = content_block['survey_id']
if survey.module != module:
survey.module = module
survey.save()
super().save(*args, **kwargs)

View File

@ -0,0 +1,20 @@
# Generated by Django 2.0.6 on 2019-09-09 09:34
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('books', '0013_auto_20190808_0649'),
('surveys', '0003_auto_20190704_1234'),
]
operations = [
migrations.AddField(
model_name='survey',
name='module',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='surveys', to='books.Module'),
),
]

View File

@ -7,11 +7,14 @@ from wagtail.snippets.models import register_snippet
@register_snippet
class Survey(models.Model):
title = models.CharField(max_length=255)
module = models.ForeignKey('books.Module', related_name='surveys', on_delete=models.CASCADE, null=True,
blank=True)
data = JSONField()
def __str__(self):
return self.title
class Answer(models.Model):
owner = models.ForeignKey(get_user_model(), on_delete=models.CASCADE, related_name='answers')
data = JSONField()