From 8a2cab5cf4768e0e6a99c46dc34ba11bff9a29d4 Mon Sep 17 00:00:00 2001 From: Gijs Hendriksen Date: Wed, 9 Oct 2019 19:34:51 +0200 Subject: [PATCH 1/2] Add registration_allowed to events API --- website/events/api/serializers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/events/api/serializers.py b/website/events/api/serializers.py index 3603529e..55f1a575 100644 --- a/website/events/api/serializers.py +++ b/website/events/api/serializers.py @@ -181,7 +181,8 @@ class EventListSerializer(serializers.ModelSerializer): class Meta: model = Event fields = ('pk', 'title', 'description', 'start', 'end', - 'location', 'price', 'registered', 'pizza') + 'location', 'price', 'registered', 'pizza', + 'registration_allowed') description = serializers.SerializerMethodField('_description') registered = serializers.SerializerMethodField('_registered') -- GitLab From 6efdacedff93eec08d5c43892aafe255a6f9af79 Mon Sep 17 00:00:00 2001 From: Gijs Hendriksen Date: Wed, 9 Oct 2019 19:45:05 +0200 Subject: [PATCH 2/2] Resolve 'null' values in events API --- website/events/api/serializers.py | 11 ++++++++--- website/events/models.py | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/website/events/api/serializers.py b/website/events/api/serializers.py index 55f1a575..98816baf 100644 --- a/website/events/api/serializers.py +++ b/website/events/api/serializers.py @@ -193,10 +193,15 @@ class EventListSerializer(serializers.ModelSerializer): def _registered(self, instance): try: - return services.is_user_registered(self.context['request'].user, - instance) + registered = services.is_user_registered( + self.context['request'].user, + instance, + ) + if registered is None: + return False + return registered except AttributeError: - return None + return False def _pizza(self, instance): pizza_events = PizzaEvent.objects.filter(event=instance) diff --git a/website/events/models.py b/website/events/models.py index 35d8fa26..1181fc5f 100644 --- a/website/events/models.py +++ b/website/events/models.py @@ -224,13 +224,13 @@ class Event(models.Model, metaclass=ModelTranslateMeta): @property def registration_allowed(self): now = timezone.now() - return ((self.registration_start or self.registration_end) and - self.registration_end > now >= self.registration_start) + return (bool(self.registration_start or self.registration_end) + and self.registration_end > now >= self.registration_start) @property def cancellation_allowed(self): now = timezone.now() - return ((self.registration_start or self.registration_end) + return (bool(self.registration_start or self.registration_end) and self.registration_start <= now < self.start) def is_pizza_event(self): -- GitLab