Exemple #1
0
 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
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
 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)
Exemple #5
0
 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