Exemple #1
0
def do_login(request, user):
    # _track_user_login(user, request)
    try:
        django_login(request, user, backend="django.contrib.auth.backends.ModelBackend")
        request.session.set_expiry(604800)
        request.user = user
        user_extra_data = userdetails(user.id)
        response = JsonResponse(
            {
                "success": True,
                "redirect_url": request.POST.get("redirect_url", ""),
                "status": 200,
                "email": user.email,
                "phone": user_extra_data.phone,
            }
        )
        logs.info(u"phone--> %s", user_extra_data.phone)
        return set_logged_in_cookies(request, response, user)
        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)
Exemple #2
0
def do_login(request, user):
    # _track_user_login(user, request)
    try:
        django_login(request, user,backend='django.contrib.auth.backends.ModelBackend')
        request.session.set_expiry(604800)
        request.user = user
        user_extra_data = userdetails(user.id)
        if not user.extrafields.rpincode:
            response =  JsonResponse(status=200, data={
                "status":200,
                "message": "profile",
                "userid":user.id,
                "number":user.extrafields.rcountry_code
             })
        else:
            response = JsonResponse({
                'success': True,
               'redirect_url': request.POST.get('redirect_url',''),
               'status': 200,
               'email':user.email,
               'phone': user_extra_data.phone,
            })
        logs.info(u'phone--> %s', set_logged_in_cookies(request, response, user))
        loggedin = set_logged_in_cookies(request, response, user)
        return loggedin

        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)
Exemple #3
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)
Exemple #4
0
def docvid_login(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)
        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)
            try:
                check_enrollment = CourseEnrollment.objects.get(
                    user=request.user, course_id=course_key)
            except:
                try:
                    course_mode = CourseMode.objects.get(course_id=course_key)
                    CourseEnrollment.enroll(user,
                                            course_key,
                                            mode=course_mode.mode)
                except:
                    CourseEnrollment.enroll(user, course_key, mode="audit")
        redirect_url = ("https://docvidya.learn.docmode.org/courses/" +
                        course_id + "/courseware")
        # redirect_url = "https://develop.docmode.org/login?next=/oauth2/authorize/confirm"
        # datags = JsonResponse({
        #     'success': True,
        #     'redirect_url':redirect_url,
        #     'status': 200,
        #     'email':user.email
        # })
        # cookie = set_logged_in_cookies(request, datags, user)
        # cookie = cookie.cookies
        # logs.info(u'cookie--> %s', cookie)
        response = JsonResponse({
            "success": True,
            "redirect_url": redirect_url,
            "status": 200,
            "email": user.email,
        })
        logs.info(u"phone--> %s", user_extra_data.phone)
        return set_logged_in_cookies(request, response, user)
        # logs.info(u'loggedin--> %s', loggedin.__dict__)
        # return loggedin
        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)
Exemple #5
0
def vkonnect__login(request, user, courseid):
    # _track_user_login(user, request)
    logs.info('userid--> %s', request.user)

    try:
        logs.info('userid--> %s', request.user)
        if not request.user.is_authenticated:
            request.session.set_expiry(604800)
            django_login(request,
                         user,
                         backend='django.contrib.auth.backends.ModelBackend')
        else:
            logs.info('userid--> %s', request.user)
            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)
        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'

        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_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)
Exemple #6
0
def create_tracking_context(user):
    """ Assembles attributes from user and request objects to be sent along
    in E-Commerce API calls for tracking purposes. """
    context_tracker = tracker.get_tracker().resolve_context()
    # Updated by Mahendra
    from lms.djangoapps.reg_form.views import userdetails
    ucountry = userdetails(user.id)
    usercountry = ucountry.rcountry
    return {
        'lms_user_id': user.id,
        'lms_ip': context_tracker.get('ip'),
        'lms_client_id': context_tracker.get('client_id'),
        'lms_user_country': usercountry,
    }
Exemple #7
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)
        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)
            try:
                check_enrollment = CourseEnrollment.objects.get(
                    user=request.user, course_id=course_key)
            except:
                try:
                    course_mode = CourseMode.objects.get(course_id=course_key)
                    CourseEnrollment.enroll(user,
                                            course_key,
                                            mode=course_mode.mode)
                except:
                    CourseEnrollment.enroll(user, course_key, mode="audit")
        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)
Exemple #8
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)
Exemple #9
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)
Exemple #10
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
Exemple #11
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
Exemple #12
0
    def get(self, request, **kwargs):
        from lms.djangoapps.webform.views import webformdetails

        if "course_id" in request.GET:
            course_id = request.GET.get("course_id")
            # logging.info(course_id)
        else:
            message = _("course_id paramater missing")
            result = {}
            result["Data"] = {}
            result["Status"] = "false"
            result["Message"] = message
            return JsonResponse(result, status=404)
        userstate = ""
        if "user" in request.GET:
            user_name = request.GET.get("user")
            try:
                user = User.objects.get(username=user_name)
                try:
                    userid = userdetails(user)
                    userstate = userid.rcity
                except userdetails.DoesNotExist:
                    pass
            except User.DoesNotExist:
                result = {}
                message = _("User not found for username %s" % (user_name))
                result["Data"] = {}
                result["Status"] = "false"
                result["Message"] = message
                return JsonResponse(result, status=404)
        else:
            result = {}
            message = _("user Parameter Missing")
            result["Data"] = {}
            result["Status"] = "false"
            result["Message"] = message
            return JsonResponse(result, status=400)
        qnadetails = webformdetails(course_id)
        result = {}
        if qnadetails and qnadetails.feedback_form_link:
            if qnadetails.feedback_form_link == "NULL":
                feedback_url = ""
            else:
                feedback_url = qnadetails.feedback_form_link
        else:
            feedback_url = ""
        if qnadetails:
            data = {}
            if userstate:
                data = {
                    "city": userstate,
                    "show_webinar": "true",
                    "feedback_url": feedback_url,
                }
                message = ""
                result["Data"] = data
                result["Status"] = "true"
                result["Message"] = message
            return JsonResponse(result, status=200, safe=False)
        else:
            message = {"error": _("Course not found in webinar")}
            data = {}
            if userstate:
                data = {
                    "city": userstate,
                    "show_webinar": "false",
                    "feedback_url": feedback_url,
                }
                message = ""
                result["Data"] = data
                result["Status"] = "true"
                result["Message"] = message
            return JsonResponse(result, status=200)
Exemple #13
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)
Exemple #14
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)
Exemple #15
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()
Exemple #16
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)