def form_valid(self, form): """Send a connection/confirmation link to the user.""" response = super().form_valid(form) user_email = form.cleaned_data['email'] send_connection_email.delay(user_email) track_goal(self.request.session, settings.GOAL_REGISTER_ID) return response
def form_invalid(self, form): """Handle invalid data provided. If the **only** error is that the provided email is already associated to an account, instead of displaying a "this user already exists" error, we do as if the registration proceeded normally and we send a connction link. """ if len(form.errors) == 1 and \ len(form['email'].errors) == 1 and \ form['email'].errors.as_data()[0].code == 'unique': user_email = form.data['email'] send_connection_email.delay(user_email) return HttpResponseRedirect(self.success_url) else: return super().form_invalid(form)
def form_valid(self, form): if self.request.session.get('USER_EMAIL'): user_email = self.request.session.get('USER_EMAIL') user_organization_type = self.request.session.get('USER_ORGANIZATION_TYPE') elif self.request.user.email: user_email = self.request.user.email user_organization_type = self.request.POST.get('organization_type') else: return organization = form.save(commit=False) organization.organization_type = [user_organization_type] if organization.perimeter.zipcodes is not None: organization.zip_code = organization.perimeter.zipcodes[0] organization.city_name = organization.perimeter.name organization.save() form.save_m2m() user_id = User.objects.filter(email=user_email).first().pk organization.beneficiaries.add(user_id) User.objects.filter(pk=user_id).update(beneficiary_organization=organization.pk) if self.request.session.get('USER_EMAIL'): send_connection_email.delay(user_email) track_goal(self.request.session, settings.GOAL_REGISTER_ID) msg = "Vous êtes bien enregistré !" messages.success(self.request, msg) success_url = reverse('register_success') self.request.session.pop('USER_EMAIL') self.request.session.pop('USER_ORGANIZATION_TYPE') elif self.request.user.email: msg = "Votre profil a bien été mis à jour !" messages.success(self.request, msg) success_url = reverse('user_dashboard') return HttpResponseRedirect(success_url)
def form_valid(self, form): """Send a login link by email.""" user_email = form.cleaned_data['username'] send_connection_email.delay(user_email) return super().form_valid(form)
def form_valid(self, form): """Send a connection/confirmation link to the user.""" response = super().form_valid(form) user_email = form.cleaned_data['email'] send_connection_email.delay(user_email) return response