Count only unique hostnames for total/failed values on dashboard. Fixes https://trello.com/c/HN7S4KF3

This commit is contained in:
Chris Church
2015-05-11 19:54:18 -04:00
parent 27b06313a7
commit d730859575
2 changed files with 47 additions and 2 deletions

View File

@@ -282,10 +282,16 @@ class DashboardView(APIView):
user_hosts = get_user_queryset(request.user, Host)
user_hosts_failed = user_hosts.filter(has_active_failures=True)
try:
user_hosts_count = user_hosts.distinct('name').count()
user_hosts_failed_count = user_hosts_failed.distinct('name').count()
except NotImplementedError: # For unit tests only, SQLite doesn't support distinct('name')
user_hosts_count = len(set(user_hosts.values_list('name', flat=True)))
user_hosts_failed_count = len(set(user_hosts_failed.values_list('name', flat=True)))
data['hosts'] = {'url': reverse('api:host_list'),
'failures_url': reverse('api:host_list') + "?has_active_failures=True",
'total': user_hosts.count(),
'failed': user_hosts_failed.count()}
'total': user_hosts_count,
'failed': user_hosts_failed_count}
user_projects = get_user_queryset(request.user, Project)
user_projects_failed = user_projects.filter(last_job_failed=True)