Esempio n. 1
0
 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
Esempio n. 2
0
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"
Esempio n. 3
0
 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')
Esempio n. 4
0
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()