def newsletter_add(request): if request.method == "POST": adr = request.POST["email"] e = None if len(adr) > 6: form = NewsletterForm(data=request.POST) if form.is_valid(): try: e = NewsletterEmails.objects.get(email=adr) message = _(u"Email already added.") type = "error" except NewsletterEmails.DoesNotExist: try: e = NewsletterEmails(email=adr) except DoesNotExist: pass message = _(u"Email added.") type = "success" e.save() else: message = _(u"Bad address.") type = "error" else: message = _(u"Too short address.") type = "error" if request.is_ajax(): result = simplejson.dumps({"message": message, "type": type}, cls=LazyEncoder) return HttpResponse(result, mimetype="application/javascript")
def newsletter_add(request): if request.method == "POST": adr = request.POST['email'] e = None if len(adr) > 6: form = NewsletterForm(data=request.POST) if form.is_valid(): try: e = NewsletterEmails.objects.get(email=adr) message = _(u"Email already added.") type = "error" except NewsletterEmails.DoesNotExist: try: e = NewsletterEmails(email=adr) except DoesNotExist: pass message = _(u"Email added.") type = "success" e.save() else: message = _(u"Bad address.") type = "error" else: message = _(u"Too short address.") type = "error" if request.is_ajax(): result = simplejson.dumps({ "message": message, "type": type, }, cls=LazyEncoder) return HttpResponse(result, mimetype='application/javascript')
def subscribe_request(request): """ Adds a new subscription to mailchimp list. """ if request.POST: mail_chimp = mailchimp.Mailchimp( settings.SECRETS['mailchimp_api_key'] ) form = NewsletterForm(request.POST) if form.is_valid(): email = form.cleaned_data['email'] subscription = Subscription(email=email) subscription.save() try: mail_chimp.lists.subscribe( settings.SECRETS['mailchimp_list_id'], {'email': email}, double_optin=False, send_welcome=True ) except mailchimp.ListAlreadySubscribedError: return { 'success': False, 'error': 'Email is already subscribed' } return {'success': True} else: return { 'success': False, 'error': form.errors.get('email') } return {'success': False, 'error': 'Request not valid'}
def post(self, request, *args, **kwargs): """ Create the newsletter entry. Note that if there a duplicate entry, form.is_valid will return False so there's no need to catch an IntegrityError here. """ form = NewsletterForm(request.POST) if form.is_valid(): form.save() return super(NewsletterView, self).get(request, *args, **kwargs)
def newsletter(request): latest_news = NewsItem.objects.all()[0] if request.method == 'POST': #Attempting to register form = NewsletterForm(request.POST) if form.is_valid(): signup = Newsletter(name = form.cleaned_data['name'], email = form.cleaned_data['email']) signup.save() return redirect('/newsletter/signup-successful/') else: form = NewsletterForm() return render_to_response('newsletter.html', {'form': form, 'latest_news': latest_news}, context_instance=RequestContext(request))