This is more intuitive. Signed-off-by: Stephen Finucane <step...@that.guru> --- .../migrations/0026_add_user_bundles_backref.py | 22 ++++++++++++++++++++++ patchwork/models.py | 4 +++- patchwork/views/bundle.py | 4 ++-- patchwork/views/patch.py | 2 +- patchwork/views/user.py | 3 +-- 5 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 patchwork/migrations/0026_add_user_bundles_backref.py
diff --git a/patchwork/migrations/0026_add_user_bundles_backref.py b/patchwork/migrations/0026_add_user_bundles_backref.py new file mode 100644 index 00000000..e3dbf805 --- /dev/null +++ b/patchwork/migrations/0026_add_user_bundles_backref.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-04-12 11:59 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('patchwork', '0025_add_regex_validators'), + ] + + operations = [ + migrations.AlterField( + model_name='bundle', + name='owner', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='bundles', related_query_name='bundle', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/patchwork/models.py b/patchwork/models.py index 67c2d3a2..38f0f753 100644 --- a/patchwork/models.py +++ b/patchwork/models.py @@ -781,7 +781,9 @@ class SeriesReference(models.Model): class Bundle(models.Model): - owner = models.ForeignKey(User, on_delete=models.CASCADE) + owner = models.ForeignKey(User, on_delete=models.CASCADE, + related_name='bundles', + related_query_name='bundle') project = models.ForeignKey(Project, on_delete=models.CASCADE) name = models.CharField(max_length=50, null=False, blank=False) patches = models.ManyToManyField(Patch, through='BundlePatch') diff --git a/patchwork/views/bundle.py b/patchwork/views/bundle.py index 2d18571d..d795608f 100644 --- a/patchwork/views/bundle.py +++ b/patchwork/views/bundle.py @@ -71,10 +71,10 @@ def bundle_list(request, project_id=None): bundle.delete() if project_id is None: - bundles = Bundle.objects.filter(owner=request.user) + bundles = request.user.bundles else: project = get_object_or_404(Project, linkname=project_id) - bundles = Bundle.objects.filter(owner=request.user, project=project) + bundles = request.user.bundles.filter(project=project) for bundle in bundles: bundle.delete_form = DeleteBundleForm(auto_id=False, diff --git a/patchwork/views/patch.py b/patchwork/views/patch.py index 7e962e72..6ff3ef27 100644 --- a/patchwork/views/patch.py +++ b/patchwork/views/patch.py @@ -112,7 +112,7 @@ def patch_detail(request, patch_id): messages.success(request, 'Patch updated') if is_authenticated(request.user): - context['bundles'] = Bundle.objects.filter(owner=request.user) + context['bundles'] = request.user.bundles context['submission'] = patch context['patchform'] = form diff --git a/patchwork/views/user.py b/patchwork/views/user.py index 2a2d7046..d6ab4253 100644 --- a/patchwork/views/user.py +++ b/patchwork/views/user.py @@ -111,9 +111,8 @@ def profile(request): else: form = UserProfileForm(instance=request.user.profile) - # TODO(stephenfin): Add a related_name for User->Bundle context = { - 'bundles': Bundle.objects.filter(owner=request.user), + 'bundles': request.user.bundles, 'profileform': form, } -- 2.14.3 _______________________________________________ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork