def get_queryset(self): queryset = (Member.objects.filter( user__is_active=True).select_related('user').exclude( user__username='******').order_by('user__username')) if self.request.GET.get('filter'): activities = personalize_activities() filter_name = self.request.GET.get('filter') badge_exists = [ activity for activity in activities if activity['badge']['label'] == filter_name or activity['source_name'] == filter_name ] if not badge_exists: raise Http404() queryset = queryset.filter(badges__contains=[{ 'label': filter_name }]) # Sort by number of badges sorted_members = sorted(queryset, key=lambda m: len(m.badges), reverse=True) return sorted_members
def get_queryset(self): queryset = (Member.objects.filter( user__is_active=True).select_related('user').exclude( user__username='******').order_by('user__username')) authorized_members = Q(datarequestprojectmember__authorized=True) not_revoked = Q(datarequestprojectmember__revoked=False) visible_members = Q(datarequestprojectmember__visible=True) if self.request.GET.get('filter'): activities = personalize_activities() filter_name = self.request.GET.get('filter') badge_exists = [ activity for activity in activities if activity['badge']['label'] == filter_name or activity['source_name'] == filter_name ] if not badge_exists: raise Http404() project = id_label_to_project(filter_name) project_members = Q(datarequestprojectmember__project=project) queryset = queryset.filter(project_members & authorized_members & visible_members & not_revoked) sorted_members = queryset.annotate( num_badges=Count('datarequestprojectmember__project', filter=( authorized_members & not_revoked & visible_members))).order_by('-num_badges') return sorted_members
def get_context_data(self, *args, **kwargs): context = super(HomeView, self).get_context_data(*args, **kwargs) context.update( {'activities': personalize_activities(self.request.user)}) return context
def get_context_data(self, **kwargs): context = super(MemberJoinedView, self).get_context_data(**kwargs) activities = personalize_activities(self.request.user, only_active=False) activities_sorted = sorted(activities, key=lambda x: x['verbose_name']) context.update({ 'activities': activities_sorted, }) return context
def get_context_data(self, **kwargs): context = super(HomeView, self).get_context_data(**kwargs) activities = sorted(personalize_activities(self.request.user), key=lambda k: k['verbose_name'].lower()) context.update({ 'activities': activities, 'next': reverse_lazy('public-data:home') }) return context
def get_context_data(self, **kwargs): """ Update context with same source data used by the activities grid. """ context = super(CreatePageView, self).get_context_data(**kwargs) activities = sorted(personalize_activities(self.request.user), key=lambda k: k['source_name'].lower()) sources = OrderedDict([ (activity['source_name'], activity) for activity in activities if 'data_source' in activity and activity['data_source'] ]) context.update({'sources': sources}) return context
def get_context_data(self, **kwargs): """ Add context for sorting button. """ context = super(MemberListView, self).get_context_data(**kwargs) activities = sorted(personalize_activities(), key=lambda x: x['verbose_name'].lower()) context.update({ 'activities': activities, 'filter': self.request.GET.get('filter'), }) return context