From b49c8111abb321ac52b4571b9a481f5ffcdc890e Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Wed, 9 Sep 2020 17:52:03 +0200 Subject: [PATCH 1/3] agendas: add new attributes to Booking (#45293) --- .../migrations/0061_auto_20200909_1752.py | 22 +++++++++++++++++++ chrono/agendas/models.py | 3 +++ chrono/api/views.py | 6 +++++ tests/test_api.py | 6 +++++ 4 files changed, 37 insertions(+) create mode 100644 chrono/agendas/migrations/0061_auto_20200909_1752.py diff --git a/chrono/agendas/migrations/0061_auto_20200909_1752.py b/chrono/agendas/migrations/0061_auto_20200909_1752.py new file mode 100644 index 0000000..c33339a --- /dev/null +++ b/chrono/agendas/migrations/0061_auto_20200909_1752.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2020-09-09 15:52 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('agendas', '0060_auto_20200903_1041'), + ] + + operations = [ + migrations.AddField(model_name='booking', name='form_url', field=models.URLField(blank=True),), + migrations.AddField( + model_name='booking', name='user_email', field=models.EmailField(blank=True, max_length=254), + ), + migrations.AddField( + model_name='booking', name='user_phone_number', field=models.CharField(blank=True, max_length=16), + ), + ] diff --git a/chrono/agendas/models.py b/chrono/agendas/models.py index fbec52e..07af7e3 100644 --- a/chrono/agendas/models.py +++ b/chrono/agendas/models.py @@ -1006,6 +1006,9 @@ class Booking(models.Model): ) user_external_id = models.CharField(max_length=250, blank=True) user_name = models.CharField(max_length=250, blank=True) + user_email = models.EmailField(blank=True) + user_phone_number = models.CharField(max_length=16, blank=True) + form_url = models.URLField(blank=True) backoffice_url = models.URLField(blank=True) cancel_callback_url = models.URLField(blank=True) diff --git a/chrono/api/views.py b/chrono/api/views.py index 54b8299..4f22814 100644 --- a/chrono/api/views.py +++ b/chrono/api/views.py @@ -638,6 +638,9 @@ class SlotSerializer(serializers.Serializer): user_external_id = serializers.CharField(max_length=250, allow_blank=True) user_name = serializers.CharField(max_length=250, allow_blank=True) user_display_label = serializers.CharField(max_length=250, allow_blank=True) + user_email = serializers.CharField(max_length=250, allow_blank=True) + user_phone_number = serializers.CharField(max_length=16, allow_blank=True) + form_url = serializers.CharField(max_length=250, allow_blank=True) backoffice_url = serializers.URLField(allow_blank=True) cancel_callback_url = serializers.URLField(allow_blank=True) count = serializers.IntegerField(min_value=1) @@ -973,6 +976,9 @@ class Fillslots(APIView): label=payload.get('label', ''), user_external_id=payload.get('user_external_id', ''), user_name=payload.get('user_name', ''), + user_email=payload.get('user_email', ''), + user_phone_number=payload.get('user_phone_number', ''), + form_url=payload.get('form_url', ''), backoffice_url=payload.get('backoffice_url', ''), cancel_callback_url=payload.get('cancel_callback_url', ''), user_display_label=payload.get('user_display_label', ''), diff --git a/tests/test_api.py b/tests/test_api.py index a25042e..0522f69 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -774,6 +774,9 @@ def test_booking_api(app, some_data, user): 'user_name': 'bar', 'backoffice_url': 'http://example.net/', 'cancel_callback_url': 'http://example.net/jump/trigger/', + 'user_email': 'bar@bar.com', + 'user_phone_number': '+33123456789', + 'form_url': 'http://example.net/', }, ) booking = Booking.objects.get(id=resp.json['booking_id']) @@ -781,6 +784,9 @@ def test_booking_api(app, some_data, user): assert booking.user_name == 'bar' assert booking.backoffice_url == 'http://example.net/' assert booking.cancel_callback_url == 'http://example.net/jump/trigger/' + assert booking.user_email == 'bar@bar.com' + assert booking.user_phone_number == '+33123456789' + assert booking.form_url == 'http://example.net/' # blank data are OK resp = app.post_json( -- 2.20.1