def transcript(request): course_list = request.user.courses_as_student.all() courses_info = [] for course in course_list: total_mark = 0 unit_list = Unit.objects.filter(course=course) units_info = [] for unit in unit_list: unit_info = {} mark, relative_mark = calculate_unit_mark(unit, request.user) total_mark += relative_mark unit_info = { 'unit': unit, 'mark': mark, 'normalized_weight': normalize_unit_weight(unit), } units_info.append(unit_info) courses_info.append({ 'course': course, 'units_info': units_info, 'mark': total_mark, }) return render_to_response('courses/transcript.html', { 'courses_info': courses_info, }, context_instance=RequestContext(request))
def teacheradmin_stats_units(request, course_slug): course = get_object_or_404(Course, slug=course_slug) data = [] use_old_calculus = False if course.slug in settings.COURSES_USING_OLD_TRANSCRIPT: use_old_calculus = True activity = get_db().get_collection('activity') unit_list = course.unit_set.all() for unit in unit_list: unit_data = { 'id': unit.id, 'title': unit.title, 'started': 0, 'completed': 0 } if getattr(course, "threshold", None) is not None: # if the course doesn't support certification, then don't return # the 'passed' stat since it doesn't apply unit_data['passed'] = 0 for student in course.students.all(): if calculate_unit_mark(unit, student, use_old_calculus)[0] >= float( course.threshold): unit_data['passed'] += 1 kqs = [kq.id for kq in unit.knowledgequantum_set.all()] for student in course.students.all(): user_activity_list = activity.find_one({'user': student.id}, safe=True) if user_activity_list is not None: visited_kqs = user_activity_list.get('courses', {}).get( unicode(course.id), {}).get('kqs', []) started = 0 completed = 0 for kq in visited_kqs: if int(kq) in kqs: started = 1 completed += 1 unit_data['started'] += started if len(kqs) == completed: unit_data['completed'] += 1 data.append(unit_data) return HttpResponse(simplejson.dumps(data), mimetype='application/json')
def teacheradmin_stats_units(request, course_slug): course = get_object_or_404(Course, slug=course_slug) data = [] use_old_calculus = False if course.slug in settings.COURSES_USING_OLD_TRANSCRIPT: use_old_calculus = True activity = get_db().get_collection('activity') unit_list = course.unit_set.all() for unit in unit_list: unit_data = { 'id': unit.id, 'title': unit.title, 'started': 0, 'completed': 0 } if getattr(course, "threshold", None) is not None: # if the course doesn't support certification, then don't return # the 'passed' stat since it doesn't apply unit_data['passed'] = 0 for student in course.students.all(): if calculate_unit_mark(unit, student, use_old_calculus)[0] >= float(course.threshold): unit_data['passed'] += 1 kqs = [kq.id for kq in unit.knowledgequantum_set.all()] for student in course.students.all(): user_activity_list = activity.find_one({'user': student.id}, safe=True) if user_activity_list is not None: visited_kqs = user_activity_list.get('courses', {}).get(unicode(course.id), {}).get('kqs', []) started = 0 completed = 0 for kq in visited_kqs: if int(kq) in kqs: started = 1 completed += 1 unit_data['started'] += started if len(kqs) == completed: unit_data['completed'] += 1 data.append(unit_data) return HttpResponse(simplejson.dumps(data), mimetype='application/json')
def transcript(request): course_list = request.user.courses_as_student.all() courses_info = [] for course in course_list: total_mark = 0 unit_list = Unit.objects.filter(course=course) units_info = [] for unit in unit_list: unit_info = {} mark, relative_mark = calculate_unit_mark(unit, request.user) total_mark += relative_mark unit_info = {'unit': unit, 'mark': mark, 'normalized_weight': normalize_unit_weight(unit), } units_info.append(unit_info) courses_info.append({'course': course, 'units_info': units_info, 'mark': total_mark, }) return render_to_response('courses/transcript.html', { 'courses_info': courses_info, }, context_instance=RequestContext(request))