Esempio n. 1
0
    def test_get_email_content(self):
        email = self.email_class(name='Email test')
        setattr(email, 'html_en', 'Email title')
        setattr(email, 'html_es', 'Titulo del email')
        email.save()

        english_email = get_email_content(email=email, language='en')
        spanish_email = get_email_content(email=email, language='es')

        self.assertTrue('Email title' in english_email)
        self.assertTrue('<head>' in english_email)
        self.assertTrue('Titulo del email' in spanish_email)
        self.assertTrue('<head>' in english_email)
Esempio n. 2
0
    def post(self, *args, **kwargs):

        invitee_ids = self.request.POST.getlist('invitees[]')
        email_id = self.request.POST.get('email')

        Email = get_email_class()

        for invitee_id in invitee_ids:
            invitee = Invitee.objects.get(pk=invitee_id)

            # Check if the email has already been sent to the invitee.
            emails_sent_to_invitee_ids = invitee.get_email_ids()
            if email_id in emails_sent_to_invitee_ids:
                continue

            email = Email.objects.get(pk=email_id)

            message = mail.EmailMessage(
                sender="Javi Manzano <{}>".format(settings.EMAIL_FROM),
                subject="You're invited to our wedding"
            )

            message.to = u'{} <{}>'.format(
                unicode(invitee.fullname),
                invitee.email
            )

            message_html = get_email_content(email=email, language=invitee.language)

            # Replace tokens in the email for their values
            message_html = message_html.replace(INVITEE_NAME_TOKEN, invitee.fullname)
            rsvp_url = '{}{}?invitee={}'.format(settings.SERVER_DOMAIN, reverse('public:rsvp'), invitee.token)
            # Replace the language in the `rsvp_url` for nothing - this should be done in a nicer way.
            rsvp_url = rsvp_url.replace('/en/', '/')
            rsvp_url = rsvp_url.replace('/es/', '/')
            message_html = message_html.replace(RSVP_URL_TOKEN, rsvp_url)

            logging.info(message_html)

            message.html = message_html
            message.send()

            # Add email id to invitee emails list.
            if email_id not in emails_sent_to_invitee_ids:
                emails_sent_to_invitee_ids.append(email_id)
                invitee.emails = ','.join(emails_sent_to_invitee_ids)
                invitee.save()

        return HttpResponse('OK')
Esempio n. 3
0
 def get(self, *args, **kwargs):
     language = self.request.GET.get('language')
     Email = get_email_class()
     email_pk = kwargs.get('pk')
     email = Email.objects.get(pk=email_pk)
     return HttpResponse(get_email_content(email=email, language=language))