From a3458cea3d1c1e407c2b1865e98bf1c4063e20f9 Mon Sep 17 00:00:00 2001 From: FreneticScribbler Date: Mon, 22 May 2023 11:19:08 +0100 Subject: [PATCH] Prevent checking in to cancelled events and dry hires Will close #539 --- PyRIGS/views.py | 2 +- RIGS/models.py | 2 +- RIGS/templates/event_form.html | 2 +- training/tests/test_interaction.py | 2 +- training/tests/test_unit.py | 2 +- versioning/urls.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/PyRIGS/views.py b/PyRIGS/views.py index 372e1af0..1fec6a45 100644 --- a/PyRIGS/views.py +++ b/PyRIGS/views.py @@ -48,7 +48,7 @@ class Index(generic.TemplateView): # Displays the current rig count along with def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['rig_count'] = models.Event.objects.rig_count() - context['now'] = models.Event.objects.events_in_bounds(timezone.now(), timezone.now()) + context['now'] = models.Event.objects.events_in_bounds(timezone.now(), timezone.now()).exclude(dry_hire=True).exclude(status=models.Event.CANCELLED) return context diff --git a/RIGS/models.py b/RIGS/models.py index cc9e6df5..ea18e95e 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -497,7 +497,7 @@ class Event(models.Model, RevisionMixin): earliest = datetime.datetime.combine(self.start_date, datetime.time(00, 00)) tz = pytz.timezone(settings.TIME_ZONE) earliest = tz.localize(earliest) - return not self.dry_hire and earliest <= timezone.now() + return not self.dry_hire and not self.status == Event.CANCELLED and earliest <= timezone.now() objects = EventManager() diff --git a/RIGS/templates/event_form.html b/RIGS/templates/event_form.html index 2102b18f..108ed4e5 100644 --- a/RIGS/templates/event_form.html +++ b/RIGS/templates/event_form.html @@ -209,7 +209,7 @@
diff --git a/training/tests/test_interaction.py b/training/tests/test_interaction.py index bf5e2b13..570e7243 100644 --- a/training/tests/test_interaction.py +++ b/training/tests/test_interaction.py @@ -44,7 +44,7 @@ def test_add_qualification(logged_in_browser, live_server, trainee, supervisor, page.submit() assert page.success qualification = models.TrainingItemQualification.objects.get(trainee=trainee, item=training_item) - assert qualification.supervisor.pk == supervisor.pk + assert qualification.supervisor_id == supervisor.pk assert qualification.date == date assert qualification.notes == "A note" assert qualification.depth == models.TrainingItemQualification.STARTED diff --git a/training/tests/test_unit.py b/training/tests/test_unit.py index 4660c141..173cc9d9 100644 --- a/training/tests/test_unit.py +++ b/training/tests/test_unit.py @@ -29,7 +29,7 @@ def test_add_qualification_reversion(admin_client, trainee, training_item, super assert response.status_code == 302 qual = models.TrainingItemQualification.objects.last() assert qual is not None - assert training_item.pk == qual.item.pk + assert training_itempk == qual.item_id # Ensure only one revision has been created assert Revision.objects.count() == 1 response = admin_client.post(url, {'date': date, 'supervisor': supervisor.pk, 'trainee': trainee.pk, 'item': training_item.pk, 'depth': 1}) diff --git a/versioning/urls.py b/versioning/urls.py index 65081497..34f46fa1 100644 --- a/versioning/urls.py +++ b/versioning/urls.py @@ -38,7 +38,7 @@ for app in [apps.get_app_config(label) for label in ("RIGS", "assets", "training else: urlpatterns += [ path(f'{appname}/{modelname}//history/', - permission_required_with_403('{app.label}.change_{modelname}')( + permission_required_with_403(f'{app.label}.change_{modelname}')( views.VersionHistory.as_view()), name=f'{modelname}_history', kwargs={'model': model, 'app': appname, }), ]