def view_newsletter_tracking(request, slug, uidb36, token): """Track the opening of the newsletter by requesting a blank img""" newsletter = get_object_or_404(Newsletter, slug=slug) contact = untokenize(uidb36, token) log = ContactMailingStatus.objects.create(newsletter=newsletter, contact=contact, status=ContactMailingStatus.OPENED) return HttpResponse(base64.b64decode(TRACKING_IMAGE), mimetype='image/png')
def view_newsletter_tracking_link(request, slug, uidb36, token, link_id): """Track the opening of a link on the website""" newsletter = get_object_or_404(Newsletter, slug=slug) contact = untokenize(uidb36, token) link = get_object_or_404(Link, pk=link_id) log = ContactMailingStatus.objects.create(newsletter=newsletter, contact=contact, status=ContactMailingStatus.LINK_OPENED, link=link) return HttpResponseRedirect(link.url)
def view_newsletter_contact(request, slug, uidb36, token): """Visualization of a newsletter by an user""" newsletter = get_object_or_404(Newsletter, slug=slug) contact = untokenize(uidb36, token) log = ContactMailingStatus.objects.create(newsletter=newsletter, contact=contact, status=ContactMailingStatus.OPENED_ON_SITE) context = {'contact': contact, 'uidb36': uidb36, 'token': token} return render_newsletter(request, slug, context)
def view_mailinglist_unsubscribe(request, slug, uidb36, token): """Unsubscribe a contact to a mailing list""" newsletter = get_object_or_404(Newsletter, slug=slug) contact = untokenize(uidb36, token) already_unsubscribed = contact in newsletter.mailing_list.unsubscribers.all() if request.POST.get('email') and not already_unsubscribed: newsletter.mailing_list.unsubscribers.add(contact) newsletter.mailing_list.save() already_unsubscribed = True log = ContactMailingStatus.objects.create(newsletter=newsletter, contact=contact, status=ContactMailingStatus.UNSUBSCRIPTION) return render_to_response('newsletter/mailing_list_unsubscribe.html', {'email': contact.email, 'already_unsubscribed': already_unsubscribed}, context_instance=RequestContext(request))