diff --git a/src/plainui/forms.py b/src/plainui/forms.py index a8b8013b43d27a0b47abf604543c59513b2006d4..a73ff403cab35634555ccfb18ca2bbb6be0d61a1 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 c0de89b6c6d9b4028607d8b57f80e2c80d154a23..45bd36d8e18c64d204ad3058e8535d9731c52a2d 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 566ad2ae02206091269d47eb023f18c1c7ab4926..c615938beccf954dba5206c5b5b0a181c023c98b 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: