From 1ff181d630e89d9052f4d71025d7225f83b89046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81bastiaan=20Versteeg?= Date: Fri, 30 Nov 2018 23:09:26 +0100 Subject: [PATCH] Handle update of present/payment fields separately --- website/events/api/viewsets.py | 8 +++++++- website/events/services.py | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/website/events/api/viewsets.py b/website/events/api/viewsets.py index 9253b66c..f0ea3c02 100644 --- a/website/events/api/viewsets.py +++ b/website/events/api/viewsets.py @@ -187,8 +187,14 @@ class RegistrationViewSet(GenericViewSet, RetrieveModelMixin, return super().get_serializer(*args, **kwargs) def perform_update(self, serializer): - super().perform_update(serializer) registration = serializer.instance + + if services.is_organiser(self.request.member, registration.event): + services.update_registration_by_organiser( + registration, + self.request.member, + serializer.validated_data) + services.update_registration(registration.member, registration.event, serializer.field_values()) diff --git a/website/events/services.py b/website/events/services.py index b124a407..a76ba2b3 100644 --- a/website/events/services.py +++ b/website/events/services.py @@ -233,3 +233,17 @@ def registration_fields(request, member, event): else: raise RegistrationError( _("You are not allowed to update this registration.")) + + +def update_registration_by_organiser(registration, member, data): + if not is_organiser(member, registration.event): + raise RegistrationError( + _("You are not allowed to update this registration.")) + + if 'payment' in data: + registration.payment = data['payment'] + + if 'present' in data: + registration.present = data['present'] + + registration.save() -- GitLab