From 8547432583236279a4b575037f2c054eeba4270e Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Tue, 9 Jun 2020 21:04:12 +0000 Subject: [PATCH] Updated the api_new_meeting_registration() endpoint to set all provided fields correctly. Fixes a bug that left some fields unset. - Legacy-Id: 17957 --- ietf/api/views.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ietf/api/views.py b/ietf/api/views.py index 17cd24f00..a8e9550db 100644 --- a/ietf/api/views.py +++ b/ietf/api/views.py @@ -133,7 +133,7 @@ def api_new_meeting_registration(request): # reg_type (In Person, Remote, Hackathon Only) # ticket_type (full_week, one_day, student) # - data = {} + data = {'attended': False, } missing_fields = [] for item in fields: value = request.POST.get(item, None) @@ -158,7 +158,12 @@ def api_new_meeting_registration(request): else: object, created = MeetingRegistration.objects.get_or_create(meeting_id=meeting.pk, email=email) try: - MeetingRegistration.objects.filter(id=object.id).update(**data) + # Set attributes not already in the object + for key in set(data.keys())-set(['apikey', 'meeting', 'email']): + setattr(object, key, data.get(key)) + person = Person.objects.filter(email__address=email) + if person.exists(): + object.person = person.first() object.save() except ValueError as e: return err(400, "Unexpected POST data: %s" % e) @@ -171,4 +176,3 @@ def api_new_meeting_registration(request): return HttpResponse(response, status=202, content_type='text/plain') else: return HttpResponse(status=405) - \ No newline at end of file