Exemplo n.º 1
0
def docvid_login(request, user,courseid):
    # _track_user_login(user, request)
    try:
        if not request.user.is_authenticated:
            request.session.set_expiry(604800)
            django_login(request, user, backend='django.contrib.auth.backends.ModelBackend')
        else:
            logout(request)
            request.session.set_expiry(604800)
            django_login(request, user, backend='django.contrib.auth.backends.ModelBackend')
        #request.session.set_expiry(604800)
        request.user = user
        #logs.info('userid--> %s',request.user)
        user_extra_data = userdetails(user.id)
        displayname = getuserfullprofile(user.id)
        course_id = request.data.get('course_id','')
        course_id = course_id.replace(' ','+')
        #logs.info('course_id %s',course_id)
        course_key = None
        if course_id:
            course_key = CourseKey.from_string(course_id)
            if not CourseEnrollment.is_enrolled(user, course_key) :
                user_course_enrollment = CourseEnrollment.enroll(user=user, course_key=course_key,mode='honor')
            # else:
                
            #     query = course_id.replace('+','%2B')
            #     query = query.replace(':','%3A')
            #     now_asia = courseid.start.astimezone(timezone('Asia/Kolkata'))
                
            #     docvidya_course_detail = requests.get('https://drlprdoce-drreddys.cec.ocp.oraclecloud.com//content/published/api/v1.1/items?fields=slug&orderBy=updateddate:desc&limit=1&q=((type eq "DocV-Courses") and (fields.course_id eq "' + query + '"))&channelToken=cf84462f73e542e7a8d270dfd2580730')
            #     response = json.loads(docvidya_course_detail.text.encode('utf8'))
            #     courseurl = request.session['drl_http_referer']+'/docv-courses-detail/'+response['items'][0]['slug']
            #     courseurl = courseurl.replace('https://','')
            #     #logs.info("docvidya_course_detail--> %s",response['items'][0]['slug'])
            #     enrolldata = CourseEnrollment.objects.get(user=user,course_id=course_key)
            #     course_image_url = courseid.course_image_url.replace('+','%2B')
            #     logs.info("starttime-->%s",now_asia.strftime("%H:%M"))
            #     logs.info("api-details--> https://s394336720.t.eloqua.com/e/f2?elqFormName=CourseEvents&elqSiteID=394336720&emailAddress="+user.email+"&CourseId="+courseid.display_number_with_default+"&CourseName="+courseid.display_name+"&BannerURL=https://learn.docmode.org"+str(course_image_url)+"&Status=Enrolled&FullName="+displayname.name+"&DisplayDate="+str(courseid.start.date())+"&courseURL="+courseurl+"&EnrollmentID="+str(enrolldata.id)+"&Key=62f74068-90d2-4fd2-bd76-d657fbbbca14&Date="+str(datetime.today()))
            #     syncmail = requests.post("https://s394336720.t.eloqua.com/e/f2?elqFormName=CourseEvents&elqSiteID=394336720&emailAddress="+user.email+"&CourseId="+courseid.display_number_with_default+"&CourseName="+courseid.display_name+"&BannerURL=https://learn.docmode.org"+str(course_image_url)+"&Status=Enrolled&FullName="+displayname.name+"&DisplayDate="+str(courseid.start.date())+"&courseURL="+courseurl+"&EnrollmentID="+str(enrolldata.id)+"&Key=62f74068-90d2-4fd2-bd76-d657fbbbca14&Date="+str(datetime.today()))
            #     logs.info("syncmail--> %s",syncmail.__dict__)
        
        redirect_url = 'https://docvidya.learn.docmode.org/courses/'+course_id+'/courseware'
        
        response = JsonResponse({
            'success': True,
            'redirect_url':redirect_url,
            'status': 200,
            'email':user.email
        })
        #logs.info(u'response2--> %s', response)
        return set_logged_in_cookies(request, response, user)
    except Exception as exc:  # pylint: disable=broad-except
        # AUDIT_LOG.critical("Login failed - Could not create session. Is memcached running?")
        logs.critical("Login failed - Could not create session. Is memcached running?")
        logs.exception(exc)
Exemplo 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"
Exemplo n.º 3
0
def canopi_user_dashboard(request):

    user = request.user

    user_profile = getuserfullprofile(request.user.id)
    user_extra_data = userdetails(request.user.id)

    wallet_user = docmode_canopi_users.objects.filter(user_id=user.id)
    if not wallet_user:
        return redirect("/wallet_user_registration")

    authtoken = docmode_canopi_auth.objects.all().last()
    log.info('datetime-->%s,%s', authtoken.validity, authtoken)
    if authtoken.validity < datetime.datetime.now(UTC):
        auth = requests.request(
            "GET", "https://koa.docmode.org/api/v1/docmode/canopi_auth/")
        authtoken = docmode_canopi_auth.objects.all().last()
        log.info('auth-->%s', auth.json())
    wallet_user = docmode_canopi_users.objects.get(user_id=user.id)

    log.info("wallet_user-->%s", wallet_user.entityid)
    url = "https://ppi-test.canopi.in/canopi-payments/ppi/v1/cards/balance/" + wallet_user.entityid
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + str(authtoken)
    }
    log.info("headers-->%s", headers)
    response = requests.request("GET", url, headers=headers)
    log.info("response-->%s", response.json())

    context = {
        "errors": "welcome",
        "csrf": csrf(request)["csrf_token"],
        "profile": user_profile,
        "extra_data": user_extra_data,
        "response": response.json()
    }

    return render_to_response("canopi_wallet/user_wallet_dashboard.html",
                              context)
Exemplo n.º 4
0
def vkonnect_auth(request, user, courseid):
    # _track_user_login(user, request)
    try:
        #request.session.set_expiry(604800)
        #django_login(request, user, backend='django.contrib.auth.backends.ModelBackend')
        #request.session.set_expiry(604800)
        request.user = user
        user_extra_data = userdetails(user.id)
        user_ext = user_extra_data
        user_detail = getuserfullprofile(user.id)
        course_id = request.data.get('course_id', '')
        course_id = course_id.replace(' ', '+')
        #logs.info('course_id %s',course_id)
        course_key = None
        if course_id:
            course_key = CourseKey.from_string(course_id)
            if not CourseEnrollment.is_enrolled(user, course_key):
                #logs.info("course enrollment function will be call")
                CourseEnrollment.enroll(user=user,
                                        course_key=course_key,
                                        mode='honor')

        redirect_url = 'https://vkonnecthealth.koa.docmode.org/courses/' + course_id + '/courseware'
        logs.debug("Setting user session to never expire")

        return Response({
            'success': True,
            'redirect_url': redirect_url,
            'status': 200,
            'email': user.email,
            'email_valid': 1
        })
        return response
        logs.debug("Setting user session to never expire")
    except Exception as exc:  # pylint: disable=broad-except
        # AUDIT_logs.critical("Login failed - Could not create session. Is memcached running?")
        logs.critical(
            "Login failed - Could not create session. Is memcached running?")
        logs.exception(exc)
Exemplo n.º 5
0
    def _rows_for_users(self, context, users):
        """
        Returns a list of rows for the given users for this report.
        """
        with modulestore().bulk_operations(context.course_id):
            bulk_context = _CourseGradeBulkContext(context, users)

            success_rows, error_rows = [], []
            for user, course_grade, error in CourseGradeFactory().iter(
                    users,
                    course=context.course,
                    collected_block_structure=context.course_structure,
                    course_key=context.course_id,
            ):
                #Added by Mahendra
                user_fullname = getuserfullprofile(user.id)
                user_extra_info = userdetails(user.id)
                if not course_grade:
                    # An empty gradeset means we failed to grade a student.
                    error_rows.append(
                        [user.id, user.username,
                         text_type(error)])
                else:
                    #Updated by Mahendra
                    success_rows.append(
                        [
                            user.id, user.email, user_fullname.name,
                            user.username, user_extra_info.rstate,
                            user_extra_info.rcity
                        ] + self._user_grades(course_grade, context) +
                        self._user_cohort_group_names(user, context) +
                        self._user_experiment_group_names(user, context) +
                        self._user_team_names(user, bulk_context.teams) +
                        self._user_verification_mode(
                            user, context, bulk_context.enrollments) +
                        self._user_certificate_info(
                            user, context, course_grade, bulk_context.certs) +
                        [_user_enrollment_status(user, context.course_id)])
            return success_rows, error_rows
Exemplo n.º 6
0
def cme_export_csv(request, course_id, datatype):
    import csv
    from django.utils.encoding import smart_str

    from opaque_keys.edx.locations import SlashSeparatedCourseKey

    cid = CourseKey.from_string(course_id)

    response = HttpResponse(content_type="text/csv")
    response["Content-Disposition"] = "attachment; filename=users.csv"
    writer = csv.writer(response, csv.excel)
    response.write(u"\ufeff".encode(
        "utf8"))  # BOM (optional...Excel needs it to open UTF-8 file properly)

    course_id = str(cid)
    course_number = course_id.split("+")
    user = request.user
    course_details = CourseOverview.objects.get(id=cid)
    course_exinfo = course_extrainfo.objects.get(course_id=cid)
    webinar_time = int(course_exinfo.total_webinar_hours)
    if user.is_staff:

        if datatype == "enrolled":
            writer.writerow([
                smart_str(u"Userid"),
                smart_str(u"Firstname"),
                smart_str(u"Last Name"),
                smart_str(u"Emailid"),
                smart_str(u"ISD"),
                smart_str(u"Mobile number"),
                smart_str(u"Country"),
                smart_str(u"City"),
                smart_str(u"Place of work"),
                smart_str(u"Profession"),
                smart_str(u"Enrolled date"),
            ])
            response["Content-Disposition"] = ("attachment; filename=" +
                                               str(course_number[1]) +
                                               "_enrolledusers.csv")
            crows = CourseEnrollment.objects.filter(course_id=cid)
            for row in crows:
                logs.info("id--> %s", row.user_id)
                try:
                    assoc_user = User.objects.get(id=row.user_id)
                    user_detail = getuserfullprofile(row.user_id)
                    user_ext = userdetails(assoc_user.id)

                    if (user_ext.user_extra_data != ""
                            and "{" in user_ext.user_extra_data):
                        extd = ast.literal_eval(user_ext.user_extra_data)
                    else:
                        extd = {}
                    ext = json.dumps(extd)
                    ext = eval(ext)

                    name = user_detail.name.split(" ")
                    fname = name[0]

                    if len(name) > 1:
                        lname = name[1]
                    else:
                        lname = "NA"

                    if ext.get("isdcode"):
                        isdcode = ext["isdcode"]
                    elif ext.get("country_code"):
                        isdcode = ext.get("country_code")
                    else:
                        isdcode = "NA"

                    if ext.get("placeofwork"):
                        placeofwork = ext["placeofwork"]
                    elif ext.get("place_of_work"):
                        placeofwork = ext.get("place_of_work")
                    else:
                        placeofwork = "NA"

                    profession = ext.get("profession")
                    if profession:
                        profession = ext["profession"]
                    else:
                        profession = "NA"

                    writer.writerow([
                        smart_str(row.user_id),
                        smart_str(fname),
                        smart_str(lname),
                        smart_str(assoc_user.email),
                        smart_str(isdcode),
                        smart_str(user_ext.phone),
                        smart_str(user_ext.rcountry),
                        smart_str(user_ext.rcity),
                        smart_str(placeofwork),
                        smart_str(profession),
                        smart_str(row.created)
                    ])
                except ObjectDoesNotExist:
                    usernotfound = 0
        elif datatype == "viewers":
            writer.writerow([
                smart_str(u"Userid"),
                smart_str(u"Firstname"),
                smart_str(u"Last Name"),
                smart_str(u"Emailid"),
                smart_str(u"ISD"),
                smart_str(u"Mobile number"),
                smart_str(u"Country"),
                smart_str(u"City"),
                smart_str(u"Place of work"),
                smart_str(u"Profession"),
                smart_str(u"Start date"),
                smart_str(u"Start time"),
                smart_str(u"End date"),
                smart_str(u"End time"),
                smart_str(u"Duration"),
            ])
            response["Content-Disposition"] = ("attachment; filename=" +
                                               str(course_number[1]) +
                                               "_viewers.csv")
            # vrows = (
            #     StudentModule.objects.filter(
            #         course_id=cid, module_type="course"
            #     )
            #     .values("student_id", "created", "state")
            #     .annotate(dcount=Count("student_id"))
            # )
            # vrows = StudentModule.objects.filter(course_id=cid,module_type='sequential').values('student_id','created','state').distinct()
            vrows = (user_session_tracking.objects.filter(
                course_id=cid, pagein__gte=course_details.start).values(
                    "user_id", "course_id").distinct()[300:450])
            count = 0
            for vrow in vrows:
                count = count + 1
                logs.info("id--> %s,%s", vrow["user_id"], count)
                userlogin = user_session_tracking.objects.filter(
                    course_id=vrow["course_id"],
                    user_id=vrow["user_id"],
                    pagein__gte=course_details.start).first()
                userlogout = user_session_tracking.objects.filter(
                    course_id=vrow["course_id"],
                    user_id=vrow["user_id"]).last()
                assoc_user = User.objects.get(id=vrow["user_id"])
                user_ext = userdetails(assoc_user.id)
                intime = userlogin.pagein.astimezone(timezone("Asia/Kolkata"))

                if userlogout.track_updated == 0:
                    new_out_time = userlogout.pageout + datetime.timedelta(
                        hours=webinar_time)
                    outime = new_out_time.astimezone(timezone("Asia/Kolkata"))
                    total_time = str(new_out_time - userlogin.pagein)
                else:
                    outime = userlogout.pageout.astimezone(
                        timezone("Asia/Kolkata"))
                    total_time = str(userlogout.pageout - userlogin.pagein)
                user_detail = getuserfullprofile(assoc_user.id)
                extd = ast.literal_eval(user_ext.user_extra_data)
                ext = json.dumps(extd)
                ext = eval(ext)
                if (user_ext.user_extra_data != ""
                        and "{" in user_ext.user_extra_data):
                    extd = ast.literal_eval(user_ext.user_extra_data)
                else:
                    extd = {}
                ext = json.dumps(extd)
                ext = eval(ext)

                name = user_detail.name.split(" ")
                fname = name[0]

                if len(name) > 1:
                    lname = name[1]
                else:
                    lname = "NA"

                if ext.get("isdcode"):
                    isdcode = ext["isdcode"]
                elif ext.get("country_code"):
                    isdcode = ext.get("country_code")
                else:
                    isdcode = "NA"

                if ext.get("placeofwork"):
                    placeofwork = ext["placeofwork"]
                elif ext.get("place_of_work"):
                    placeofwork = ext.get("place_of_work")
                else:
                    placeofwork = "NA"

                profession = ext.get("profession")
                if profession:
                    profession = ext["profession"]
                else:
                    profession = "NA"

                writer.writerow([
                    smart_str(vrow["user_id"]),
                    smart_str(fname),
                    smart_str(lname),
                    smart_str(assoc_user.email),
                    smart_str(isdcode),
                    smart_str(user_ext.phone),
                    smart_str(user_ext.rcountry),
                    smart_str(user_ext.rcity),
                    smart_str(placeofwork),
                    smart_str(profession),
                    smart_str(intime.strftime("%b %d, %Y ")),
                    smart_str(intime.strftime("%H:%M")),
                    smart_str(outime.strftime("%b %d, %Y ")),
                    smart_str(outime.strftime("%H:%M")),
                    smart_str(total_time),
                ])

    return response
Exemplo n.º 7
0
    def handle(self, *args, **kwargs):
        from student.models import User
        from lms.djangoapps.reg_form.views import get_authuser
        from student.models import CourseEnrollment
        from lms.djangoapps.grades.models import PersistentCourseGrade
        from openedx.core.djangoapps.site_configuration import (
            helpers as configuration_helpers, )
        from lms.djangoapps.send_custom_email.models import (
            Custom_email,
            CustomEmailTemplate,
            custom_mail_to_users,
        )
        from django.core.mail import EmailMultiAlternatives, get_connection
        from opaque_keys.edx.keys import CourseKey, UsageKey
        from django.core.exceptions import ObjectDoesNotExist
        from lms.djangoapps.reg_form.views import getuserfullprofile, userdetails
        from lms.djangoapps.course_extrainfo.models import course_extrainfo
        from bulk_email.tasks import _get_course_email_context
        from courseware.courses import (
            get_courses,
            get_course,
            get_course_by_id,
            get_permission_for_course_about,
            get_studio_url,
            get_course_overview_with_access,
            get_course_with_access,
            sort_by_announcement,
            sort_by_start_date,
        )

        coursetype = course_extrainfo.objects.filter(course_type=1)
        association_list = []
        for courseid in coursetype:
            course_id = CourseKey.from_string(courseid.course_id)
            enrolled_users_lists = CourseEnrollment.objects.filter(
                course_id=course_id)
            for userid in enrolled_users_lists:
                try:
                    non_passed_users = PersistentCourseGrade.objects.get(
                        user_id=userid.user_id,
                        course_id=userid.course_id,
                        letter_grade="",
                    )
                    user_lastlogin = User.objects.get(
                        id=non_passed_users.user_id)
                    if user_lastlogin.last_login is not None:
                        diffdate = (datetime.datetime.now(UTC) -
                                    user_lastlogin.last_login)
                        association_dict = {}
                        if diffdate.days >= 3:
                            try:
                                course_email = Custom_email.objects.get(
                                    course_id=userid.course_id,
                                    template_name=
                                    "universal_reminder_email.template",
                                )
                                if course_email:
                                    log.info("course_email %s", course_email)
                                    cid1 = str(course_id)
                                    userprofile = getuserfullprofile(
                                        user_lastlogin.id)
                                    connection = get_connection()
                                    connection.open()
                                    email = user_lastlogin.email

                                    message = (
                                        "Congratulations" +
                                        user_lastlogin.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_lastlogin.id
                                    email_context["course_id"] = course_id
                                    subject = ("Keep learning in " +
                                               email_context["course_title"])
                                    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_lastlogin.id,
                                        user_email=email,
                                        course_id=course_id,
                                    )
                                    mail_to_users.save()
                                    log.info(u"email_msg2->%s", email_msg)
                            except ObjectDoesNotExist:
                                cid = CourseKey.from_string(
                                    "course-v1:docmode+DM001+2018_Feb_DM001")
                                course_email = Custom_email.objects.get(
                                    course_id=cid,
                                    template_name=
                                    "universal_reminder_email.template",
                                )
                                if course_email:
                                    log.info("course_email %s", course_email)
                                    cid1 = str(course_id)
                                    userprofile = getuserfullprofile(
                                        user_lastlogin.id)
                                    connection = get_connection()
                                    connection.open()
                                    email = user_lastlogin.email

                                    message = (
                                        "Congratulations" +
                                        user_lastlogin.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_lastlogin.id
                                    email_context["course_id"] = course_id
                                    subject = ("Keep learning in " +
                                               email_context["course_title"])
                                    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_lastlogin.id,
                                        user_email=email,
                                        course_id=course_id,
                                    )
                                    mail_to_users.save()
                                    log.info(u"email_msg2->%s", email_msg)
                except ObjectDoesNotExist:
                    non_passed_users = "n/a"
Exemplo n.º 8
0
def docvid_auth(request, user,courseid):
    # _track_user_login(user, request)
    try:
        #request.session.set_expiry(604800)
        #django_login(request, user, backend='django.contrib.auth.backends.ModelBackend')
        #request.session.set_expiry(604800)
        request.user = user
        user_extra_data = userdetails(user.id)
        displayname = getuserfullprofile(user.id)
        course_id = request.data.get('course_id','')
        course_id = course_id.replace(' ','+')
        #logs.info('course_id %s',courseid)
        course_key = None
        if course_id:
            course_key = CourseKey.from_string(course_id)
            if not CourseEnrollment.is_enrolled(user, course_key) :
               #logs.info("course enrollment function will be call")
                #CourseEnrollment.enroll(user=user, course_key=course_key,mode='honor')
                user_course_enrollment = CourseEnrollment.enroll(user=user, course_key=course_key,mode='honor')
                if user_course_enrollment:
                    #logs.info("course enrollment function will be call")
                    query = course_id.replace('+','%2B')
                    query = query.replace(':','%3A')
                    now_asia = courseid.start.astimezone(timezone('Asia/Kolkata'))
                    now_asia = now_asia.strftime("%I:%M %p")
                    docvidya_course_detail = requests.get('https://drlprdoce-drreddys.cec.ocp.oraclecloud.com//content/published/api/v1.1/items?fields=slug&orderBy=updateddate:desc&limit=1&q=((type eq "DocV-Courses") and (fields.course_id eq "' + query + '"))&channelToken=cf84462f73e542e7a8d270dfd2580730')
                    response = json.loads(docvidya_course_detail.text.encode('utf8'))
                    courseurl = 'www.docvidya.com/docv-courses-detail/'+response['items'][0]['slug']
                    courseurl = courseurl.replace('https://','')
                    #logs.info("docvidya_course_detail--> %s",response['items'][0]['slug'])
                    enrolldata = CourseEnrollment.objects.get(user=user,course_id=course_key)
                    course_image_url = courseid.course_image_url.replace('+','%2B')
                    if '&' in courseid.display_name:
                        course_name = courseid.display_name.replace('&','and')
                    else:
                        course_name = courseid.display_name
                    course_exinfo = course_extrainfo.objects.get(course_id=course_id)
                    #logs.info("course_exinfo--> %s",course_exinfo.__dict__)
                    if course_exinfo.credit_point > 0:
                        points = course_exinfo.credit_point
                    else:
                        points = 0
                    #logs.info("points-->%s",points)
                    #logs.info("api-details--> https://s394336720.t.eloqua.com/e/f2?elqFormName=CourseEvents&elqSiteID=394336720&emailAddress="+user.email+"&CourseId="+courseid.display_number_with_default+"&CourseName="+courseid.display_name+"&BannerURL=https://learn.docmode.org"+str(course_image_url)+"&Status=Enrolled&FullName="+displayname.name+"&DisplayDate="+str(courseid.start.date())+' '+str(now_asia.strftime("%H:%M"))+"&courseURL="+courseurl+"&EnrollmentID="+str(enrolldata.id)+"&points="+str(points)+"&Key=62f74068-90d2-4fd2-bd76-d657fbbbca14&Date="+str(datetime.today()))
                    syncmail = requests.post("https://s394336720.t.eloqua.com/e/f2?elqFormName=CourseEvents&elqSiteID=394336720&emailAddress="+user.email+"&CourseId="+courseid.display_number_with_default+"&CourseName="+course_name+"&BannerURL=https://learn.docmode.org"+str(course_image_url)+"&Status=Enrolled&FullName="+displayname.name+"&DisplayDate="+str(courseid.start.date())+'&DisplayTime='+str(now_asia)+"&courseURL="+courseurl+"&EnrollmentID="+str(enrolldata.id)+"&points="+str(points)+"&Key=62f74068-90d2-4fd2-bd76-d657fbbbca14&CourseDate="+str(courseid.start.strftime("%Y-%m-%dT%H:%M:%SZ")))
                    #logs.info("syncmail--> %s",syncmail.__dict__)

        redirect_url = 'https://docvidya.learn.docmode.org/courses/'+course_id+'/courseware'
        #logs.debug("Setting user session to never expire")
        return Response({
            'success': True,
            'redirect_url':redirect_url,
            'status': 200,
            'email':user.email
        })
        #return response
        #logs.debug("Setting user session to never expire")
    except Exception as exc:  # pylint: disable=broad-except
        # AUDIT_LOG.critical("Login failed - Could not create session. Is memcached running?")
        logs.critical("Login failed - Could not create session. Is memcached running?")
        logs.exception(exc)
Exemplo n.º 9
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()
Exemplo n.º 10
0
def cme_world_auth(request, user, courseid):
    # _track_user_login(user, request)
    try:
        #request.session.set_expiry(604800)
        #django_login(request, user, backend='django.contrib.auth.backends.ModelBackend')
        #request.session.set_expiry(604800)
        request.user = user
        user_extra_data = userdetails(user.id)
        user_ext = user_extra_data
        user_detail = getuserfullprofile(user.id)
        course_id = request.data.get('course_id', '')
        course_id = course_id.replace(' ', '+')
        #logs.info('course_id %s',course_id)
        course_key = None
        if course_id:
            course_key = CourseKey.from_string(course_id)
            if not CourseEnrollment.is_enrolled(user, course_key):
                #logs.info("course enrollment function will be call")
                CourseEnrollment.enroll(user=user,
                                        course_key=course_key,
                                        mode='honor')

        redirect_url = 'https://shalina.learn.docmode.org/courses/' + course_id + '/courseware'
        logs.debug("Setting user session to never expire")
        missing_data = 0
        if (user_ext.user_extra_data != ""
                and "{" in user_ext.user_extra_data):
            extd = ast.literal_eval(user_ext.user_extra_data)
        else:
            extd = {}
        ext = json.dumps(extd)
        ext = eval(ext)

        name = user_detail.name.split(" ")
        fname = name[0]

        if len(name) > 1:
            lname = name[1]
        else:
            missing_data = 1
            lname = "NA"

        if ext.get("isdcode"):
            isdcode = ext["isdcode"]
        elif ext.get("country_code"):
            isdcode = ext.get("country_code")
        else:
            isdcode = "NA"

        if ext.get("placeofwork"):
            placeofwork = ext["placeofwork"]
        elif ext.get("place_of_work"):
            placeofwork = ext.get("place_of_work")
        else:
            placeofwork = "NA"
            missing_data = 1

        profession = ext.get("profession")
        if profession:
            profession = ext["profession"]
        else:
            profession = "NA"
            missing_data = 1

        othercountry = ext.get("othercountry")
        if othercountry:
            othercountry = ext["othercountry"]
        else:
            missing_data = 1
            othercountry = "NA"

        otherisd = ext.get("otherisd")
        if otherisd:
            otherisd = ext["otherisd"]
        else:
            missing_data = 1
            otherisd = "NA"

        logs.info('before if-----> ')
        if missing_data == 1:
            logs.info('after if-----> ')
            return Response({
                'success': True,
                'fname': fname,
                'lname': lname,
                'email': user.email,
                'isdcode': isdcode,
                'phone': user_ext.phone,
                'country': user_ext.rcountry,
                'city': user_ext.rcity,
                'placeofwork': placeofwork,
                'profession': profession,
                'othercountry': othercountry,
                'otherisd': otherisd,
                'status': 303
            })
        else:
            logs.info('after else-----> ')
            return Response({
                'success': True,
                'redirect_url': redirect_url,
                'status': 200,
                'email': user.email,
                'email_valid': 1
            })
        #return response
        logs.debug("Setting user session to never expire")
    except Exception as exc:  # pylint: disable=broad-except
        # AUDIT_logs.critical("Login failed - Could not create session. Is memcached running?")
        logs.critical(
            "Login failed - Could not create session. Is memcached running?")
        logs.exception(exc)
Exemplo n.º 11
0
def export_course_viewver_report(self,course_id,filename,admin_user_id,datatype,report_obj_id):
    import time
    time.sleep(5)
    course_report_obj = CourseReportLink.objects.get(id=report_obj_id)
    course_report_obj.status = "inprogress"
    course_report_obj.save()
    course_key = CourseKey.from_string(course_id)
    course_enrollment_user_ids = CourseEnrollment.objects.filter(course_id=course_key,is_active=True).values('user_id')
    workbook = xlsxwriter.Workbook(settings.MEDIA_ROOT + filename)
    worksheet = workbook.add_worksheet()
    import csv
    from django.utils.encoding import smart_str

    from opaque_keys.edx.locations import SlashSeparatedCourseKey
    cid = CourseKey.from_string(course_id)

    def getspecialization(userId):
        from lms.djangoapps.specialization.views import specializationName

        speczname = ""
        try:
            getDetails = extrafields.objects.get(user_id=userId)
            specname = specializationName(getDetails.specialization_id)
            if specname != " ":
                speczname = specname
            else:
                speczname = "N/A"
        except ObjectDoesNotExist:
            speczname = "N/A"

        return speczname

    def getusertype(userId):
        u_type = ""
        try:
            getDetails = extrafields.objects.get(user_id=userId)
            utype = getDetails.user_type
            if utype == "dr":
                u_type = "Doctor"
            elif utype == "hc":
                u_type == "Healthcare Specialists"
            elif utype == "ms":
                u_type = "Medical Student"
            elif utype == "u":
                u_type = "User"
        except ObjectDoesNotExist:
            u_type = "N/A"
        return u_type

    def getViewerName(userId):
        vName = ""
        try:
            getDetails = UserProfile.objects.get(user_id=userId)
            vName = getDetails.name
        except ObjectDoesNotExist:
            getDetails = None

        return vName

    def getemail(userId):
        vEmail = ""
        try:
            getDetails = User.objects.get(id=userId)
            vEmail = getDetails.email
        except ObjectDoesNotExist:
            getDetails = None

        return vEmail

    course_id = str(cid)
    course_number = course_id.split("+")
    user = User.objects.get(id=admin_user_id)
    course_details = CourseOverview.objects.get(id=cid)
    course_exinfo = course_extrainfo.objects.get(course_id=cid)
    row = 0
    col = 0
    if user.is_staff:
        if "synapse" in course_id:
            column_list = ["Userid","Name","Emailid","Mobile","Type","MCI","Specialization","Country","State","City","Pincode","Date","Video Watch time","Is Active","iadvl"]
            for column in column_list:
                worksheet.write(0, col, column)
                col += 1
        elif 'SLNA' in course_id and datatype=='enrolled':
            column_list = ["Userid","First name","Lastname","Emailid","ISD","Mobile Number","Country","City","Place of work","Profession","Enrolled date"]
            for column in column_list:
                worksheet.write(0, col, column)
                col += 1
        elif (str(course_details.start) > "2021-03-01 15:00:00"
            and datatype == "viewers"
        ):
            if 'SLNA' in course_id :
                column_list = ["Userid","First name","Lastname","Emailid","ISD","Mobile Number","Country","City","Place of work","Profession","Start date","Start Time","End date","End time","Duration"]
            else:
                column_list = ["Name","Emailid","Mobile","Type","MCI","Specialization","Country","State","City","Pincode","pagein","pageout","Total session time","Is Active","Registered Medical Council","User Ip"]
            for column in column_list:
                worksheet.write(0, col, column)
                col += 1
        else:
            column_list = ["Userid","Name","Emailid","Mobile","Type","MCI","Specialization","Country","State","City","Pincode","Date","Video Watch time","Is Active","Registered Medical Council"]
            for column in column_list:
                worksheet.write(0, col, column)
                col += 1
        row +=1    
        if datatype == "enrolled":
            crows = CourseEnrollment.objects.filter(course_id=cid)
            if "synapse" in course_id:
                for rows in crows:
                    col = 0
                    try:
                        assoc_user = User.objects.get(id=rows.user_id)
                        user_ext = userdetails(assoc_user.id)
                        worksheet.write(row, col, rows.user_id)
                        col +=1
                        worksheet.write(row, col,getViewerName(rows.user_id))
                        col +=1
                        worksheet.write(row, col,assoc_user.email)
                        col +=1
                        worksheet.write(row, col,user_ext.phone)
                        col +=1
                        worksheet.write(row, col,user_ext.user_type)
                        col +=1
                        worksheet.write(row, col,user_ext.reg_num)
                        col +=1
                        worksheet.write(row, col,getspecialization(rows.user_id))
                        col +=1
                        worksheet.write(row, col,user_ext.rcountry)
                        col +=1
                        worksheet.write(row, col,user_ext.rstate)
                        col +=1
                        worksheet.write(row, col,user_ext.rcity)
                        col +=1
                        worksheet.write(row, col,user_ext.rpincode)
                        col +=1
                        worksheet.write(row, col,str(rows.created))
                        col +=1
                        worksheet.write(row, col,"N/A")
                        col +=1
                        worksheet.write(row, col,assoc_user.is_active)
                        col +=1
                        worksheet.write(row, col,user_ext.user_extra_data)
                        col +=1
                    except ObjectDoesNotExist:
                        usernotfound = 0
                    row +=1
            elif "SLNA" in course_id:
                for rows in crows:
                    try:
                        assoc_user = User.objects.get(id=rows.user_id)
                        user_detail = getuserfullprofile(rows.user_id)
                        user_ext = userdetails(assoc_user.id)
                        
                        if (
                            user_ext.user_extra_data != ""
                            and "{" in user_ext.user_extra_data
                        ):
                            extd = ast.literal_eval(user_ext.user_extra_data)
                        else:
                            extd = {}
                        ext = json.dumps(extd)
                        ext = eval(ext)
                        
                        name = user_detail.name.split(" ")
                        fname = name[0]
                        
                        if len(name) > 1:
                            lname = name[1]
                        else:
                            lname = "NA"

                        if ext.get("isdcode"):
                            isdcode = ext["isdcode"]
                        elif ext.get("country_code"):
                            isdcode = ext.get("country_code")
                        else:
                            isdcode = "NA"

                        if ext.get("placeofwork"):
                            placeofwork = ext["placeofwork"]
                        elif ext.get("place_of_work"):
                            placeofwork = ext.get("place_of_work")
                        else:
                            placeofwork = "NA"


                        profession = ext.get("profession")
                        if profession:
                            profession = ext["profession"]
                        else:
                            profession = "NA"

                        col = 0
                        worksheet.write(row, col, rows.user_id)
                        col +=1
                        worksheet.write(row, col, fname)
                        col +=1
                        worksheet.write(row, col, lname)
                        col +=1
                        worksheet.write(row, col, assoc_user.email)
                        col +=1
                        worksheet.write(row, col, isdcode)
                        col +=1
                        worksheet.write(row, col, user_ext.phone)
                        col +=1
                        worksheet.write(row, col, user_ext.rcountry)
                        col +=1
                        worksheet.write(row, col, user_ext.rcity)
                        col +=1
                        worksheet.write(row, col, placeofwork)
                        col +=1
                        worksheet.write(row, col, profession)
                        col +=1
                        worksheet.write(row, col, str(rows.created))
                        col +=1
                    except ObjectDoesNotExist:
                        usernotfound = 0
                    row +=1
            else:
                for rows in crows:
                    col = 0
                    try:
                        assoc_user = User.objects.get(id=rows.user_id)
                        user_ext = userdetails(assoc_user.id)
                        worksheet.write(row, col,rows.user_id),
                        col +=1
                        worksheet.write(row, col,getViewerName(rows.user_id))
                        col +=1
                        worksheet.write(row, col,getemail(rows.user_id))
                        col +=1
                        worksheet.write(row, col,user_ext.phone)
                        col +=1
                        worksheet.write(row, col,getusertype(rows.user_id))
                        col +=1
                        worksheet.write(row, col,user_ext.reg_num)
                        col +=1
                        worksheet.write(row, col,getspecialization(rows.user_id))
                        col +=1
                        worksheet.write(row, col,user_ext.rcountry)
                        col +=1
                        worksheet.write(row, col,user_ext.rstate)
                        col +=1
                        worksheet.write(row, col,user_ext.rcity)
                        col +=1
                        worksheet.write(row, col,user_ext.rpincode)
                        col +=1
                        worksheet.write(row, col,str(rows.created))
                        col +=1
                        worksheet.write(row, col,"N/A")
                        col +=1
                        worksheet.write(row, col,assoc_user.is_active)
                        col +=1
                        worksheet.write(row, col,user_ext.user_registered_medical_council)
                    except ObjectDoesNotExist:
                        usernotfound = 0
                    row +=1
        elif datatype == "viewers":
            if (str(course_details.start) > "2021-03-01 15:00:00"
            ):

                if "SLNA" in course_id:
                    webinar_time = int(course_exinfo.total_webinar_hours)
                    vrows = (
                    user_session_tracking.objects.filter(course_id=cid,pagein__gte=course_details.start)
                    .values("user_id", "course_id")
                    .distinct()
                    )
                    for vrow in vrows:
                        userlogin = user_session_tracking.objects.filter(
                                course_id=vrow["course_id"], user_id=vrow["user_id"],pagein__gte=course_details.start
                            ).first()
                        userlogout = user_session_tracking.objects.filter(
                                course_id=vrow["course_id"], user_id=vrow["user_id"]
                            ).last()
                        assoc_user = User.objects.get(id=vrow["user_id"])
                        user_ext = userdetails(assoc_user.id)
                        intime = userlogin.pagein.astimezone(timezone("Asia/Kolkata"))

                        if userlogout.track_updated == 0:
                            new_out_time = userlogout.pageout + datetime.timedelta(
                                hours=webinar_time
                            )
                            outime = new_out_time.astimezone(timezone("Asia/Kolkata"))
                            total_time = str(new_out_time - userlogin.pagein)
                        else:
                            outime = userlogout.pageout.astimezone(timezone("Asia/Kolkata"))
                            total_time = str(userlogout.pageout - userlogin.pagein)
                        user_detail = getuserfullprofile(assoc_user.id)
                        if '{' in user_ext.user_extra_data:
                            extd = ast.literal_eval(user_ext.user_extra_data)
                            ext = json.dumps(extd)
                            ext = eval(ext)
                            if (
                                    user_ext.user_extra_data != ""
                                    and "{" in user_ext.user_extra_data
                                ):
                                    extd = ast.literal_eval(user_ext.user_extra_data)
                            else:
                                extd = {}
                            ext = json.dumps(extd)
                            ext = eval(ext)
                        else:
                            ext = {}
                        
                        name = user_detail.name.split(" ")
                        fname = name[0]
                        
                        if len(name) > 1:
                            lname = name[1]
                        else:
                            lname = "NA"

                        if ext.get("isdcode"):
                            isdcode = ext["isdcode"]
                        elif ext.get("country_code"):
                            isdcode = ext.get("country_code")
                        else:
                            isdcode = "NA"

                        if ext.get("placeofwork"):
                            placeofwork = ext["placeofwork"]
                        elif ext.get("place_of_work"):
                            placeofwork = ext.get("place_of_work")
                        else:
                            placeofwork = "NA"


                        profession = ext.get("profession")
                        if profession:
                            profession = ext["profession"]
                        else:
                            profession = "NA"
                        col = 0
                        worksheet.write(row, col,vrow["user_id"])
                        col +=1
                        worksheet.write(row, col,fname)
                        col +=1
                        worksheet.write(row, col,lname)
                        col +=1
                        worksheet.write(row, col,assoc_user.email)
                        col +=1
                        worksheet.write(row, col,isdcode)
                        col +=1
                        worksheet.write(row, col,user_ext.phone)
                        col +=1
                        worksheet.write(row, col,user_ext.rcountry)
                        col +=1
                        worksheet.write(row, col,user_ext.rcity)
                        col +=1
                        worksheet.write(row, col,placeofwork)
                        col +=1
                        worksheet.write(row, col,profession)
                        col +=1
                        worksheet.write(row, col,intime.strftime("%b %d, %Y "))
                        col +=1
                        worksheet.write(row, col,intime.strftime("%H:%M"))
                        col +=1
                        worksheet.write(row, col,outime.strftime("%b %d, %Y "))
                        col +=1
                        worksheet.write(row, col,outime.strftime("%H:%M"))
                        col +=1
                        worksheet.write(row, col,total_time)
                        row +=1
                else:
                    webinar_time = int(course_exinfo.total_webinar_hours)
                    course_start = course_details.start + datetime.timedelta(
                        hours=webinar_time
                    )
                    vrows = (
                        user_session_tracking.objects.filter(course_id=cid,pagein__gte=course_details.start)
                        .values("user_id", "course_id")
                        .distinct()
                    )

                    for vrow in vrows:
                        user_exist = User.objects.filter(id=vrow["user_id"])
                        if user_exist:
                            userlogin = user_session_tracking.objects.filter(
                                course_id=vrow["course_id"], user_id=vrow["user_id"],pagein__gte=course_details.start
                            ).first()
                            userlogout = user_session_tracking.objects.filter(
                                course_id=vrow["course_id"], user_id=vrow["user_id"]
                            ).last()
                            assoc_user = User.objects.get(id=vrow["user_id"])
                            user_ext = userdetails(assoc_user.id)
                            datetimeFormat = "%Y-%m-%d %H:%M:%S"
                            intime = userlogin.pagein.astimezone(timezone("Asia/Kolkata"))

                            if userlogout.track_updated == 0:
                                new_out_time = userlogout.pageout + datetime.timedelta(
                                    hours=webinar_time
                                )
                                outime = new_out_time.astimezone(timezone("Asia/Kolkata"))
                                total_time = str(new_out_time - userlogin.pagein)
                            else:
                                outime = userlogout.pageout.astimezone(timezone("Asia/Kolkata"))
                                total_time = str(userlogout.pageout - userlogin.pagein)
                            col = 0
                            worksheet.write(row, col,getViewerName(vrow["user_id"]))
                            col +=1
                            worksheet.write(row, col,getemail(vrow["user_id"]))
                            col +=1
                            worksheet.write(row, col,user_ext.phone)
                            col +=1
                            worksheet.write(row, col,getusertype(vrow["user_id"]))
                            col +=1
                            worksheet.write(row, col,user_ext.reg_num)
                            col +=1
                            worksheet.write(row, col,getspecialization(vrow["user_id"]))
                            col +=1
                            worksheet.write(row, col,user_ext.rcountry)
                            col +=1
                            worksheet.write(row, col,user_ext.rstate)
                            col +=1
                            worksheet.write(row, col,user_ext.rcity)
                            col +=1
                            worksheet.write(row, col,user_ext.rpincode)
                            col +=1
                            worksheet.write(row, col,intime.strftime("%b %d, %Y %H:%M"))
                            col +=1
                            worksheet.write(row, col,outime.strftime("%b %d, %Y %H:%M"))
                            col +=1 
                            worksheet.write(row, col,total_time.split(".")[0])
                            col +=1 
                            worksheet.write(row, col,assoc_user.is_active)
                            col +=1
                            worksheet.write(row, col,userlogout.user_ip)
                            row +=1
            else:
                vrows = (
                    StudentModule.objects.filter(course_id=cid, module_type="course")
                    .values("student_id", "created", "state")
                    .annotate(dcount=Count("student_id"))[:7000]
                )
                # vrows = StudentModule.objects.filter(course_id=cid,module_type='sequential').values('student_id','created','state').distinct()
                for vrow in vrows:
                    col = 0
                    # log.info(u'vrow-> %s',vrow['student_id'])
                    assoc_user = User.objects.get(id=vrow["student_id"])
                    user_ext = userdetails(assoc_user.id)
                    worksheet.write(row, col,vrow["student_id"])
                    col +=1
                    worksheet.write(row, col,getViewerName(vrow["student_id"]))
                    col +=1
                    worksheet.write(row, col,getemail(vrow["student_id"]))
                    col +=1
                    worksheet.write(row, col,user_ext.phone)
                    col +=1
                    worksheet.write(row, col,getusertype(vrow["student_id"]))
                    col +=1
                    worksheet.write(row, col,user_ext.reg_num)
                    col +=1
                    worksheet.write(row, col,getspecialization(vrow["student_id"]))
                    col +=1
                    worksheet.write(row, col,user_ext.rcountry)
                    col +=1
                    worksheet.write(row, col,user_ext.rstate)
                    col +=1
                    worksheet.write(row, col,user_ext.rcity)
                    col +=1
                    worksheet.write(row, col,user_ext.rpincode)
                    col +=1
                    worksheet.write(row, col,str(vrow["created"]))
                    col +=1
                    worksheet.write(row, col,vrow["state"])
                    col +=1
                    worksheet.write(row, col,assoc_user.is_active)
                    col +=1
                    worksheet.write(row, col,user_ext.user_extra_data)
                    row +=1
    else:
        if "synapse" in course_id:
            column_list = ["Name","Type","MCI","Specialization","State","City","Pincode","Date","Video Watch time","Is Active","IADVL"]
            for column in column_list:
                worksheet.write(0, col, column)
                col += 1
        else:
            column_list = ["Name","Type","MCI","Specialization","State","City","Pincode","Date","Video Watch time","Is Active"]
            for column in column_list:
                worksheet.write(0, col, column)
                col += 1
        row +=1
        if datatype == "enrolled":
            crows = CourseEnrollment.objects.filter(course_id=cid)
            if "synapse" in course_id:
                for rows in crows:
                    col = 0
                    assoc_user = User.objects.get(id=rows.user_id)
                    user_ext = userdetails(assoc_user.id)
                    worksheet.write(row, col,getViewerName(rows.user_id))
                    col +=1
                    worksheet.write(row, col,getusertype(rows.user_id))
                    col +=1
                    worksheet.write(row, col,user_ext.reg_num)
                    col +=1
                    worksheet.write(row, col,getspecialization(rows.user_id))
                    col +=1
                    worksheet.write(row, col,user_ext.rstate)
                    col +=1
                    worksheet.write(row, col,user_ext.rcity)
                    col +=1
                    worksheet.write(row, col,user_ext.rpincode)
                    col +=1
                    worksheet.write(row, col,str(rows.created))
                    col +=1
                    worksheet.write(row, col,"N/A")
                    col +=1
                    worksheet.write(row, col,assoc_user.is_active)
                    col +=1
                    worksheet.write(row, col,user_ext.user_extra_data)
                    row +=1
            else:
                for rows in crows:
                    col = 0
                    assoc_user = User.objects.get(id=rows.user_id)
                    user_ext = userdetails(assoc_user.id)
                    worksheet.write(row, col,getViewerName(rows.user_id))
                    col +=1
                    worksheet.write(row, col,getusertype(rows.user_id))
                    col +=1
                    worksheet.write(row, col,user_ext.reg_num)
                    col +=1
                    worksheet.write(row, col,getspecialization(rows.user_id))
                    col +=1
                    worksheet.write(row, col,user_ext.rstate)
                    col +=1
                    worksheet.write(row, col,user_ext.rcity)
                    col +=1
                    worksheet.write(row, col,user_ext.rpincode)
                    col +=1
                    worksheet.write(row, col,str(rows.created))
                    col +=1
                    worksheet.write(row, col,"N/A")
                    col +=1
                    worksheet.write(row, col,assoc_user.is_active)
                    row +=1
        elif datatype == "viewers":
            vrows = StudentModule.objects.filter(course_id=cid, module_type="course")[
                :7000
            ]
            for vrow in vrows:
                col = 0
                assoc_user = User.objects.get(id=vrow.student_id)
                user_ext = userdetails(assoc_user.id)
                worksheet.write(row, col,getViewerName(vrow.student_id))
                col +=1
                worksheet.write(row, col,getusertype(vrow.student_id))
                col +=1
                worksheet.write(row, col,user_ext.reg_num)
                col +=1
                worksheet.write(row, col,getspecialization(vrow.student_id))
                col +=1
                worksheet.write(row, col,user_ext.rstate)
                col +=1
                worksheet.write(row, col,user_ext.rcity)
                col +=1
                worksheet.write(row, col,user_ext.rpincode)
                col +=1
                worksheet.write(row, col,str(vrow.created))
                col +=1
                worksheet.write(row, col,vrow.state)
                col +=1
                worksheet.write(row, col,assoc_user.is_active)
                row +=1
    workbook.close()
    with open(settings.MEDIA_ROOT +filename, 'rb') as model_excel:
        access_file = model_excel
        bucket_name = BUCKET_NAME +'/'+ 'course_access_report/'
        conn = boto.connect_s3(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY)
        bucket = conn.get_bucket(BUCKET_NAME)
        imagedate = datetime.date.today()
        imagedate = imagedate.strftime('%d_%m_%Y')
        fs = FileSystemStorage()
        filenames = fs.save(workbook.filename, access_file)
        uploaded_file_url = fs.url(filenames)
        k = Key(bucket)
        course_overview = CourseOverview.objects.get(id=course_key)
        course_name = course_overview.display_name
        k.key =filename
        k.set_contents_from_filename(workbook.filename)
        k.make_public()
        imageurl = 'https://s3-ap-southeast-1.amazonaws.com/docmode-org-uploads/'+filename
        course_report_obj.status = "success"
        course_report_obj.file_path = imageurl
        course_report_obj.save()
        course_access_obj = CourseViewersReportLink(course_id=course_id,file_path=imageurl,file_name=filename)
        course_access_obj.save()
Exemplo n.º 12
0
def canopi_user_registration(request):

    user = request.user
    user_profile = getuserfullprofile(request.user.id)
    user_extra_data = userdetails(request.user.id)

    log.info("userid-->%s", user.id)
    wallet_user = docmode_canopi_users.objects.filter(user_id=user.id)
    if wallet_user:

        return redirect("/wallet_dashboard")
    else:
        if request.is_ajax():
            if request.method == "POST":
                if not 'check_phone_registered' in request.POST:
                    authtoken = docmode_canopi_auth.objects.all().last()
                    log.info('datetime-->%s,%s', authtoken.validity, authtoken)
                    if authtoken.validity < datetime.datetime.now(UTC):
                        auth = requests.request(
                            "GET",
                            "https://koa.docmode.org/api/v1/docmode/canopi_auth/"
                        )
                        authtoken = docmode_canopi_auth.objects.all().last()
                        log.info('auth-->%s', auth.json())
                    kitno = kitno_assgined_user.objects.filter(
                        email="").first()
                    log.info("kitno-->%s", kitno.kit_number)
                    data = request.POST.dict()
                    dob = data.get("dob").replace("/", "-")
                    log.info("dob%s", dob)
                    user_data = {
                        "countryofIssue": "IND",
                        "cardType": "V",
                        "kitNo": kitno.kit_number,
                        "title": data.get("title"),
                        "firstName": data.get("fname"),
                        "lastName": data.get("lname"),
                        "gender": data.get("gender"),
                        "specialDate": dob,
                        "contactNo": data.get("phone"),
                        "emailAddress": data.get("emailid"),
                        "address": data.get("address1"),
                        "address2": data.get("address2"),
                        "city": data.get("city"),
                        "state": data.get("state"),
                        "country": data.get("country"),
                        "pincode": data.get("pincode"),
                        "idType": "PAN",
                        "idNumber": data.get("aadhar"),
                        "idExpiry": "2030-01-01",
                        "kycStatus": "MIN_KYC",
                        "countryCode": "+91",
                        "otp": data.get("otp"),
                        "addressDto": {
                            "contactNo1":
                            data.get("phone"),
                            "contactNo2":
                            "N/A",
                            "emailAddress1":
                            data.get("emailid"),
                            "emailAddress2":
                            "N/A",
                            "notification":
                            "1010",
                            "address": [{
                                "title": "PERMANENT",
                                "address1": data.get("address1"),
                                "address2": data.get("address2"),
                                "address3": "N/A",
                                "city": data.get("city"),
                                "state": data.get("state"),
                                "country": data.get("country"),
                                "pinCode": data.get("pincode")
                            }]
                        }
                    }

                    log.info("data--->%s", user_data)

                    url = "https://ppi-test.canopi.in/canopi-payments/ppi/v1/customers/register"
                    headers = {
                        "Content-Type": "application/json",
                        "Authorization": "Bearer " + str(authtoken)
                    }

                    response = requests.request("POST",
                                                url,
                                                json=user_data,
                                                headers=headers)
                    response = response.json()
                    log.info('response-->%s', response)
                    if 'result' in response:
                        if response['result'] is not None:
                            log.info('response-->%s', response)
                            docmode_canopi, created = docmode_canopi_users.objects.get_or_create(
                                entityid=response["result"]["entityId"])
                            docmode_canopi.businessid = response["result"][
                                "sorCustomerId"]
                            docmode_canopi.businesstype = "Customer"
                            docmode_canopi.kitno = response["result"]["kitNo"]
                            docmode_canopi.cardtype = "V"
                            docmode_canopi.title = "Mr."
                            docmode_canopi.idtype = "PAN"
                            docmode_canopi.idnumber = data.get("aadhar")
                            docmode_canopi.idexpiry = "N/A"
                            docmode_canopi.countryofissue = "IND"
                            docmode_canopi.programtype = "customer"
                            docmode_canopi.country_code = "+91"
                            docmode_canopi.otp = data.get("otp")
                            docmode_canopi.user_id = request.user.id
                            docmode_canopi.kycexpiry_date = response["result"][
                                "kycExpiryDate"]
                            docmode_canopi.kyc_status = "MIN_KYC"
                            docmode_canopi.address1 = data.get("address1")
                            docmode_canopi.address2 = data.get("address2")
                            docmode_canopi.address_title = "PERMANENT"
                            docmode_canopi.contact1 = data.get("phone")
                            docmode_canopi.email1 = user.email
                            docmode_canopi.save()

                            if docmode_canopi:
                                log.info('docmode_canopi-->%s', docmode_canopi)

                            kituserno = kitno_assgined_user.objects.get(
                                kit_number=kitno.kit_number)
                            log.info('kituserno-->%s', kitno.id)
                            kituser = kitno_assgined_user.objects.get(
                                id=kitno.id)
                            kituser.email = data.get("emailid")
                            kituser.save()
                            log.info('kituser-->%s', kituser)
                            return JsonResponse(response,
                                                status=200,
                                                safe=False)
                        else:
                            return JsonResponse(response, status=400)
                    else:
                        return JsonResponse(response, status=400)
                else:
                    log.info('data--->%s', request.POST.dict())
                    data = request.POST.dict()
                    phone_exist = docmode_canopi_users.objects.filter(
                        contact1=data.get('phone'))
                    if phone_exist:
                        response = {
                            "status": 200,
                            "Msg": "This phone number is already registered!"
                        }
                    else:
                        response = {
                            "status": 400,
                            "Msg": "This phone number is not registered!"
                        }

                    return JsonResponse(response, status=200, safe=False)

        #messages.success(request, "Kol registration successful.")

        context = {
            "errors": "welcome",
            "csrf": csrf(request)["csrf_token"],
            "profile": user_profile,
            "extra_data": user_extra_data
        }

        return render_to_response("canopi_wallet/user_registration.html",
                                  context)