Skip to content

Commit cc3afbf

Browse files
Merge pull request #3559 from webkom/remove-contact-tracing
Remove contact tracing from event model
2 parents 3d64d9f + 32a6be8 commit cc3afbf

File tree

6 files changed

+16
-90
lines changed

6 files changed

+16
-90
lines changed

lego/apps/events/fixtures/test_events.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@
151151
end_time: "2118-09-01T15:20:30+03:00"
152152
created_by: 1
153153
require_auth: False
154-
use_contact_tracing: True
155154

156155
- model: events.Event
157156
pk: 11
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Generated by Django 4.0.10 on 2024-02-20 19:26
2+
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("events", "0038_event_is_foreign_language"),
9+
]
10+
11+
operations = [
12+
migrations.RemoveField(
13+
model_name="event",
14+
name="use_contact_tracing",
15+
),
16+
]

lego/apps/events/models.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from lego.apps.events.exceptions import (
1717
EventHasClosed,
1818
EventNotReady,
19-
NoPhoneNumber,
2019
NoSuchPool,
2120
NoSuchRegistration,
2221
NotRegisteredPhotoConsents,
@@ -99,7 +98,6 @@ def unregistration_close_time(self) -> date:
9998
youtube_url = CharField(
10099
max_length=200, default="", validators=[youtube_validator], blank=True
101100
)
102-
use_contact_tracing = models.BooleanField(default=False)
103101
legacy_registration_count = models.PositiveIntegerField(default=0)
104102
mazemap_poi = models.PositiveIntegerField(null=True)
105103
responsible_users = ManyToManyField(User)
@@ -312,9 +310,6 @@ def register(self, registration: Registration) -> Registration:
312310
if self.registration_close_time < current_time:
313311
raise EventHasClosed()
314312

315-
if self.use_contact_tracing and user.phone_number is None:
316-
raise NoPhoneNumber()
317-
318313
current_semester = AUTUMN if self.start_time.month > 7 else SPRING
319314
if self.use_consent and not user.has_registered_photo_consents_for_semester(
320315
self.start_time.year,

lego/apps/events/serializers/events.py

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,13 @@
1919
from lego.apps.events.models import Event, Pool, Registration
2020
from lego.apps.events.serializers.pools import (
2121
PoolAdministrateAllergiesSerializer,
22-
PoolAdministrateExportSerializer,
2322
PoolAdministrateSerializer,
2423
PoolCreateAndUpdateSerializer,
2524
PoolReadAuthSerializer,
2625
PoolReadSerializer,
2726
)
2827
from lego.apps.events.serializers.registrations import (
2928
RegistrationReadDetailedAllergiesSerializer,
30-
RegistrationReadDetailedExportSerializer,
3129
RegistrationReadDetailedSerializer,
3230
RegistrationReadSerializer,
3331
)
@@ -188,7 +186,6 @@ class Meta:
188186
"survey",
189187
"use_consent",
190188
"youtube_url",
191-
"use_contact_tracing",
192189
"mazemap_poi",
193190
"responsible_users",
194191
"is_foreign_language",
@@ -339,19 +336,12 @@ class Meta(EventReadSerializer.Meta):
339336
"unregistered",
340337
"waiting_registrations",
341338
"use_consent",
342-
"use_contact_tracing",
343339
"created_by",
344340
"feedback_required",
345341
"responsible_group",
346342
)
347343

348344

349-
class EventAdministrateExportSerializer(EventAdministrateSerializer):
350-
pools = PoolAdministrateExportSerializer(many=True)
351-
unregistered = RegistrationReadDetailedExportSerializer(many=True)
352-
waiting_registrations = RegistrationReadDetailedExportSerializer(many=True)
353-
354-
355345
class EventAdministrateAllergiesSerializer(EventAdministrateSerializer):
356346
pools = PoolAdministrateAllergiesSerializer(many=True)
357347
waiting_registrations = RegistrationReadDetailedAllergiesSerializer(many=True)
@@ -412,7 +402,6 @@ class Meta:
412402
"registration_close_time",
413403
"unregistration_close_time",
414404
"youtube_url",
415-
"use_contact_tracing",
416405
"mazemap_poi",
417406
"responsible_users",
418407
"is_foreign_language",
@@ -429,18 +418,6 @@ def validate(self, data):
429418
"end_time": "User does not have the required permissions for time travel"
430419
}
431420
)
432-
if (
433-
self.instance is not None
434-
and "use_contact_tracing" in data
435-
and data["use_contact_tracing"] != self.instance.use_contact_tracing
436-
and self.instance.registrations.exists()
437-
):
438-
raise serializers.ValidationError(
439-
{
440-
"use_contact_tracing": "Cannot change this field after registration has started"
441-
}
442-
)
443-
444421
return data
445422

446423
def create(self, validated_data):

lego/apps/events/tests/test_events_api.py

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,60 +1362,6 @@ def test_without_group_permission(self):
13621362
self.assertEqual(event_response.status_code, status.HTTP_403_FORBIDDEN)
13631363

13641364

1365-
class ExportInfoTestCase(BaseAPITestCase):
1366-
fixtures = [
1367-
"test_abakus_groups.yaml",
1368-
"test_companies.yaml",
1369-
"test_users.yaml",
1370-
"test_events.yaml",
1371-
]
1372-
1373-
def setUp(self):
1374-
self.abakus_user = User.objects.get(pk=1)
1375-
self.event = Event.objects.get(title="EXPORT_INFO_EVENT")
1376-
self.event.start_time = timezone.now() - timedelta(hours=7)
1377-
self.event.end_time = timezone.now() - timedelta(hours=3)
1378-
self.event.save()
1379-
1380-
def test_with_export_permission(self):
1381-
# Need to apply to the actual event (The one in the db)
1382-
AbakusGroup.objects.get(name="Bedkom").add_user(self.abakus_user)
1383-
self.client.force_authenticate(self.abakus_user)
1384-
1385-
event_response = self.client.get(
1386-
f"{_get_detail_url(self.event.id)}administrate/"
1387-
)
1388-
1389-
attendee_email = self.event.pools.first().registrations.first().user.email
1390-
1391-
self.assertEqual(self.event.use_contact_tracing, True)
1392-
self.assertEqual(event_response.status_code, status.HTTP_200_OK)
1393-
self.assertEqual(
1394-
event_response.json()
1395-
.get("pools")[0]
1396-
.get("registrations")[0]
1397-
.get("user")
1398-
.get("email"),
1399-
attendee_email,
1400-
)
1401-
1402-
def test_without_export_permission(self):
1403-
user = User.objects.get(pk=2)
1404-
AbakusGroup.objects.get(name="Webkom").add_user(user)
1405-
self.client.force_authenticate(user)
1406-
event_response = self.client.get(
1407-
f"{_get_detail_url(self.event.id)}administrate/"
1408-
)
1409-
1410-
self.assertIsNone(
1411-
event_response.json()
1412-
.get("pools")[0]
1413-
.get("registrations")[0]
1414-
.get("user")
1415-
.get("email")
1416-
)
1417-
1418-
14191365
class AllergiesTestCase(BaseAPITestCase):
14201366
fixtures = [
14211367
"test_abakus_groups.yaml",

lego/apps/events/views.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
from lego.apps.events.permissions import EventTypePermission
3737
from lego.apps.events.serializers.events import (
3838
EventAdministrateAllergiesSerializer,
39-
EventAdministrateExportSerializer,
4039
EventAdministrateSerializer,
4140
EventCreateAndUpdateSerializer,
4241
EventReadAuthUserDetailedSerializer,
@@ -236,12 +235,6 @@ def administrate(self, request, *args, **kwargs):
236235
),
237236
)
238237
event = queryset.first()
239-
if (
240-
event.use_contact_tracing
241-
and request.user == event.created_by
242-
and timezone.now() <= event.end_time + timezone.timedelta(days=14)
243-
):
244-
serializer = EventAdministrateExportSerializer
245238
event_data = serializer(event).data
246239
event_data = populate_event_registration_users_with_grade(event_data)
247240
return Response(event_data)

0 commit comments

Comments
 (0)