def top_user_statistics_data(request): # Returns top 10 projects in decreasing order of number of edits. request_dict = request.GET.dict() usernames = [] edits_per_user = [] hashtags = hashtag_queryset(request_dict) qs = results_count(hashtags, 'username', '-edits')[:10] for item in qs: usernames.append(item['username']) edits_per_user.append(item['edits']) data = {'usernames': usernames, 'edits_per_user': edits_per_user} return JsonResponse(data)
def top_project_statistics_data(request): # Returns top 10 projects in decreasing order of number of edits. # We will need this info as x-axis and y-axis when rendering chart. request_dict = request.GET.dict() projects = [] edits_per_project = [] hashtags = hashtag_queryset(request_dict) qs = results_count(hashtags, 'domain', '-edits')[:10] for item in qs: projects.append(item['domain']) edits_per_project.append(item['edits']) data = {'projects': projects, 'edits_per_project': edits_per_project} return JsonResponse(data)
def projects_csv(request): request_dict = request.GET.dict() response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="hashtags_projects.csv"' hashtags = hashtag_queryset(request_dict) projects_qs = results_count(hashtags, 'domain', '-edits') writer = csv.writer(response) writer.writerow([ # Translators: Wikimedia projects _('Project'), # Translators: Edits done on wikimedia projects. _('Edits')]) for project in projects_qs: writer.writerow([project['domain'], project['edits']]) return response
def users_csv(request): request_dict = request.GET.dict() response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="hashtags_users.csv"' hashtags = hashtag_queryset(request_dict) users_qs = results_count(hashtags, 'username', 'username') writer = csv.writer(response) writer.writerow([ # Translators: User of the hashtag _('User'), # Translators: Edits done on wikimedia projects. _('Edits')]) for user in users_qs: writer.writerow([user['username'], user['edits']]) return response
def get_queryset(self): request_dict = self.request.GET.dict() hashtags = hashtag_queryset(request_dict) projects_qs = results_count(hashtags, 'domain', '-edits') return projects_qs
def get_queryset(self): request_dict = self.request.GET.dict() hashtags = hashtag_queryset(request_dict) users_qs = results_count(hashtags, 'username', 'username') return users_qs