Exemplo n.º 1
0
def subscribe(request):
    entities = District.objects.all().values()

    unsubscribe_path = reverse(
        'wbc.news.views.unsubscribe', args=['.']).strip('.')
    validate_path = reverse('wbc.news.views.validate', args=['.']).strip('.')

    if request.method == 'POST':
        form = SubscribeForm(request.POST, entities=entities)
        if form.is_valid():
            email = form.cleaned_data.pop('email')
            entitiesJson = dumps(form.cleaned_data)

            try:
                v = Validation.objects.get(email=email)
            except Validation.DoesNotExist:
                v = Validation(email=email)

            v.entities = entitiesJson
            v.action = 'subscribe'
            v.save()

            send_mail(email, 'news/mail/subscribe.html', {
                'unsubscribe_link': settings.SITE_URL + unsubscribe_path + email,
                'validate_link': settings.SITE_URL + validate_path + v.code
            })

            return render(request, 'news/subscribe.html', {
                'success': True,
                'unsubscribe_link': settings.SITE_URL + unsubscribe_path + email
            })
    else:
        form = SubscribeForm(entities=entities)

    return render(request, 'news/subscribe.html', {
        'form': form,
        'unsubscribe_link': settings.SITE_URL + unsubscribe_path,
        'entities': entities
    })