From e2d55ffce27b315f433269d25e25b057ebb778a4 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Fri, 24 Jul 2020 00:41:07 +0300 Subject: [PATCH] Name fields --- webapp/serializers.py | 15 +++++++++++---- webapp/tests/signup_fixture.py | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/webapp/serializers.py b/webapp/serializers.py index 9398595..0fcba22 100644 --- a/webapp/serializers.py +++ b/webapp/serializers.py @@ -12,12 +12,19 @@ class SignupSerializer(serializers.ModelSerializer): def add_extra_fields(self, validated_data): questions = validated_data["signupForm"].questions - validated_data["list_name"] = validated_data["answer"].get(questions[0]["id"], "") + name_ids = list(filter(lambda x: x["type"] == "name", questions)) + email_ids = list(filter(lambda x: x["type"] == "email", questions)) - email_fields = list(filter(lambda x: x["type"] == "email", questions)) - if (len(email_fields) > 0): - email_value = validated_data["answer"].get(email_fields[0]["id"], None) + # Send email to first email field in the form + if (len(email_ids) > 0): + id = email_ids[0]["id"] + email_value = validated_data["answer"].get(id) validated_data["email"] = email_value + # Combine all name fields to list_name + if (len(name_ids) > 0): + # name_value = validated_data["answer"].get(name_fields[0]["id"], None) + all_names = map(lambda x: validated_data["answer"].get(x["id"]), name_ids) + validated_data["list_name"] = " ".join(all_names) def create(self, validated_data): self.add_extra_fields(validated_data) diff --git a/webapp/tests/signup_fixture.py b/webapp/tests/signup_fixture.py index 0593ff0..fecef61 100644 --- a/webapp/tests/signup_fixture.py +++ b/webapp/tests/signup_fixture.py @@ -39,6 +39,7 @@ CBOX_SCHEMA = { "minProperties": 1 } + def createSignupForm(name="Form1", start_time=timezone.now(), end_time=month_from_now(), questions=ALL_QUESTION_TYPES, schema=ALL_QUESTIONS_SCHEMA, visible=True): return SignupForm.objects.create( title=name,