Add solution to assignment model

This commit is contained in:
Ramon Wenger 2019-02-13 16:21:00 +01:00
parent 0b75e14393
commit 3b6284e753
3 changed files with 27 additions and 0 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.0.6 on 2019-02-13 14:57
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('assignments', '0004_auto_20190210_2113'),
]
operations = [
migrations.AddField(
model_name='assignment',
name='solution',
field=models.TextField(blank=True, null=True),
),
]

View File

@ -9,6 +9,7 @@ from wagtail.snippets.models import register_snippet
class Assignment(TimeStampedModel):
title = models.CharField(max_length=255)
assignment = models.TextField()
solution = models.TextField(null=True, blank=True)
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
@ -18,6 +19,7 @@ class Assignment(TimeStampedModel):
panels = [
FieldPanel('title'),
FieldPanel('assignment'),
FieldPanel('solution'),
FieldPanel('module'),
FieldPanel('owner'),
]

View File

@ -3,6 +3,7 @@ from graphene import relay
from graphene_django import DjangoObjectType
from assignments.models import Assignment, StudentSubmission
from books.utils import are_solutions_enabled_for
class StudentSubmissionNode(DjangoObjectType):
@ -29,3 +30,9 @@ class AssignmentNode(DjangoObjectType):
if user.has_perm('users.can_manage_school_class_content'):
return self.submissions.filter(student__in=user.users_in_same_school_class()).filter(final=True)
return []
def resolve_solution(self, info, **kwargs):
if are_solutions_enabled_for(info.context.user, self.module) and self.solution is not None:
return self.solution
else:
return None