def test_get_course_email_context_has_correct_keys(self): result = _get_course_email_context(self.course) assert 'course_title' in result assert 'course_root' in result assert 'course_language' in result assert 'course_url' in result assert 'course_image_url' in result assert 'course_end_date' in result assert 'account_settings_url' in result assert 'email_settings_url' in result assert 'platform_name' in result
def send_course_completion_mail(sender, user, course_id, **kwargs): try: course_email = Custom_email.objects.get( course_id=course_id, template_name="completion_mail.template") log.info(u"course_email->%s", course_email) if course_email: connection = get_connection() connection.open() log.info("->-> XX == %s ++ %s ++ %s", user, course_id) userprofile = getuserfullprofile(user.id) email = user.email subject = course_email.subject message = ("Congratulations" + user.username + "you are enrolled in the course") from_addr = "*****@*****.**" course = get_course(course_id) global_email_context = _get_course_email_context(course) email_context = {"name": "", "email": ""} email_context.update(global_email_context) email_context["email"] = email email_context["name"] = userprofile.name email_context["user_id"] = user.id email_context["course_id"] = course_id email_template = course_email.get_template() plaintext_msg = email_template.render_plaintext( course_email.text_message, email_context) log.info(u"plaintext_msg %s", plaintext_msg) html_msg = email_template.render_htmltext( course_email.html_message, email_context) log.info(u"html_msg %s", html_msg) email_msg = EmailMultiAlternatives(subject, plaintext_msg, from_addr, [email], connection=connection) log.info(u"email_msg1->%s", email_msg) email_msg.attach_alternative(html_msg, "text/html") email_msg.send() log.info(u"email_msg2->%s", email_msg) except ObjectDoesNotExist: course_email = "Not set"
def test_secure_email_context(self): """ This test tests that the bulk email context uses https urls """ email_context = _get_course_email_context(self.course) self.verify_email_context(email_context, 'https')
def send_welcome_email(sender, event=None, user=None, course_id=None, **kwargs): #log.info('welcome email %s,%s',user,course_id) if event == EnrollStatusChange.enroll: try: if ('viatris' in str(course_id)) or ('Viatris' in str(course_id)): log.info(u'viatris--> %s', course_id) course_email = Custom_email.objects.get(course_id=course_id) course_extra_data = course_extrainfo.objects.get( course_id=course_id) cid1 = str(course_email.course_id) userprofile = getuserfullprofile(user.id) connection = get_connection() connection.open() email = user.email message = 'Congratulations' + user.username + 'you are enrolled in the course' from_addr = 'Docmode - Congratulations <*****@*****.**>' course = get_course(course_id) course_start_date = get_default_time_display(course.start) global_email_context = _get_course_email_context(course) email_context = {'name': '', 'email': ''} email_context.update(global_email_context) email_context['email'] = email email_context['name'] = userprofile.name email_context['user_id'] = user.id email_context['course_id'] = course_id email_context['start_date'] = course.start.strftime( "%b %d, %Y") if 'Viatris-emas' in str(course_id): str_cid = str(course_id) cid = str_cid.split('+') new_cid = cid[0].split(':') email_context['new_course_url'] = 'https://' + new_cid[ 1] + '.learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'block' email_context['emessage'] = 'none' subject = 'Thank you for Registering to ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Europe/Berlin')) email_context['timezone_shortcode'] = 'CET' # elif 'DRL' in str(course_id): # str_cid = str(course_id) # cid = str_cid.split('+') # new_cid = cid[0].split(':') # email_context['new_course_url'] = 'https://'+new_cid[1]+'.learn.docmode.org/courses/' + str(course_id) +'/course' # email_context['legalnotice'] = 'block' # email_context['emessage'] = 'none' # subject = 'Thank you for Registering to ' + email_context['course_title'] # now_asia = course.start.astimezone(timezone('Asia/Kolkata')) # email_context['timezone_shortcode'] = 'IST' elif 'atpon' in str(course_id): from_addr = 'Docmode - Gratulacje <*****@*****.**>' email_context[ 'new_course_url'] = 'https://viatris-atpon.learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'none' email_context['emessage'] = 'block' email_context[ 'footer_title'] = 'Informacja o ochronie prywatności Viatris' email_context['thank_you'] = 'Dziękujemy' if course_extra_data.course_type == '1': subject = 'Gratulacje kurs na który jesteś zapisany to ' + email_context[ 'course_title'] email_context[ 'course_msg'] = 'Dziękujemy za rejestrację do kursu pt' email_context[ 'course_webinar_link_title'] = 'Kliknij tutaj aby przejść do kursu' else: subject = 'Gratulacje webinarium na który jesteś zapisany to ' + email_context[ 'course_title'] email_context[ 'course_webinar_link_title'] = 'Kliknij tutaj aby przejść do webinarium' email_context[ 'course_msg'] = 'Dziękujemy za rejestrację do webinarium pt' now_asia = course.start.astimezone( timezone('Europe/Berlin')) email_context['timezone_shortcode'] = 'CET' elif 'psychiatry' in str(course_id): email_context[ 'new_course_url'] = 'https://viatris-psychiatry.learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'none' email_context['emessage'] = 'block' subject = 'Congratulations you are enrolled in ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' elif 'multimodal' in str(course_id): email_context[ 'new_course_url'] = 'https://viatris-multimodal-approach-oa.learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'block' email_context['emessage'] = 'none' subject = 'Congratulations you are enrolled in ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' elif 'norge' in str(course_id): course_data = CourseOverview.objects.get(id=course_id) #log.info(u'course_data--> %s', course_data) from_addr = 'Viatris Norge <*****@*****.**>' email_context[ 'new_course_url'] = 'https://viatris-norge.learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'none' email_context['emessage'] = 'block' email_context['course_title'] = course_data.display_name now_asia = course.start.astimezone( timezone('Europe/Berlin')) ctime = now_asia + timedelta(minutes=30) subject = 'Bekreftelse: påmelding WEBINAR - ' + email_context[ 'start_date'] + ' kl ' + ctime.strftime("%H:%M") + '.' email_context['timezone_shortcode'] = 'CET' elif 'farma' in str(course_id): #log.info(u'viatris--> %s', str_cid) from_addr = 'Viatris Farmaciaformacion <*****@*****.**>' email_context['legalnotice'] = 'none' email_context['emessage'] = 'block' subject = 'Gracias por registrarse en ' + email_context[ 'course_title'] email_context[ 'new_course_url'] = 'https://viatris-farmaciaformacion.learn.docmode.org/courses/' + str( course_id) + '/course' now_asia = course.start.astimezone( timezone('Europe/Berlin')) email_context['timezone_shortcode'] = 'CET' elif 'Viatris-via' in str(course_id): email_context[ 'new_course_url'] = 'https://viatris-via.learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'none' email_context['emessage'] = 'block' subject = 'Congratulations you are enrolled in ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' else: email_context[ 'new_course_url'] = 'https://learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'none' email_context['emessage'] = 'block' subject = 'Congratulations you are enrolled in ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' if course_extra_data.course_type == '2': ctime = now_asia + timedelta(minutes=30) else: ctime = now_asia email_context['start_time'] = ctime.strftime("%X") diffdate = course.start - datetime.datetime.now(UTC) total_mins = (diffdate.days * 1440 + diffdate.seconds / 60) minutes = divmod(diffdate.seconds, 60) total_mins = abs(total_mins) if course_extra_data.google_calendar_url and total_mins > 59: email_context[ 'google_calendar_url'] = course_extra_data.google_calendar_url email_context[ 'google_calendar_title'] = "Add to my Google calendar" email_context['background_color'] = '4E9CAF' email_context['show_calendar'] = 'block' else: email_context['google_calendar_url'] = '' email_context['google_calendar_title'] = '' email_context['background_color'] = '' email_context['show_calendar'] = 'None' email_template = course_email.get_template() plaintext_msg = email_template.render_plaintext( course_email.text_message, email_context) html_msg = email_template.render_htmltext( course_email.html_message, email_context) email_msg = EmailMultiAlternatives(subject, plaintext_msg, from_addr, [email], connection=connection) email_msg.attach_alternative(html_msg, 'text/html') email_msg.send() mail_to_users = custom_mail_to_users( course_emailid=course_email.id, user_id=user.id, user_email=email, course_id=course_id) mail_to_users.save() #log.info(u'drl_email->%s', email_msg) else: course_email = Custom_email.objects.get(course_id=course_id) if course_email: course_extra_data = course_extrainfo.objects.get( course_id=course_email.course_id) cid1 = str(course_email.course_id) userprofile = getuserfullprofile(user.id) connection = get_connection() connection.open() email = user.email subject = course_email.subject message = 'Congratulations' + user.username + 'you are enrolled in the course' from_addr = 'Docmode - Congratulations <*****@*****.**>' course = get_course(course_id) course_start_date = get_default_time_display(course.start) global_email_context = _get_course_email_context(course) email_context = {'name': '', 'email': ''} email_context.update(global_email_context) email_context['email'] = email email_context['name'] = userprofile.name email_context['user_id'] = user.id email_context['course_id'] = course_id email_context['start_date'] = course_start_date if 'SLNA' in str(course_id): email_context[ 'new_course_url'] = 'https://www.cmeworld.org/shalina-gerdandpepticulcers/' email_context['legalnotice'] = 'block' email_context['emessage'] = 'none' email_context[ 'start_date'] = '11th Dec, 2021 at West Africa 3:00PM,Ghana 2:00PM (GMT), Nigeria 3:00PM (WAT), Zambia 4:00PM (SAST), Kenya 5:00PM (EAT)' subject = 'Congratulations you are enrolled in ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' if course_extra_data.google_calendar_url: email_context[ 'google_calendar_url'] = course_extra_data.google_calendar_url email_context[ 'google_calendar_title'] = "Add to my Google calendar" email_context['background_color'] = '4E9CAF' email_context['show_calendar'] = 'block' if 'virtual-guide' in str(course_id): email_context[ 'new_course_url'] = 'https://virtual-guide.learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'block' email_context['emessage'] = 'none' subject = 'Felicitaciones, estás inscrito en ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' if course_extra_data.google_calendar_url: email_context[ 'google_calendar_url'] = course_extra_data.google_calendar_url email_context[ 'google_calendar_title'] = "Add to my Google calendar" email_context['background_color'] = '4E9CAF' email_context['show_calendar'] = 'block' diffdate = course.start - datetime.datetime.now(UTC) total_mins = (diffdate.days * 1440 + diffdate.seconds / 60) minutes = divmod(diffdate.seconds, 60) total_mins = abs(total_mins) if course_extra_data.google_calendar_url and total_mins > 59: email_context[ 'google_calendar_url'] = course_extra_data.google_calendar_url email_context[ 'google_calendar_title'] = "Add to my Google calendar" email_context['background_color'] = '4E9CAF' email_context['show_calendar'] = 'block' else: email_context['google_calendar_url'] = '' email_context['google_calendar_title'] = '' email_context['background_color'] = '' email_context['show_calendar'] = 'None' #log.info(u'diffdate %s',diffdate) if course_extra_data.google_calendar_url and diffdate.days > 1: #log.info(u'diffdate %s',diffdate) email_context[ 'google_calendar_url'] = course_extra_data.google_calendar_url email_context[ 'google_calendar_title'] = "Add to calendar" email_context['background_color'] = '4E9CAF' else: email_context['google_calendar_url'] = '' email_context['google_calendar_title'] = '' email_context['background_color'] = '' email_template = course_email.get_template() plaintext_msg = email_template.render_plaintext( course_email.text_message, email_context) html_msg = email_template.render_htmltext( course_email.html_message, email_context) email_msg = EmailMultiAlternatives(subject, plaintext_msg, from_addr, [email], connection=connection) email_msg.attach_alternative(html_msg, 'text/html') email_msg.send() mail_to_users = custom_mail_to_users( course_emailid=course_email.id, user_id=user.id, user_email=email, course_id=course_id) mail_to_users.save() #log.info(u'email_msg2->%s', email_msg) except ObjectDoesNotExist: if not ('DRL' in str(course_id) or 'docv' in str(course_id)): #log.info('universal welcome email %s,%s',user,course_id) course_email = Custom_email.objects.get(id=3) course_extra_data = course_extrainfo.objects.get( course_id=course_id) cid1 = str(course_email.course_id) userprofile = getuserfullprofile(user.id) connection = get_connection() connection.open() email = user.email message = 'Congratulations' + user.username + 'you are enrolled in the course' from_addr = 'Docmode - Congratulations <*****@*****.**>' course = get_course(course_id) course_start_date = get_default_time_display(course.start) global_email_context = _get_course_email_context(course) email_context = {'name': '', 'email': ''} email_context.update(global_email_context) email_context['email'] = email email_context['name'] = userprofile.name email_context['user_id'] = user.id email_context['course_id'] = course_id email_context['start_date'] = course.start.strftime( "%b %d, %Y") if 'Viatris' in str(course_id) or 'viatris' in str(course_id): str_cid = str(course_id) cid = str_cid.split('+') new_cid = cid[0].split(':') if 'farma' in str_cid: #log.info(u'viatris--> %s', str_cid) email_context[ 'new_course_url'] = 'https://viatris-farmaciaformacion.learn.docmode.org/courses/' + str( course_id) + '/course' now_asia = course.start.astimezone( timezone('Europe/Berlin')) email_context['timezone_shortcode'] = 'CET' if 'india' in str_cid: email_context[ 'new_course_url'] = 'https://viatrisindia.learn.docmode.org/courses/' + str( course_id) + '/course' now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' elif 'multimodal' in str(course_id): log.info('email----->') email_context[ 'new_course_url'] = 'https://viatris-multimodal-approach-oa.learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'block' email_context['emessage'] = 'none' subject = 'Congratulations you are enrolled in ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' else: #log.info(u'viatris1--> %s', str_cid) email_context['new_course_url'] = 'https://' + new_cid[ 1] + '.learn.docmode.org/courses/' + str( course_id) + '/course' now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' email_context['legalnotice'] = 'block' email_context['emessage'] = 'none' subject = 'Thank you for Registering to ' + email_context[ 'course_title'] elif 'SLNA' in str(course_id): email_context[ 'new_course_url'] = 'https://www.cmeworld.org/shalina-gerdandpepticulcers/' email_context['legalnotice'] = 'block' email_context['emessage'] = 'none' email_context[ 'start_date'] = '11th Dec, 2021 at West Africa 3:00PM,Ghana 2:00PM (GMT), Nigeria 3:00PM (WAT), Zambia 4:00PM (SAST), Kenya 5:00PM (EAT)' subject = 'Congratulations you are enrolled in ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' else: email_context[ 'new_course_url'] = 'https://learn.docmode.org/courses/' + str( course_id) + '/course' email_context['legalnotice'] = 'none' email_context['emessage'] = 'block' subject = 'Congratulations you are enrolled in ' + email_context[ 'course_title'] now_asia = course.start.astimezone( timezone('Asia/Kolkata')) email_context['timezone_shortcode'] = 'IST' if course_extra_data.course_type == '2': ctime = now_asia + timedelta(minutes=30) else: ctime = now_asia email_context['start_time'] = ctime.strftime("%X") diffdate = course.start - datetime.datetime.now(UTC) total_mins = (diffdate.days * 1440 + diffdate.seconds / 60) minutes = divmod(diffdate.seconds, 60) total_mins = abs(total_mins) if course_extra_data.google_calendar_url and total_mins > 59: email_context[ 'google_calendar_url'] = course_extra_data.google_calendar_url email_context[ 'google_calendar_title'] = "Add to my Google calendar" email_context['background_color'] = '4E9CAF' email_context['show_calendar'] = 'block' else: email_context['google_calendar_url'] = '' email_context['google_calendar_title'] = '' email_context['background_color'] = '' email_context['show_calendar'] = 'None' email_template = course_email.get_template() plaintext_msg = email_template.render_plaintext( course_email.text_message, email_context) html_msg = email_template.render_htmltext( course_email.html_message, email_context) email_msg = EmailMultiAlternatives(subject, plaintext_msg, from_addr, [email], connection=connection) email_msg.attach_alternative(html_msg, 'text/html') email_msg.send() mail_to_users = custom_mail_to_users( course_emailid=course_email.id, user_id=user.id, user_email=email, course_id=course_id) mail_to_users.save()