Skip to content
Snippets Groups Projects

Resolve "Updating own past feedback sets other tutors assignment to is_done=True"

Files
15
+ 18
0
@@ -14,6 +14,10 @@ class DeletionOfDoneAssignmentsNotPermitted(Exception):
pass
class CanOnlyCallFinishOnUnfinishedAssignments(Exception):
pass
class TutorSubmissionAssignment(models.Model):
assignment_id = models.UUIDField(primary_key=True,
@@ -32,6 +36,20 @@ class TutorSubmissionAssignment(models.Model):
return (f'{self.subscription.owner} assigned to {self.submission}'
f' (done={self.is_done})')
def finish(self):
self.refresh_from_db()
if self.is_done:
raise CanOnlyCallFinishOnUnfinishedAssignments()
meta = self.submission.meta
# TODO add reviewer final
meta.feedback_authors.add(self.subscription.owner)
meta.done_assignments += 1
meta.has_active_assignment = False
self.is_done = True
self.save()
meta.save()
def delete(self, *args, **kwargs):
if self.is_done:
raise DeletionOfDoneAssignmentsNotPermitted()
Loading