Example #1
0
def apps_newsletter(request):
    if request.method == 'POST':
        form = SubscriptionForm(request.locale, data=request.POST)
        context = {'form': form}
        if form.is_valid():
            optin = 'N'
            if request.locale == 'en-US':
                optin = 'Y'
            for i in range(constance.config.BASKET_RETRIES):
                try:
                    result = basket.subscribe(
                        email=form.cleaned_data['email'],
                        newsletters=settings.BASKET_APPS_NEWSLETTER,
                        country=form.cleaned_data['country'],
                        format=form.cleaned_data['format'],
                        lang=request.locale,
                        optin=optin)
                    if result.get('status') != 'error':
                        break
                except BasketException:
                    if i == constance.config.BASKET_RETRIES:
                        return HttpResponseServerError()
                    else:
                        time.sleep(constance.config.BASKET_RETRY_WAIT * i)
            del context['form']

    else:
        context = {'form': SubscriptionForm(request.locale)}

    return render(request, 'landing/apps_newsletter.html', context)
Example #2
0
File: views.py Project: swznd/kuma
def apps_subscription(request):
    form = SubscriptionForm(data=request.POST)
    context = {'form': form}
    if form.is_valid():
        optin = 'N'
        if request.locale == 'en-US':
            optin = 'Y'
        basket.subscribe(email=form.cleaned_data['email'],
                         newsletters=settings.BASKET_APPS_NEWSLETTER,
                         format=form.cleaned_data['format'],
                         lang=request.locale,
                         optin=optin)
        messages.success(request,
            _('Thank you for subscribing to the Apps Developer newsletter.'))
        if not request.is_ajax():
            return HttpResponseRedirect(reverse('apps'))
        del context['form']

    return (jingo.render(request, 'landing/apps_subscribe.html', context)
            if request.is_ajax() else
            common_landing(request, section=SECTION_APPS, extra=context))
Example #3
0
def apps(request):
    """Web landing page."""
    return common_landing(request,
                          section=SECTION_APPS,
                          extra={'form': SubscriptionForm()})