Exemple #1
0
def register(request):
    context = {}

    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data

            # create inactive user
            user = auth.models.User.objects.create_user(
                data['username'], data['email'], data['password']
            )
            user.is_active = False
            user.first_name = data.get('first_name', '')
            user.last_name = data.get('last_name', '')
            user.save()

            # create confirmation
            conf = EmailConfirmation(
                type='registration', user=user, email=user.email
            )
            conf.save()

            context['confirmation'] = conf

            # send email
            subject = render_to_string(
                'patchwork/mails/activation-subject.txt'
            )
            message = render_to_string(
                'patchwork/mails/activation.txt',
                {'site': Site.objects.get_current(), 'confirmation': conf},
            )

            try:
                send_mail(
                    subject, message, settings.DEFAULT_FROM_EMAIL, [conf.email]
                )
            except smtplib.SMTPException:
                context['confirmation'] = None
                context['error'] = (
                    'An error occurred during registration. '
                    'Please try again later'
                )
    else:
        form = RegistrationForm()

    context['form'] = form

    return render(request, 'patchwork/registration.html', context)
Exemple #2
0
def register(request):
    context = PatchworkRequestContext(request)
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            # create inactive user
            user = auth.models.User.objects.create_user(
                data['username'], data['email'], data['password'])
            user.is_active = False
            user.first_name = data.get('first_name', '')
            user.last_name = data.get('last_name', '')
            user.save()

            # create confirmation
            conf = EmailConfirmation(type='registration',
                                     user=user,
                                     email=user.email)
            conf.save()

            # send email
            mail_ctx = {
                'site': Site.objects.get_current(),
                'confirmation': conf
            }

            subject = render_to_string(
                'patchwork/activation_email_subject.txt',
                mail_ctx).replace('\n', ' ').strip()

            message = render_to_string('patchwork/activation_email.txt',
                                       mail_ctx)

            send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,
                      [conf.email])

            # setting 'confirmation' in the template indicates success
            context['confirmation'] = conf

    else:
        form = RegistrationForm()

    return render_to_response('patchwork/registration_form.html',
                              {'form': form},
                              context_instance=context)
Exemple #3
0
def register(request):
    context = PatchworkRequestContext(request)
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            # create inactive user
            user = auth.models.User.objects.create_user(data['username'],
                                                        data['email'],
                                                        data['password'])
            user.is_active = False
            user.first_name = data.get('first_name', '')
            user.last_name = data.get('last_name', '')
            user.save()

            # create confirmation
            conf = EmailConfirmation(type='registration', user=user,
                                     email=user.email)
            conf.save()

            # send email
            mail_ctx = {'site': Site.objects.get_current(),
                        'confirmation': conf}

            subject = render_to_string(
                'patchwork/activation_email_subject.txt',
                mail_ctx).replace('\n', ' ').strip()

            message = render_to_string('patchwork/activation_email.txt',
                                       mail_ctx)

            send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,
                      [conf.email])

            # setting 'confirmation' in the template indicates success
            context['confirmation'] = conf

    else:
        form = RegistrationForm()

    return render_to_response('patchwork/registration_form.html',
                              {'form': form},
                              context_instance=context)