Esempio n. 1
0
    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
Esempio n. 3
0
    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
Esempio n. 4
0
 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
Esempio n. 5
0
    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
Esempio n. 6
0
 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
Esempio n. 7
0
    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