예제 #1
0
def _lead_form(request, *args, **kwargs):
    if request.method == 'GET':
        form = UserSignupForm()
        return render(request,
                      'core/lead_form_errors.html',
                      context={'form': form})

    source = request.GET.get('utm_source', default='unknown')
    first_name = request.POST.get('first_name')
    email = request.POST.get('email')
    tags = [kwargs.get('offer_tag', 'offer-funnel-0')]
    for key, value in request.GET.items():
        if key.startswith('utm_'):
            tags.append(f"{key}={value}")

    try:
        user = user_facade.register_lead(first_name, email, source, tags=tags)
    except user_facade.UserCreationException as e:
        return render(request,
                      'core/lead_form_errors.html',
                      context={'form': e.form},
                      status=400)

    login(request, user)

    if kwargs.get('redirect_to_OTO') is False:
        return redirect(reverse('core:thanks'))

    return redirect(reverse('checkout:webdev_landing_page_oto'))
예제 #2
0
def _lead_form(request, redirect_to_OTO=True, *args, **kwargs):
    if request.method == 'GET':
        form = UserSignupForm()
        return render(request,
                      'core/lead_form_errors.html',
                      context={'form': form})

    source = request.GET.get('utm_source', default='unknown')
    first_name = request.POST.get('first_name')
    email = request.POST.get('email')

    try:
        user = user_facade.register_lead(first_name, email, source)
    except user_facade.UserCreationException as e:
        return render(request,
                      'core/lead_form_errors.html',
                      context={'form': e.form},
                      status=400)

    login(request, user)

    if redirect_to_OTO:
        return redirect(reverse('payments:client_landing_page_oto'))
    else:
        return redirect(reverse('core:thanks'))
예제 #3
0
def test_creation(db, django_user_model, create_or_update_lead_mock):
    user = user_facade.register_lead('Renzo Nuccitelli', '*****@*****.**',
                                     'google_ads')
    calls = [
        call(user.first_name, user.email),
        call(user.first_name, user.email, id=user.id)
    ]
    create_or_update_lead_mock.assert_has_calls(calls)
    assert django_user_model.objects.all().get() == user
예제 #4
0
def test_creation(db, django_user_model, create_or_update_lead_mock,
                  sync_user_delay):
    user = user_facade.register_lead('Renzo Nuccitelli', '*****@*****.**',
                                     'google_ads')
    create_or_update_lead_mock.assert_called_once_with(user.first_name,
                                                       user.email,
                                                       id=user.id)
    assert not sync_user_delay.called
    assert django_user_model.objects.all().get() == user
예제 #5
0
def lead_form(request):
    if request.method == 'GET':
        form = UserSignupForm()
        return render(request, 'core/lead_form_errors.html', context={'form': form})
    source = request.GET.get('utm_source', default='unknown')
    first_name = request.POST.get('first_name')
    email = request.POST.get('email')
    try:
        user = user_facade.register_lead(first_name, email, source)
    except user_facade.UserCreationException as e:
        return render(request, 'core/lead_form_errors.html', context={'form': e.form})
    login(request, user)
    return redirect(reverse('core:lead_change_password'))
예제 #6
0
def test_should_create_lead_with_extra_tags(db, django_user_model,
                                            create_or_update_lead_mock,
                                            sync_user_delay):
    user = user_facade.register_lead('Renzo Nuccitelli',
                                     '*****@*****.**',
                                     'google_ads',
                                     tags=['tag-1', 'tag-2'])
    calls = [
        call(user.first_name, user.email, 'tag-1', 'tag-2'),
        call(user.first_name, user.email, 'tag-1', 'tag-2', id=user.id)
    ]
    create_or_update_lead_mock.assert_has_calls(calls)
    sync_user_delay.assert_called_once_with(user.id)
    assert django_user_model.objects.all().get() == user
def test_creation(db, django_user_model, create_or_update_lead_mock):
    user = user_facade.register_lead('Renzo Nuccitelli', '*****@*****.**', 'google_ads')
    create_or_update_lead_mock.assert_called_once_with('Renzo Nuccitelli', '*****@*****.**')
    assert django_user_model.objects.all().get() == user