示例#1
0
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))
示例#2
0
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))
示例#3
0
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))