本文整理汇总了Python中oppia.models.Points.get_leaderboard方法的典型用法代码示例。如果您正苦于以下问题:Python Points.get_leaderboard方法的具体用法?Python Points.get_leaderboard怎么用?Python Points.get_leaderboard使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oppia.models.Points
的用法示例。
在下文中一共展示了Points.get_leaderboard方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: leaderboard
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def leaderboard(self, request, **kwargs):
self.method_check(request, allowed=['get'])
self.is_authenticated(request)
self.throttle_check(request)
if request.is_secure():
prefix = 'https://'
else:
prefix = 'http://'
response_data = {}
response_data['generated_date'] = timezone.now()
response_data['server'] = prefix + request.META['SERVER_NAME']
leaderboard = Points.get_leaderboard()
response_data['leaderboard'] = []
for idx, leader in enumerate(leaderboard):
leader_data = {}
leader_data['position'] = idx + 1
leader_data['username'] = leader.username
leader_data['first_name'] = leader.first_name
leader_data['last_name'] = leader.last_name
leader_data['points'] = leader.total
leader_data['badges'] = leader.badges
response_data['leaderboard'].append(leader_data)
return JsonResponse(response_data)
示例2: home_view
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def home_view(request):
activity = []
if request.user.is_authenticated():
start_date = timezone.now() - datetime.timedelta(days=31)
end_date = timezone.now()
interval = 'days'
if request.method == 'POST':
form = DateRangeIntervalForm(request.POST)
if form.is_valid():
start_date = form.cleaned_data.get("start_date")
start_date = datetime.datetime.strptime(start_date,"%Y-%m-%d")
end_date = form.cleaned_data.get("end_date")
end_date = datetime.datetime.strptime(end_date,"%Y-%m-%d")
interval = form.cleaned_data.get("interval")
else:
data = {}
data['start_date'] = start_date
data['end_date'] = end_date
data['interval'] = interval
form = DateRangeIntervalForm(initial=data)
if interval == 'days':
no_days = (end_date-start_date).days + 1
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__isnull=False, course__is_draft=False, user__is_staff=False, course__is_archived=False,tracker_date__day=day,tracker_date__month=month,tracker_date__year=year).count()
activity.append([temp.strftime("%d %b %Y"),count])
else:
delta = relativedelta(months=+1)
no_months = 0
tmp_date = start_date
while tmp_date <= end_date:
print tmp_date
tmp_date += delta
no_months += 1
for i in range(0,no_months,+1):
temp = start_date + relativedelta(months=+i)
month = temp.strftime("%m")
year = temp.strftime("%Y")
count = Tracker.objects.filter(course__isnull=False, course__is_draft=False, user__is_staff=False, course__is_archived=False,tracker_date__month=month,tracker_date__year=year).count()
activity.append([temp.strftime("%b %Y"),count])
else:
form = None
leaderboard = Points.get_leaderboard(10)
return render_to_response('oppia/home.html',
{'form': form,
'recent_activity':activity,
'leaderboard':leaderboard},
context_instance=RequestContext(request))
示例3: recent_activity
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def recent_activity(request, course_id):
course, response = can_view_course_detail(request, course_id)
if response is not None:
return response
dashboard_accessed.send(sender=None, request=request, data=course)
start_date = datetime.datetime.now() - datetime.timedelta(days=31)
end_date = datetime.datetime.now()
interval = "days"
if request.method == "POST":
form = DateRangeIntervalForm(request.POST)
if form.is_valid():
start_date = form.cleaned_data.get("start_date")
start_date = datetime.datetime.strptime(start_date + " 00:00:00", "%Y-%m-%d %H:%M:%S")
end_date = form.cleaned_data.get("end_date")
end_date = datetime.datetime.strptime(end_date + " 23:59:59", "%Y-%m-%d %H:%M:%S")
interval = form.cleaned_data.get("interval")
else:
data = {}
data["start_date"] = start_date
data["end_date"] = end_date
data["interval"] = interval
form = DateRangeIntervalForm(initial=data)
dates = []
if interval == "days":
daily_stats = (
CourseDailyStats.objects.filter(course=course, day__gte=start_date, day__lte=end_date)
.values("day", "type")
.annotate(total=Sum("total"))
)
dates = generate_graph_data(daily_stats, False)
else:
monthly_stats = (
CourseDailyStats.objects.filter(course=course, day__gte=start_date, day__lte=end_date)
.extra({"month": "month(day)", "year": "year(day)"})
.values("month", "year", "type")
.annotate(total=Sum("total"))
.order_by("year", "month")
)
dates = generate_graph_data(monthly_stats, True)
leaderboard = Points.get_leaderboard(10, course)
return render_to_response(
"oppia/course/activity.html",
{"course": course, "form": form, "data": dates, "leaderboard": leaderboard},
context_instance=RequestContext(request),
)
示例4: recent_activity
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def recent_activity(request, course_id):
course, response = can_view_course_detail(request, course_id)
if response is not None:
raise response
dashboard_accessed.send(sender=None, request=request, data=course)
start_date = datetime.datetime.now() - datetime.timedelta(days=31)
end_date = datetime.datetime.now()
interval = 'days'
if request.method == 'POST':
form = DateRangeIntervalForm(request.POST)
if form.is_valid():
start_date = form.cleaned_data.get("start_date")
start_date = datetime.datetime.strptime(start_date + " 00:00:00", "%Y-%m-%d %H:%M:%S")
end_date = form.cleaned_data.get("end_date")
end_date = datetime.datetime.strptime(end_date + " 23:59:59", "%Y-%m-%d %H:%M:%S")
interval = form.cleaned_data.get("interval")
else:
data = {}
data['start_date'] = start_date
data['end_date'] = end_date
data['interval'] = interval
form = DateRangeIntervalForm(initial=data)
dates = []
if interval == 'days':
daily_stats = CourseDailyStats.objects.filter(course=course, day__gte=start_date, day__lte=end_date) \
.values('day', 'type') \
.annotate(total=Sum('total'))
dates = generate_graph_data(daily_stats, False)
else:
monthly_stats = CourseDailyStats.objects.filter(course=course, day__gte=start_date, day__lte=end_date) \
.extra({'month': 'month(day)', 'year': 'year(day)'}) \
.values('month', 'year', 'type') \
.annotate(total=Sum('total')) \
.order_by('year', 'month')
dates = generate_graph_data(monthly_stats, True)
leaderboard = Points.get_leaderboard(10, course)
return render(request, 'oppia/course/activity.html',
{'course': course,
'monthly': interval == 'months',
'form': form,
'data': dates,
'leaderboard': leaderboard})
示例5: home_view
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def home_view(request):
activity = []
if request.user.is_authenticated():
startdate = datetime.datetime.now()
staff = User.objects.filter(is_staff=True)
for i in range(31,-1,-1):
temp = startdate - datetime.timedelta(days=i)
day = temp.strftime("%d")
month = temp.strftime("%m")
year = temp.strftime("%y")
count = Tracker.objects.filter(tracker_date__day=day,tracker_date__month=month,tracker_date__year=year).exclude(user_id__in=staff).count()
activity.append([temp.strftime("%d %b %y"),count])
leaderboard = Points.get_leaderboard(10)
return render_to_response('oppia/home.html',{'recent_activity':activity, 'leaderboard':leaderboard}, context_instance=RequestContext(request))
示例6: recent_activity
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def recent_activity(request,id):
course = Course.objects.get(pk=id)
dates = []
startdate = datetime.datetime.now()
staff = User.objects.filter(is_staff=True)
for i in range(31,-1,-1):
temp = startdate - datetime.timedelta(days=i)
day = temp.strftime("%d")
month = temp.strftime("%m")
year = temp.strftime("%y")
count_act_page = Tracker.objects.filter(course=course,type='page',tracker_date__day=day,tracker_date__month=month,tracker_date__year=year).exclude(user_id__in=staff).count()
count_act_quiz = Tracker.objects.filter(course=course,type='quiz',tracker_date__day=day,tracker_date__month=month,tracker_date__year=year).exclude(user_id__in=staff).count()
count_media = Tracker.objects.filter(course=course,type='media',tracker_date__day=day,tracker_date__month=month,tracker_date__year=year).exclude(user_id__in=staff).count()
dates.append([temp.strftime("%d %b %y"),count_act_page,count_act_quiz,count_media])
leaderboard = Points.get_leaderboard(10, course)
return render_to_response('oppia/course/activity.html',{'course': course,'data':dates, 'leaderboard':leaderboard}, context_instance=RequestContext(request))
示例7: leaderboard_view
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def leaderboard_view(request):
lb = Points.get_leaderboard(100)
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/leaderboard.html',{'page':leaderboard}, context_instance=RequestContext(request))
示例8: recent_activity
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def recent_activity(request,id):
course = check_can_view(request, id)
start_date = datetime.datetime.now() - datetime.timedelta(days=31)
end_date = datetime.datetime.now()
interval = 'days'
if request.method == 'POST':
form = DateRangeIntervalForm(request.POST)
if form.is_valid():
start_date = form.cleaned_data.get("start_date")
start_date = datetime.datetime.strptime(start_date,"%Y-%m-%d")
end_date = form.cleaned_data.get("end_date")
end_date = datetime.datetime.strptime(end_date,"%Y-%m-%d")
interval = form.cleaned_data.get("interval")
else:
data = {}
data['start_date'] = start_date
data['end_date'] = end_date
data['interval'] = interval
form = DateRangeIntervalForm(initial=data)
dates = []
if interval == 'days':
no_days = (end_date-start_date).days + 1
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_objs = Tracker.objects.filter(course=course,tracker_date__day=day,tracker_date__month=month,tracker_date__year=year).values('type').annotate(total=Count('type'))
count_activity = {'page':0, 'quiz':0, 'media':0, 'resource':0, 'monitor': 0, 'total':0}
for co in count_objs:
if co['type'] in count_activity:
count_activity[co['type']] = count_activity[co['type']] + co['total']
count_activity['total'] = count_activity['total'] + co['total']
else:
count_activity[co['type']] = 0
count_activity[co['type']] = count_activity[co['type']] + co['total']
count_activity['total'] = count_activity['total'] + co['total']
dates.append([temp.strftime("%d %b %y"),count_activity])
else:
delta = relativedelta(months=+1)
no_months = 0
tmp_date = start_date
while tmp_date <= end_date:
print tmp_date
tmp_date += delta
no_months += 1
for i in range(0,no_months,+1):
temp = start_date + relativedelta(months=+i)
month = temp.strftime("%m")
year = temp.strftime("%Y")
count_objs = Tracker.objects.filter(course=course,tracker_date__month=month,tracker_date__year=year).values('type').annotate(total=Count('type'))
count_activity = {'page':0, 'quiz':0, 'media':0, 'resource':0, 'monitor': 0, 'total':0}
for co in count_objs:
if co['type'] in count_activity:
count_activity[co['type']] = count_activity[co['type']] + co['total']
count_activity['total'] = count_activity['total'] + co['total']
else:
count_activity[co['type']] = 0
count_activity[co['type']] = count_activity[co['type']] + co['total']
count_activity['total'] = count_activity['total'] + co['total']
dates.append([temp.strftime("%b %y"),count_activity])
leaderboard = Points.get_leaderboard(10, course)
nav = get_nav(course,request.user)
return render_to_response('oppia/course/activity.html',
{'course': course,
'form': form,
'nav': nav,
'data':dates,
'leaderboard':leaderboard},
context_instance=RequestContext(request))
示例9: home_view
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def home_view(request):
activity = []
leaderboard = None
if request.user.is_authenticated:
# create profile if none exists (historical for very old users)
try:
up = request.user.userprofile
except UserProfile.DoesNotExist:
up = UserProfile()
up.user = request.user
up.save()
dashboard_accessed.send(sender=None, request=request, data=None)
# if user is student redirect to their scorecard
if up.is_student_only():
return HttpResponseRedirect(reverse('profile_user_activity', args=[request.user.id]))
# is user is teacher redirect to teacher home
if up.is_teacher_only():
return HttpResponseRedirect(reverse('oppia_teacher_home'))
start_date = timezone.now() - datetime.timedelta(days=31)
end_date = timezone.now()
interval = 'days'
if request.method == 'POST':
form = DateRangeIntervalForm(request.POST)
if form.is_valid():
start_date = form.cleaned_data.get("start_date")
start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d")
end_date = form.cleaned_data.get("end_date")
end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d")
interval = form.cleaned_data.get("interval")
else:
data = {}
data['start_date'] = start_date
data['end_date'] = end_date
data['interval'] = interval
form = DateRangeIntervalForm(initial=data)
if interval == 'days':
no_days = (end_date - start_date).days + 1
tracker_stats = CourseDailyStats.objects.filter(day__gte=start_date, day__lte=end_date).values('day').annotate(count=Sum('total'))
for i in range(0, no_days, +1):
temp = start_date + datetime.timedelta(days=i)
count = next((dct['count'] for dct in tracker_stats if dct['day'] == temp.date()), 0)
activity.append([temp.strftime("%d %b %Y"), count])
else:
delta = relativedelta(months=+1)
no_months = 0
tmp_date = start_date
while tmp_date <= end_date:
tmp_date += delta
no_months += 1
for i in range(0, no_months, +1):
temp = start_date + relativedelta(months=+i)
month = temp.strftime("%m")
year = temp.strftime("%Y")
count = CourseDailyStats.objects.filter(day__month=month, day__year=year).aggregate(total=Sum('total')).get('total', 0)
activity.append([temp.strftime("%b %Y"), 0 if count is None else count])
leaderboard = Points.get_leaderboard(10)
else:
form = None
return render(request, 'oppia/home.html',
{'form': form,
'activity_graph_data': activity,
'leaderboard': leaderboard})
示例10: home_view
# 需要导入模块: from oppia.models import Points [as 别名]
# 或者: from oppia.models.Points import get_leaderboard [as 别名]
def home_view(request):
activity = []
if request.user.is_authenticated():
# create profile if none exists (historical for very old users)
try:
up = request.user.userprofile
except UserProfile.DoesNotExist:
up = UserProfile()
up.user= request.user
up.save()
# if user is student redirect to their scorecard
if up.is_student_only():
return HttpResponseRedirect(reverse('profile_user_activity', args=[request.user.id]))
# is user is teacher redirect to teacher home
if up.is_teacher_only():
return HttpResponseRedirect(reverse('oppia_teacher_home'))
start_date = timezone.now() - datetime.timedelta(days=31)
end_date = timezone.now()
interval = 'days'
if request.method == 'POST':
form = DateRangeIntervalForm(request.POST)
if form.is_valid():
start_date = form.cleaned_data.get("start_date")
start_date = datetime.datetime.strptime(start_date,"%Y-%m-%d")
end_date = form.cleaned_data.get("end_date")
end_date = datetime.datetime.strptime(end_date,"%Y-%m-%d")
interval = form.cleaned_data.get("interval")
else:
data = {}
data['start_date'] = start_date
data['end_date'] = end_date
data['interval'] = interval
form = DateRangeIntervalForm(initial=data)
if interval == 'days':
no_days = (end_date-start_date).days + 1
trackers = Tracker.objects.filter(course__isnull=False,
course__is_draft=False,
user__is_staff=False,
course__is_archived=False,
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)
activity.append([temp.strftime("%d %b %Y"),count])
else:
delta = relativedelta(months=+1)
no_months = 0
tmp_date = start_date
while tmp_date <= end_date:
print tmp_date
tmp_date += delta
no_months += 1
for i in range(0,no_months,+1):
temp = start_date + relativedelta(months=+i)
month = temp.strftime("%m")
year = temp.strftime("%Y")
count = Tracker.objects.filter(course__isnull=False,
course__is_draft=False,
user__is_staff=False,
course__is_archived=False,
tracker_date__month=month,
tracker_date__year=year).count()
activity.append([temp.strftime("%b %Y"),count])
else:
form = None
leaderboard = Points.get_leaderboard(10)
return render_to_response('oppia/home.html',
{'form': form,
'activity_graph_data': activity,
'leaderboard': leaderboard},
context_instance=RequestContext(request))