]> git.ozlabs.org Git - patchwork/blobdiff - apps/patchwork/views/bundle.py
[views] Don't use bundle owner for current user
[patchwork] / apps / patchwork / views / bundle.py
index 65ca583ef8d1d26804e928ca7b69e18d826f80e5..d8e4e2fc82ca65282bd78037cec9b5719d03a62f 100644 (file)
@@ -25,7 +25,7 @@ from django.http import HttpResponse, HttpResponseRedirect
 import django.core.urlresolvers
 from patchwork.models import Patch, Bundle, Project
 from patchwork.utils import get_patch_ids
-from patchwork.forms import BundleForm
+from patchwork.forms import BundleForm, DeleteBundleForm
 from patchwork.views import generic_list
 from patchwork.filters import DelegateFilter
 from patchwork.paginator import Paginator
@@ -100,6 +100,29 @@ def setbundle(request):
                     'patchwork.views.bundle.list')
                 )
 
+@login_required
+def bundles(request):
+    context = PatchworkRequestContext(request)
+
+    if request.method == 'POST':
+        form_name = request.POST.get('form_name', '')
+
+       if form_name == DeleteBundleForm.name:
+           form = DeleteBundleForm(request.POST)
+           if form.is_valid():
+               bundle = get_object_or_404(Bundle,
+                               id = form.cleaned_data['bundle_id'])
+               bundle.delete()
+
+    bundles = Bundle.objects.filter(owner = request.user)
+    for bundle in bundles:
+        bundle.delete_form = DeleteBundleForm(auto_id = False,
+                               initial = {'bundle_id': bundle.id})
+
+    context['bundles'] = bundles
+
+    return render_to_response('patchwork/bundles.html', context)
+
 @login_required
 def bundle(request, bundle_id):
     bundle = get_object_or_404(Bundle, id = bundle_id)
@@ -135,6 +158,8 @@ def bundle(request, bundle_id):
 def mbox(request, bundle_id):
     bundle = get_object_or_404(Bundle, id = bundle_id)
     response = HttpResponse(mimetype='text/plain')
+    response['Content-Disposition'] = 'attachment; filename=bundle-%d.mbox' % \
+           bundle.id
     response.write(bundle.mbox())
     return response
 
@@ -148,6 +173,6 @@ def public(request, username, bundlename):
             filter_settings = filter_settings,
             patches = bundle.patches.all())
 
-    context.update({'bundle': bundle,
-            'user': user});
+    context['bundle'] = bundle
+
     return render_to_response('patchwork/bundle-public.html', context)