コード例 #1
0
def load_adjustment_log(request):
    rows = []
    logs = AdjustmentTimeLog.objects.filter(user_id=request.POST.get('user_id')).order_by('-create_date')
    for d in logs:
        create_date = d.create_date.strftime('%b-%d-%y %H:%M:%S')
        rows.append({"user_email": d.user_email,
                     "admin_email": d.admin_email,
                     "adjustment_time": study_time_format(d.adjustment_time, True),
                     "type": d.type,
                     "course_number": d.course_number,
                     "create_date": create_date,
                     "comments": d.comments
                     })
    return HttpResponse(json.dumps({'rows': rows}), content_type="application/json")
コード例 #2
0
def load_single_user_time(request):
    user = User.objects.get(id=request.POST.get('user_id'))
    row = {}
    rts = record_time_store()
    external_time = 0
    all_external_time = 0
    user_id = str(user.id)
    course_id = str(request.POST.get('course_id', None))
    if course_id:
        for enrollment in CourseEnrollment.enrollments_for_user(user):
            try:
                course = course_from_id(enrollment.course_id)
                all_external_time += rts.get_external_time(user_id, course.id)
            except ItemNotFoundError:
                #log.error("User {0} enrolled in non-existent course {1}".format(p.user.username, enrollment.course_id))
                pass
        all_course_time, all_discussion_time, portfolio_time = rts.get_stats_time(user_id)
        adjustment_time_totle = rts.get_adjustment_time(user_id, 'total', None)
        external_time = rts.get_external_time(user_id, course_id)
        course_time = rts.get_course_time(user_id, course_id, 'courseware')
        discussion_time = rts.get_course_time(user_id, course_id, 'discussion')
        collaboration_time = all_discussion_time + portfolio_time
        all_course_time = all_course_time + all_external_time
        total_time = all_course_time + collaboration_time + adjustment_time_totle
    else:
        for enrollment in CourseEnrollment.enrollments_for_user(user):
            try:
                course = course_from_id(enrollment.course_id)
                external_time += rts.get_external_time(user_id, course.id)
            except ItemNotFoundError:
                #log.error("User {0} enrolled in non-existent course {1}".format(p.user.username, enrollment.course_id))
                pass
        adjustment_time_totle = rts.get_adjustment_time(user_id, 'total', None)
        course_time, discussion_time, portfolio_time = rts.get_stats_time(user_id)
        all_course_time = course_time + external_time
        collaboration_time = discussion_time + portfolio_time
        total_time = all_course_time + collaboration_time + adjustment_time_totle

    row = {"id": user_id,
           "total_time": study_time_format(total_time, True),
           "collaboration_time": study_time_format(collaboration_time, True),
           "discussion_time": study_time_format(discussion_time, True),
           "portfolio_time": study_time_format(portfolio_time, True),
           "external_time": study_time_format(external_time, True),
           "course_time": study_time_format(course_time, True)
           }

    return HttpResponse(json.dumps({'row': row}), content_type="application/json")
コード例 #3
0
def load_adjustment_time(request):
    rts = record_time_store()
    user_id = str(request.POST.get('user_id'))
    adjustment_time = rts.get_adjustment_time(user_id, request.POST.get('type'), request.POST.get('course_id'))
    return HttpResponse(json.dumps({'time': study_time_format(adjustment_time, True)}), content_type="application/json")
コード例 #4
0
def do_get_report_data(task, data, request, course_id=None):
    gevent.sleep(0)
    count_success = 0
    rows = []
    rts = record_time_store()
    for i, p in enumerate(data):
        try:
            external_time = 0
            all_external_time = 0
            complete_course_num = 0
            current_course_num = 0
            user_id = str(p.user.id)
            if course_id:
                for enrollment in CourseEnrollment.enrollments_for_user(p.user):
                    try:
                        course = course_from_id(enrollment.course_id)
                        all_external_time += rts.get_external_time(user_id, course.id)
                        field_data_cache = FieldDataCache([course], course.id, p.user)
                        course_instance = get_module(p.user, request, course.location, field_data_cache, course.id, grade_bucket_type='ajax')

                        if course_instance.complete_course:
                            complete_course_num += 1
                        else:
                            current_course_num += 1
                    except ItemNotFoundError:
                        #log.error("User {0} enrolled in non-existent course {1}".format(p.user.username, enrollment.course_id))
                        pass
                all_course_time, all_discussion_time, portfolio_time = rts.get_stats_time(user_id)
                external_time = rts.get_external_time(user_id, course_id)
                course_time = rts.get_course_time(user_id, course_id, 'courseware')
                discussion_time = rts.get_course_time(user_id, course_id, 'discussion')
                collaboration_time = all_discussion_time + portfolio_time
                all_course_time = all_course_time + all_external_time
                
                #@begin:add pd_time in time_report
                #@date:2016-06-03
                pd_time = 0;
                pd_time_tmp = PepRegStudent.objects.values('student_id').annotate(credit_sum=Sum('student_credit')).filter(student_id=user_id)
                if pd_time_tmp:
                    pd_time = pd_time_tmp[0]['credit_sum'] * 3600
                total_time = all_course_time + collaboration_time + rts.get_adjustment_time(user_id, 'total') + pd_time
                #total_time = all_course_time + collaboration_time + rts.get_adjustment_time(user_id, 'total')
                #@end
            else:
                for enrollment in CourseEnrollment.enrollments_for_user(p.user):
                    try:
                        course = course_from_id(enrollment.course_id)
                        external_time += rts.get_external_time(user_id, course.id)
                        field_data_cache = FieldDataCache([course], course.id, p.user)
                        course_instance = get_module(p.user, request, course.location, field_data_cache, course.id, grade_bucket_type='ajax')

                        if course_instance.complete_course:
                            complete_course_num += 1
                        else:
                            current_course_num += 1
                    except ItemNotFoundError:
                        #log.error("User {0} enrolled in non-existent course {1}".format(p.user.username, enrollment.course_id))
                        pass
                course_time, discussion_time, portfolio_time = rts.get_stats_time(user_id)
                all_course_time = course_time + external_time
                collaboration_time = discussion_time + portfolio_time
                
                #@begin:add pd_time in time_report
                #@date:2016-06-03
                pd_time = 0;
                pd_time_tmp = PepRegStudent.objects.values('student_id').annotate(credit_sum=Sum('student_credit')).filter(student_id=user_id)
                if pd_time_tmp:
                    pd_time = pd_time_tmp[0]['credit_sum'] * 3600
                total_time = all_course_time + collaboration_time + rts.get_adjustment_time(user_id, 'total') + pd_time
                #total_time = all_course_time + collaboration_time + rts.get_adjustment_time(user_id, 'total')
                #@end

            rows.append({'id': p.user.id,
                         'user_first_name': p.user.first_name,
                         'user_last_name': p.user.last_name,
                         'user_email': p.user.email,
                         'district': attstr(p, "district.name"),
                         'school': attstr(p, "school.name"),
                         "total_time": study_time_format(total_time, True),
                         "collaboration_time": study_time_format(collaboration_time, True),
                         "discussion_time": study_time_format(discussion_time, True),
                         "portfolio_time": study_time_format(portfolio_time, True),
                         "pd_time": study_time_format(pd_time, True), #2016-06-03 add pd_time in time_report
                         "external_time": study_time_format(external_time, True),
                         "course_time": study_time_format(course_time, True),
                         "complete_course_num": complete_course_num,
                         "current_course_num": current_course_num
                         })
            task.process_num = i + 1
        except Exception as e:
            db.transaction.rollback()
        finally:
            count_success += 1
            task.success_num = count_success
            task.update_time = datetime.now(UTC)
            task.save()
    rts.set_time_report_result(str(request.user.id), rows)
    task.task_read = True
    task.save()
    db.transaction.commit()