Skip to content
Snippets Groups Projects

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

All threads resolved!
15 files
+ 155
97
Compare changes
  • Side-by-side
  • Inline
Files
15
+ 18
0
@@ -14,6 +14,10 @@ class DeletionOfDoneAssignmentsNotPermitted(Exception):
@@ -14,6 +14,10 @@ class DeletionOfDoneAssignmentsNotPermitted(Exception):
pass
pass
 
class CanOnlyCallFinishOnUnfinishedAssignments(Exception):
 
pass
 
 
class TutorSubmissionAssignment(models.Model):
class TutorSubmissionAssignment(models.Model):
assignment_id = models.UUIDField(primary_key=True,
assignment_id = models.UUIDField(primary_key=True,
@@ -32,6 +36,20 @@ class TutorSubmissionAssignment(models.Model):
@@ -32,6 +36,20 @@ class TutorSubmissionAssignment(models.Model):
return (f'{self.subscription.owner} assigned to {self.submission}'
return (f'{self.subscription.owner} assigned to {self.submission}'
f' (done={self.is_done})')
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):
def delete(self, *args, **kwargs):
if self.is_done:
if self.is_done:
raise DeletionOfDoneAssignmentsNotPermitted()
raise DeletionOfDoneAssignmentsNotPermitted()
Loading