Beispiel #1
0
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)