aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Finucane <stephen@that.guru>2020-03-04 10:50:17 +0000
committerStephen Finucane <stephen@that.guru>2020-04-26 13:45:45 +0100
commit13ff6b2f1a82760dca432296455a3761b34739ed (patch)
tree3f262ff0e4a7132189c5ae0cb38657a2c6fd4746
parent1d063dbfa8be885b01dc68596512901c5f413cde (diff)
downloadpatchwork-13ff6b2f1a82760dca432296455a3761b34739ed.tar
patchwork-13ff6b2f1a82760dca432296455a3761b34739ed.tar.gz
Revert "Be sensible computing project patch counts"
This reverts commit cfcf2f2a80ac0709f1a5fd9aa212c8403daa5a18. This will no longer be necessary once we remove the Patch-Submission split. Revert it now to avoid needing to rejig this later. Conflicts: patchwork/views/project.py NOTE(stephenfin): Conflicts are due to commit 880ec8c5 ("Fetch maintainer information in one query") which changed nearby lines. Signed-off-by: Stephen Finucane <stephen@that.guru>
-rw-r--r--patchwork/views/project.py29
1 files changed, 4 insertions, 25 deletions
diff --git a/patchwork/views/project.py b/patchwork/views/project.py
index 8fa4179..4c25f71 100644
--- a/patchwork/views/project.py
+++ b/patchwork/views/project.py
@@ -10,10 +10,9 @@ from django.shortcuts import get_object_or_404
from django.shortcuts import render
from django.urls import reverse
+from patchwork.models import Patch
from patchwork.models import Project
-from django.db import connection
-
def project_list(request):
projects = Project.objects.all()
@@ -31,34 +30,14 @@ def project_list(request):
def project_detail(request, project_id):
project = get_object_or_404(Project, linkname=project_id)
-
- # So, we revert to raw sql because if we do what you'd think would
- # be the correct thing in Django-ese, it ends up doing a *pointless*
- # join with patchwork_submissions that ends up ruining the query.
- # So, we do not do this, as this is wrong:
- #
- # patches = Patch.objects.filter(
- # patch_project_id=project.id).only('archived')
- # patches = patches.annotate(c=Count('archived'))
- #
- # and instead do this, because it's simple and fast
-
- n_patches = {}
- with connection.cursor() as cursor:
- cursor.execute('SELECT archived,COUNT(submission_ptr_id) as c '
- 'FROM patchwork_patch '
- 'WHERE patch_project_id=%s GROUP BY archived',
- [project.id])
-
- for r in cursor:
- n_patches[r[0]] = r[1]
+ patches = Patch.objects.filter(project=project)
context = {
'project': project,
'maintainers': User.objects.filter(
profile__maintainer_projects=project).select_related('profile'),
- 'n_patches': n_patches[False] if False in n_patches else 0,
- 'n_archived_patches': n_patches[True] if True in n_patches else 0,
+ 'n_patches': patches.filter(archived=False).count(),
+ 'n_archived_patches': patches.filter(archived=True).count(),
'enable_xmlrpc': settings.ENABLE_XMLRPC,
}
return render(request, 'patchwork/project.html', context)