From 8e00d86023486d1ee2aca57bcfbe7b75da194b1d Mon Sep 17 00:00:00 2001 From: FreneticScribbler Date: Sat, 8 Jan 2022 17:58:06 +0000 Subject: [PATCH] use get_or_create when confirming level quals for cases where unconfirmed levels existed in old data --- training/views.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/training/views.py b/training/views.py index 00128303..5ba84825 100644 --- a/training/views.py +++ b/training/views.py @@ -206,7 +206,13 @@ class ConfirmLevel(generic.RedirectView): @transaction.atomic() @reversion.create_revision() def get_redirect_url(self, *args, **kwargs): - level_qualification = models.TrainingLevelQualification.objects.create(trainee=models.Trainee.objects.get(pk=kwargs['pk']), level=models.TrainingLevel.objects.get(pk=kwargs['level_pk']), confirmed_by=self.request.user, confirmed_on=timezone.now()) + level_qualification, created = models.TrainingLevelQualification.objects.get_or_create(trainee=models.Trainee.objects.get(pk=kwargs['pk']), level=models.TrainingLevel.objects.get(pk=kwargs['level_pk'])) + + if created: + level_qualification.confirmed_by=self.request.user + level_qualification.confirmed_on=timezone.now() + level_qualification.save() + reversion.add_to_revision(level_qualification.trainee) reversion.set_user(self.request.user) return reverse_lazy('trainee_detail', kwargs={'pk': kwargs['pk']})