Message ID | 20200304115457.32300-4-stephen@that.guru |
---|---|
State | Superseded |
Headers | show |
Series | Remove 'Submission' model | expand |
On 4/3/20 10:54 pm, Stephen Finucane wrote: > 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> > Cc: Daniel Axtens <dja@axtens.net> Looks fine Reviewed-by: Andrew Donnellan <ajd@linux.ibm.com> > --- > patchwork/views/project.py | 29 ++++------------------------- > 1 file changed, 4 insertions(+), 25 deletions(-) > > diff --git a/patchwork/views/project.py b/patchwork/views/project.py > index 8fa41794..4c25f715 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) >
diff --git a/patchwork/views/project.py b/patchwork/views/project.py index 8fa41794..4c25f715 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)
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> Cc: Daniel Axtens <dja@axtens.net> --- patchwork/views/project.py | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-)