From c15cde5f9ba39414584e870177e0ab6c0adb58ef Mon Sep 17 00:00:00 2001
From: yourcoke <deinkoks@gmail.com>
Date: Sun, 27 Dec 2020 19:55:38 +0100
Subject: [PATCH] RedeemTokenUserCreateView jetzt auch mit optionaler email.

---
 src/plainui/forms.py                         |  1 +
 src/plainui/jinja2/plainui/redeem_token.html |  1 +
 src/plainui/views.py                         | 11 +++++++++++
 3 files changed, 13 insertions(+)

diff --git a/src/plainui/forms.py b/src/plainui/forms.py
index a8b8013b4..a73ff403c 100644
--- a/src/plainui/forms.py
+++ b/src/plainui/forms.py
@@ -77,6 +77,7 @@ class RedeemTokenAddToUserForm(auth_forms.AuthenticationForm):
 
 
 class RedeemTokenUserCreateForm(auth_forms.UserCreationForm):
+    email = forms.EmailField(required=False, help_text=gettext("optional"))
     class Meta:
         model = PlatformUser
         fields = ("username",)
diff --git a/src/plainui/jinja2/plainui/redeem_token.html b/src/plainui/jinja2/plainui/redeem_token.html
index c0de89b6c..45bd36d8e 100644
--- a/src/plainui/jinja2/plainui/redeem_token.html
+++ b/src/plainui/jinja2/plainui/redeem_token.html
@@ -31,6 +31,7 @@
             {{ form_elements.text(form_create, 'username') }}
             {{ form_elements.password(form_create, 'password1') }}
             {{ form_elements.password(form_create, 'password2') }}
+            {{ form_elements.text(form_create, 'email') }}
             <div class="d-flex">
                 <button type="submit" class="btn btn-primary ml-auto">{{ _("Create a new Account with your Ticket")}}</button>
             </div>
diff --git a/src/plainui/views.py b/src/plainui/views.py
index 566ad2ae0..c615938be 100644
--- a/src/plainui/views.py
+++ b/src/plainui/views.py
@@ -533,6 +533,17 @@ class RedeemTokenUserCreateView(ConferenceRequiredMixin, FormView):
                 user = form.save()
                 ConferenceMemberTicket.redeem_pretix_ticket(self.conf, user, form.cleaned_data['token'])
                 ConferenceMember(conference=self.conf, user=user).save()
+
+                # TODO: Verifiy mail
+                mail_channel = UserCommunicationChannel.objects.create(
+                    channel = UserCommunicationChannel.Channel.MAIL,
+                    is_verified = True,
+                    user = user
+                )
+                mail_channel.address = form.cleaned_data['email']
+                mail_channel.save()
+                messages.success(self.request, gettext("eMail added."))
+
                 login(self.request, user, backend='django.contrib.auth.backends.ModelBackend')
                 return HttpResponseRedirect(self.get_success_url())
         except TicketValidationError as e:
-- 
GitLab