From 668a8c7ce5ffd93ee7acd7578d496430660f4183 Mon Sep 17 00:00:00 2001 From: Giancarlo Razzolini Date: Tue, 13 Jun 2017 15:15:31 -0300 Subject: Filter the users that appear on the devel clocks page Since we have testers and other kind of users, filter the users that appear on the devel clocks page for membership on Developers, Trusted Users or Support Staff only. --- devel/views.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/devel/views.py b/devel/views.py index e86c60c1..be9d8979 100644 --- a/devel/views.py +++ b/devel/views.py @@ -7,10 +7,10 @@ from django.contrib.admin.models import ADDITION, LogEntry from django.contrib.auth.decorators import (login_required, permission_required, user_passes_test) -from django.contrib.auth.models import User +from django.contrib.auth.models import Group, User from django.contrib.contenttypes.models import ContentType from django.db import transaction -from django.db.models import Count, Max +from django.db.models import Count, Max, Q from django.http import Http404, HttpResponseRedirect from django.shortcuts import get_object_or_404, render from django.utils.encoding import force_unicode @@ -107,8 +107,9 @@ def stats(request): @login_required def clock(request): - devs = User.objects.filter(is_active=True).order_by( - 'first_name', 'last_name').select_related('userprofile') + devs = User.objects.filter(is_active=True).filter(groups__in=Group.objects.filter( + Q(name='Developers') | Q(name='Trusted Users') | Q(name='Support Staff'))).order_by( + 'first_name', 'last_name').select_related('userprofile').distinct() latest_news = dict(News.objects.filter(author__is_active=True).values_list( 'author').order_by().annotate(last_post=Max('postdate'))) -- cgit v1.2.3-55-g3dc8 From 7dfc2d3eccc894a7728ba360c72e13a94027a9ce Mon Sep 17 00:00:00 2001 From: Giancarlo Razzolini Date: Wed, 14 Jun 2017 21:37:44 -0300 Subject: Use a list and a groups filter to aid readability and avoid using Q --- devel/views.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/devel/views.py b/devel/views.py index be9d8979..07571b96 100644 --- a/devel/views.py +++ b/devel/views.py @@ -10,7 +10,7 @@ from django.contrib.auth.decorators import (login_required, from django.contrib.auth.models import Group, User from django.contrib.contenttypes.models import ContentType from django.db import transaction -from django.db.models import Count, Max, Q +from django.db.models import Count, Max from django.http import Http404, HttpResponseRedirect from django.shortcuts import get_object_or_404, render from django.utils.encoding import force_unicode @@ -104,11 +104,12 @@ def stats(request): return render(request, 'devel/stats.html', page_dict) +SELECTED_GROUPS = ['Developers', 'Trusted Users', 'Support Staff'] @login_required def clock(request): - devs = User.objects.filter(is_active=True).filter(groups__in=Group.objects.filter( - Q(name='Developers') | Q(name='Trusted Users') | Q(name='Support Staff'))).order_by( + groups = Group.objects.filter(name__in=SELECTED_GROUPS) + devs = User.objects.filter(is_active=True).filter(groups__in=groups).order_by( 'first_name', 'last_name').select_related('userprofile').distinct() latest_news = dict(News.objects.filter(author__is_active=True).values_list( -- cgit v1.2.3-55-g3dc8