def try_to_subscribe(request): if request.method == 'POST': form = NewsletterForm(request.POST) if form.is_valid(): try: newsletter_subscription = NewsletterSubscription.objects.get(email=request.POST['email']) except NewsletterSubscription.DoesNotExist: newsletter_subscription = NewsletterSubscription(email=request.POST['email'], subscribed=False) newsletter_subscription.save() newsletter_subscription.set_token() subscribe_url = settings.SUBSCRIBE_URL % (settings.SITE_URL, newsletter_subscription.token) file = open(settings.TEMPLATE_DIRS[0] + "/newsletter/subscribe_send_token_" + translation.get_language() + ".txt", "r") message_txt = file.read() file.close() message_txt = message_txt.decode("utf-8") message_txt = message_txt % (subscribe_url) file = open(settings.TEMPLATE_DIRS[0] + "/newsletter/subscribe_send_token_" + translation.get_language() + ".html", "r") message_html = file.read() file.close() message_html = message_html.decode("utf-8") message_html = message_html % (subscribe_url, subscribe_url) print subscribe_url subject = "%s %s" % (settings.EMAIL_SUBJECT_PREFIX, unicode(_(u"newsletter subscription"))) send_mass_email(settings.EMAIL_FROM, [request.POST['email']], None, subject, message_txt, message_html) return render_to_response('newsletter/subscription_token_sent_' + translation.get_language() + '.html', { 'SITE_URL': settings.SITE_URL }, context_instance=RequestContext(request)) else: form = NewsletterForm() user = request.user if user and user.is_authenticated(): try: newsletter_subscription = NewsletterSubscription.objects.get(email=user.email) if newsletter_subscription.subscribed == False: newsletter_subscription.subscribed = True newsletter_subscription.save() return render_to_response('newsletter/successfully_subscribed_' + translation.get_language() + '.html', { 'token': newsletter_subscription.token }, context_instance=RequestContext(request)) else: return render_to_response('newsletter/already_subscribed_' + translation.get_language() + '.html', { 'subscription': newsletter_subscription, 'SITE_URL': settings.SITE_URL }, context_instance=RequestContext(request)) except NewsletterSubscription.DoesNotExist: newsletter_subscription = NewsletterSubscription(email=request.POST['email'], subscribed=True) newsletter_subscription.save() newsletter_subscription.set_token() return render_to_response('newsletter/subscribe_' + translation.get_language() + '.html', { 'form': form, 'SITE_URL': settings.SITE_URL }, context_instance=RequestContext(request))
def renderLandingPage(request): contextDomain = 'kit' languageCode = 'en-us' data = None try: data = Context.getProcessedContextDataWithDependencies( contextDomain, languageCode) except Exception as error: raise Http404 contactForm = None newsletterForm = None formContext = { 'request': request, 'contextDomain': contextDomain, 'languageCode': languageCode } context = { 'contextDomain': contextDomain, 'contactForm': contactForm, 'newsletterForm': newsletterForm, 'data': data, 'anchor': '' } if request.method == 'POST': if 'company' in request.POST and 'subject' in request.POST: # This is contact form contactForm = ContactForm(request.POST, **formContext) if contactForm.is_valid(): contactInstance = contactForm.addContact() emailDict = buildEmailAsStr( email.CONTACT_EMAIL_TEMPLATE, { 'body': { 'NAME': contactInstance.name if contactInstance.name else contactInstance.email, 'EMAIL': contactInstance.email, 'SUBJECT': contactInstance.subject, 'MESSAGE': contactInstance.message } }) sendSimpleEmail(emailDict['fromEmail'], contactInstance.email, emailDict['subject'], emailDict['body'], emailDict['backend'], emailDict['bcc']) context = { 'contactInstance': contactInstance, 'context': data['context'] } return render( request, template_name= 'landing-page/landing-page-contact-success-rnd.html', context=context) else: context['contactForm'] = ContactForm(request.POST, **formContext) context['newsletterForm'] = NewsletterForm(**formContext) context['anchor'] = 'Contact' else: # This is newsletter form newsletterForm = NewsletterForm(request.POST, **formContext) if newsletterForm.is_valid(): newsletterInstance = newsletterForm.addSubscriber() emailDict = buildEmailAsStr( email.NEWSLETTER_EMAIL_TEMPLATE, { 'body': { 'NAME': newsletterInstance.name if newsletterInstance.name else newsletterInstance.email } }) sendSimpleEmail(emailDict['fromEmail'], newsletterInstance.email, emailDict['subject'], emailDict['body'], emailDict['backend'], emailDict['bcc']) context = { 'newsletterInstance': newsletterInstance, 'context': data['context'] } return render( request, template_name= 'landing-page/landing-page-newsletter-success-rnd.html', context=context) else: context['contactForm'] = ContactForm(**formContext) context['newsletterForm'] = NewsletterForm( request.POST, **formContext) context['anchor'] = 'Newsletter' else: rotate_token(request) context['contactForm'] = ContactForm(**formContext) context['newsletterForm'] = NewsletterForm(**formContext) context.update(csrf(request)) return render(request, template_name='landing-page/landing-page-rnd.html', context=context)