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)
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')
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))