def get_course_time(request):
    rts = record_time_store()
    user_id = str(request.POST.get('user_id'))
    type = request.POST.get('type')
    if type != 'courseware':
        rts.set_course_time(user_id, request.POST.get('course_id'), type, settings.PEPPER_SESSION_EXPIRY)
        time = rts.get_course_time(user_id, request.POST.get('course_id'), type)
    else:
        external_time = rts.get_external_time(user_id, request.POST.get('course_id'))
        course_time = rts.get_course_time(user_id, request.POST.get('course_id'), type, int(request.POST.get('add_time_out')))
        time = course_time + external_time
    return utils.JsonResponse({'time': time, 'time_out': settings.PEPPER_SESSION_EXPIRY})
def record_time(request):
    user_id = str(request.POST.get('user_id'))
    rts = record_time_store()
    info = request.POST
    if info['type'] == 'course_page':
        if info['prev_vertical_id'] != '':
            return_info = rts.set_item('end_time', info['time'], user_id, info['prev_vertical_id'], info['prev_time'])
            if return_info['updatedExisting']:
                set_page_time(rts, info, user_id)
        set_course_timeout(rts, info, user_id)
        rts.insert_item({'user_id': user_id, 'vertical_id': info['new_vertical_id'], 'start_time': info['time'], 'location': info['location']})
    else:
        return_info = rts.set_item('end_time', info['time'], user_id, info['prev_vertical_id'], info['prev_time'])
        if return_info['updatedExisting']:
            set_page_time(rts, info, user_id)
    return utils.JsonResponse({})
def get_external_time(request):
    rts = record_time_store()
    user_id = str(request.POST.get('user_id'))
    external_time = rts.get_external_time(user_id, request.POST.get('course_id'))
    return utils.JsonResponse({'external_time': external_time})
def del_external_time(request):
    rts = record_time_store()
    user_id = str(request.POST.get('user_id'))
    rts.del_external_time(user_id, request.POST.get('course_id'), request.POST.get('type'), request.POST.get('external_id'))
    return utils.JsonResponse({})
def save_course_time(request):
    rts = record_time_store()
    user_id = str(request.POST.get('user_id'))
    time = int(request.POST.get('time')) - settings.PEPPER_SESSION_EXPIRY
    rts.set_course_time(user_id, request.POST.get('course_id'), request.POST.get('type'), time)
    return utils.JsonResponse({})
def get_study_time_range(request):
    rts = record_time_store()
    user_id = str(request.user.id)
    count = rts.get_page_total(user_id)
    info = rts.return_page_items(user_id, int(request.POST.get('skip')), int(request.POST.get('limit')))
    return utils.JsonResponse({'results': info, 'count': count})