def get_context_data(self, **kwargs): profile_user = self.object context = {} count_types = OrderedDict() logged_user = None if self.request.user.is_authenticated(): logged_user = User.objects.get(username=self.request.user) collaborations, count_types_extras = get_collaboration_data( logged_user, profile_user) collaborations.sort(key=lambda elem: elem.modified, reverse=True) count_types.update(count_types_extras) context['type_count'] = count_types context['results'] = collaborations[:10] query = get_visible_threads(logged_user, profile_user) context['emails'] = query.order_by('-received_time')[:10] count_by = 'thread__mailinglist__name' context['list_activity'] = dict(query.values_list(count_by) .annotate(Count(count_by)) .order_by(count_by)) context.update(kwargs) return super(UserProfileDetailView, self).get_context_data(**context)
def dashboard(request): """Dashboard page""" highest_score_threads = Thread.highest_score.all() all_threads = Thread.objects.all() latest_threads = [] lists_for_user = [] user = None if request.user.is_authenticated(): user = User.objects.get(username=request.user) lists_for_user = mailman.get_user_mailinglists(user) latest_threads = get_user_threads( all_threads, lists_for_user, lambda t: t) hottest_threads = get_user_threads( highest_score_threads, lists_for_user, lambda t: t.latest_message) latest_results, count_types = get_collaboration_data(user) latest_results.sort(key=lambda elem: elem.modified, reverse=True) context = { 'hottest_threads': hottest_threads[:6], 'latest_threads': latest_threads[:6], 'type_count': count_types, 'latest_results': latest_results[:6], } return render(request, 'home.html', context)