def cohort_leaderboard_view(request,cohort_id): if not request.user.is_staff: raise Http404 cohort = Cohort.objects.get(pk=cohort_id) # get leaderboard lb = Points.get_cohort_leaderboard(0, cohort) paginator = Paginator(lb, 25) # Show 25 contacts per page # Make sure page request is an int. If not, deliver first page. try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 # If page request (9999) is out of range, deliver last page of results. try: leaderboard = paginator.page(page) except (EmptyPage, InvalidPage): leaderboard = paginator.page(paginator.num_pages) return render_to_response('oppia/course/cohort-leaderboard.html', {'cohort':cohort, 'page':leaderboard, }, context_instance=RequestContext(request))
def cohort_view(request,cohort_id): if not request.user.is_staff: raise Http404 cohort = Cohort.objects.get(pk=cohort_id) start_date = timezone.now() - datetime.timedelta(days=31) end_date = timezone.now() # get teacher activity teacher_activity = [] no_days = (end_date-start_date).days + 1 teachers = User.objects.filter(participant__role=Participant.TEACHER, participant__cohort=cohort) for i in range(0,no_days,+1): temp = start_date + datetime.timedelta(days=i) day = temp.strftime("%d") month = temp.strftime("%m") year = temp.strftime("%Y") count = Tracker.objects.filter(course__coursecohort__cohort=cohort, user__is_staff=False, user__in=teachers, tracker_date__day=day, tracker_date__month=month, tracker_date__year=year).count() teacher_activity.append([temp.strftime("%d %b %Y"),count]) # get student activity student_activity = [] no_days = (end_date-start_date).days + 1 students = User.objects.filter(participant__role=Participant.STUDENT, participant__cohort=cohort) for i in range(0,no_days,+1): temp = start_date + datetime.timedelta(days=i) day = temp.strftime("%d") month = temp.strftime("%m") year = temp.strftime("%Y") count = Tracker.objects.filter(course__coursecohort__cohort=cohort, user__is_staff=False, user__in=students, tracker_date__day=day, tracker_date__month=month, tracker_date__year=year).count() student_activity.append([temp.strftime("%d %b %Y"),count]) # get leaderboard leaderboard = Points.get_cohort_leaderboard(10, cohort) return render_to_response('oppia/course/cohort-activity.html', {'cohort':cohort, 'teacher_activity': teacher_activity, 'student_activity': student_activity, 'leaderboard': leaderboard, }, context_instance=RequestContext(request))
def cohort_view(request,cohort_id): if not request.user.is_staff: raise Http404 cohort = Cohort.objects.get(pk=cohort_id) start_date = timezone.now() - datetime.timedelta(days=31) end_date = timezone.now() # get teacher activity teacher_activity = [] no_days = (end_date-start_date).days + 1 teachers = User.objects.filter(participant__role=Participant.TEACHER, participant__cohort=cohort) trackers = Tracker.objects.filter(course__coursecohort__cohort=cohort, user__is_staff=False, user__in=teachers, tracker_date__gte=start_date, tracker_date__lte=end_date).extra({'activity_date':"date(tracker_date)"}).values('activity_date').annotate(count=Count('id')) for i in range(0,no_days,+1): temp = start_date + datetime.timedelta(days=i) count = next((dct['count'] for dct in trackers if dct['activity_date'] == temp.date()), 0) teacher_activity.append([temp.strftime("%d %b %Y"),count]) # get student activity student_activity = [] no_days = (end_date-start_date).days + 1 students = User.objects.filter(participant__role=Participant.STUDENT, participant__cohort=cohort) trackers = Tracker.objects.filter(course__coursecohort__cohort=cohort, user__is_staff=False, user__in=students, tracker_date__gte=start_date, tracker_date__lte=end_date).extra({'activity_date':"date(tracker_date)"}).values('activity_date').annotate(count=Count('id')) for i in range(0,no_days,+1): temp = start_date + datetime.timedelta(days=i) count = next((dct['count'] for dct in trackers if dct['activity_date'] == temp.date()), 0) student_activity.append([temp.strftime("%d %b %Y"),count]) # get leaderboard leaderboard = Points.get_cohort_leaderboard(10, cohort) return render_to_response('oppia/course/cohort-activity.html', {'cohort':cohort, 'teacher_activity': teacher_activity, 'student_activity': student_activity, 'leaderboard': leaderboard, }, context_instance=RequestContext(request))