Add submission activity chart
This commit is contained in:
parent
61587679f7
commit
528f229b79
5 changed files with 309 additions and 3 deletions
|
@ -11,6 +11,8 @@ from django.contrib.auth.views import redirect_to_login
|
|||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.db import transaction
|
||||
from django.db.models import Count, Max, Min
|
||||
from django.db.models.fields import DateField
|
||||
from django.db.models.functions import Cast, ExtractYear
|
||||
from django.http import Http404, HttpResponseRedirect, JsonResponse
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
from django.urls import reverse
|
||||
|
@ -149,6 +151,25 @@ class UserAboutPage(UserPage):
|
|||
ratio = (max_ever - max_user) / (max_ever - min_ever) if max_ever != min_ever else 1.0
|
||||
context['max_graph'] = max_user + ratio * delta
|
||||
context['min_graph'] = min_user + ratio * delta - delta
|
||||
|
||||
|
||||
submissions = (
|
||||
self.object.submission_set
|
||||
.annotate(date_only=Cast('date', DateField()))
|
||||
.values('date_only').annotate(cnt=Count('id'))
|
||||
)
|
||||
|
||||
context['submission_data'] = mark_safe(json.dumps({
|
||||
date_counts['date_only'].isoformat(): date_counts['cnt'] for date_counts in submissions
|
||||
}))
|
||||
context['submission_metadata'] = mark_safe(json.dumps({
|
||||
'min_year': (
|
||||
self.object.submission_set
|
||||
.annotate(year_only=ExtractYear('date'))
|
||||
.aggregate(min_year=Min('year_only'))['min_year']
|
||||
),
|
||||
}))
|
||||
|
||||
return context
|
||||
|
||||
# follow/unfollow user
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue