本文整理汇总了Python中oppia.models.Points类的典型用法代码示例。如果您正苦于以下问题:Python Points类的具体用法?Python Points怎么用?Python Points使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Points类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: scorecard_view
def scorecard_view(request):
auth = ApiKeyAuthentication()
if auth.is_authenticated(request) is not True:
return HttpResponse("Unauthorized", status=401)
record_mobile_tracker(request, None, "scorecard", '{"en":"homepage"}')
start_date = datetime.datetime.now() - datetime.timedelta(days=14)
end_date = datetime.datetime.now()
media = {
"views": Tracker.activity_views(user=request.user, type="media", start_date=start_date, end_date=end_date),
"secs": Tracker.activity_secs(user=request.user, type="media", start_date=start_date, end_date=end_date),
"points": Points.media_points(user=request.user, start_date=start_date, end_date=end_date),
}
quiz = {
"views": Tracker.activity_views(user=request.user, type="quiz", start_date=start_date, end_date=end_date),
"secs": Tracker.activity_secs(user=request.user, type="quiz", start_date=start_date, end_date=end_date),
"points": Points.quiz_points(user=request.user, start_date=start_date, end_date=end_date),
}
acts = {
"views": Tracker.activity_views(user=request.user, type="page", start_date=start_date, end_date=end_date),
"secs": Tracker.activity_secs(user=request.user, type="page", start_date=start_date, end_date=end_date),
"points": Points.page_points(user=request.user, start_date=start_date, end_date=end_date),
}
total = {
"views": acts["views"] + quiz["views"] + media["views"],
"secs": acts["secs"] + quiz["secs"] + media["secs"],
"points": acts["points"] + quiz["points"] + media["points"],
}
scorecard = {"media": media, "quiz": quiz, "acts": acts, "total": total}
return render_to_response(
"oppia/mobile/scorecard.html", {"scorecard": scorecard}, context_instance=RequestContext(request)
)
示例2: leaderboard
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)
示例3: tracker_callback
def tracker_callback(sender, **kwargs):
tracker = kwargs.get('instance')
description = None
print tracker.uuid
if not apply_points(tracker.user):
return
if tracker.course is not None and tracker.course.user == tracker.user and settings.OPPIA_COURSE_OWNERS_EARN_POINTS is False:
return
if tracker.event not in NON_ACTIVITY_EVENTS:
if not tracker.activity_exists():
return
type = 'activity_completed'
points = OPPIA_DEFAULT_POINTS['ACTIVITY_COMPLETED']
if tracker.get_activity_type() == "media":
description = "Media played: " + tracker.get_activity_title()
type = 'mediaplayed'
if tracker.is_first_tracker_today():
points = OPPIA_DEFAULT_POINTS['MEDIA_STARTED']
else:
points = 0
points += (OPPIA_DEFAULT_POINTS['MEDIA_PLAYING_POINTS_PER_INTERVAL'] * math.floor(tracker.time_taken / OPPIA_DEFAULT_POINTS['MEDIA_PLAYING_INTERVAL']))
if points > OPPIA_DEFAULT_POINTS['MEDIA_MAX_POINTS']:
points = OPPIA_DEFAULT_POINTS['MEDIA_MAX_POINTS']
else:
description = "Activity completed: " + tracker.get_activity_title()
if tracker.points is not None:
points = tracker.points
type = tracker.event
if not description:
description = tracker.event
else:
if tracker.get_activity_type() is not "media":
if not tracker.is_first_tracker_today():
return
if not tracker.completed:
return
p = Points()
p.points = points
p.type = type
p.description = description
p.user = tracker.user
p.course = tracker.course
p.save()
return
示例4: tracker_callback
def tracker_callback(sender, **kwargs):
tracker = kwargs.get('instance')
if not apply_points(tracker.user):
return
if not tracker.activity_exists():
return
if tracker.course is not None and tracker.course.user == tracker.user and settings.OPPIA_COURSE_OWNERS_EARN_POINTS is False:
return
cohort_teacher = Cohort.teacher_member_now(tracker.course, tracker.user)
if cohort_teacher is not None and settings.OPPIA_TEACHERS_EARN_POINTS is False:
return
if tracker.get_activity_type() is not "media":
if not tracker.is_first_tracker_today():
return
if not tracker.completed:
return
type = 'activitycompleted'
points = settings.OPPIA_POINTS['ACTIVITY_COMPLETED']
if tracker.get_activity_type() == "media":
description = "Media played: " + tracker.get_activity_title()
type = 'mediaplayed'
if tracker.is_first_tracker_today():
points = settings.OPPIA_POINTS['MEDIA_STARTED']
else:
points = 0
points = (settings.OPPIA_POINTS['MEDIA_PLAYING_POINTS_PER_INTERVAL'] * math.floor(tracker.time_taken/settings.OPPIA_POINTS['MEDIA_PLAYING_INTERVAL']))
if points > settings.OPPIA_POINTS['MEDIA_MAX_POINTS']:
points = settings.OPPIA_POINTS['MEDIA_MAX_POINTS']
else:
description = "Activity completed: " + tracker.activity_title
p = Points()
p.points = points
p.type = type
p.description = description
p.user = tracker.user
p.course = tracker.course
p.cohort = Cohort.student_member_now(tracker.course,tracker.user)
p.save()
# @TODO test if tracker submitted on time
return
示例5: home_view
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))
示例6: recent_activity
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),
)
示例7: scorecard_view
def scorecard_view(request):
auth = ApiKeyAuthentication()
if auth.is_authenticated(request) is not True:
return HttpResponse('Unauthorized', status=401)
start_date = datetime.datetime.now() - datetime.timedelta(days=14)
end_date = datetime.datetime.now()
media = {'views':Tracker.activity_views(user=request.user,type='media',start_date=start_date,end_date=end_date),
'secs':Tracker.activity_secs(user=request.user,type='media',start_date=start_date,end_date=end_date),
'points':Points.media_points(user=request.user,start_date=start_date,end_date=end_date)}
quiz = {'views':Tracker.activity_views(user=request.user,type='quiz',start_date=start_date,end_date=end_date),
'secs':Tracker.activity_secs(user=request.user,type='quiz',start_date=start_date,end_date=end_date),
'points':Points.quiz_points(user=request.user,start_date=start_date,end_date=end_date)}
acts = {'views':Tracker.activity_views(user=request.user,type='page',start_date=start_date,end_date=end_date),
'secs':Tracker.activity_secs(user=request.user,type='page',start_date=start_date,end_date=end_date),
'points':Points.page_points(user=request.user,start_date=start_date,end_date=end_date)}
total = {'views':acts['views'] + quiz['views'] + media['views'],
'secs': acts['secs'] + quiz['secs'] + media['secs'],
'points': acts['points'] + quiz['points'] + media['points'],}
scorecard = {'media':media, 'quiz':quiz, 'acts':acts, 'total': total}
return render_to_response('oppia/mobile/scorecard.html',{ 'scorecard':scorecard }, context_instance=RequestContext(request))
示例8: get_points
def get_points(request):
if not request.user.is_authenticated():
return {'points': 0, 'badges':0 }
else:
points = Points.get_userscore(request.user)
if points is None:
points = 0
badges = Award.get_userawards(request.user)
if badges is None:
badges = 0
return {'points': points, 'badges':badges }
示例9: cohort_view
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))
示例10: signup_callback
def signup_callback(sender, **kwargs):
user = kwargs.get('instance')
created = kwargs.get('created')
if created:
p = Points()
p.points = settings.OPPIA_POINTS['REGISTER']
p.type = 'signup'
p.description = "Initial registration"
p.user = user
p.save()
return
示例11: recent_activity
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})
示例12: badgeaward_callback
def badgeaward_callback(sender, **kwargs):
award = kwargs.get('instance')
if not apply_points(award.user):
return
p = Points()
p.points = award.badge.points
p.type = 'badgeawarded'
p.description = award.description
p.user = award.user
p.save()
return
示例13: home_view
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))
示例14: course_download_callback
def course_download_callback(sender, **kwargs):
user = kwargs.get('user')
course = kwargs.get('course')
# check not superuser
if user.is_superuser:
return
if not course.is_first_download(user):
return
p = Points()
p.points = settings.OPPIA_POINTS['COURSE_DOWNLOADED']
p.type = 'coursedownloaded'
p.description = "Course downloaded: " + course.get_title()
p.user = user
p.course = course
p.cohort = Cohort.student_member_now(course,user)
p.save()
return
示例15: badgeaward_callback
def badgeaward_callback(sender, **kwargs):
award = kwargs.get('instance')
# check not superuser
if award.user.is_superuser:
return
p = Points()
p.points = award.badge.points
p.type = 'badgeawarded'
p.description = award.description
p.user = award.user
p.save()
return