From 90daf7691fff822d99150432aebf9b1b1dfb20ba Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Fri, 28 Sep 2018 10:56:31 -0500
Subject: [PATCH] Fixes to web API form for superevents list

Changing superevents serializer to use text input fields for
'preferred_event' and 'events'.  The 'events' field also will now
accept a comma-separated list.  This prevents timeout errors when
trying to render all the options for events in the form and speeds
up page load times significantly for this view.
---
 gracedb/api/v1/superevents/serializers.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gracedb/api/v1/superevents/serializers.py b/gracedb/api/v1/superevents/serializers.py
index 9ffaac4fc..0961ed1b6 100644
--- a/gracedb/api/v1/superevents/serializers.py
+++ b/gracedb/api/v1/superevents/serializers.py
@@ -40,7 +40,8 @@ class SupereventSerializer(serializers.ModelSerializer):
     # Fields
     submitter = serializers.SlugRelatedField(slug_field='username',
         read_only=True)
-    preferred_event = EventGraceidField(required=True)
+    preferred_event = EventGraceidField(required=True,
+        style={'base_template': 'input.html'})
     created = serializers.DateTimeField(format=settings.GRACE_STRFTIME_FORMAT,
         read_only=True)
     category = ChoiceDisplayField(required=True,
@@ -56,7 +57,8 @@ class SupereventSerializer(serializers.ModelSerializer):
     # creation)
     user = serializers.HiddenField(write_only=True,
         default=serializers.CurrentUserDefault())
-    events = EventGraceidField(many=True, required=False, write_only=True)
+    events = CommaSeparatedOrListField(required=False, write_only=True,
+        child=EventGraceidField())
 
     class Meta:
         model = Superevent
-- 
GitLab