From: Simo Sorce Date: Tue, 6 Nov 2012 17:45:08 +0000 (+0000) Subject: views/bundle: Allow downloading public bundle as mbox X-Git-Url: https://git.ozlabs.org/?p=patchwork;a=commitdiff_plain;h=97d47d0e72c576ba3a09e85fc05e1ba6e0fb6d32 views/bundle: Allow downloading public bundle as mbox Downloading single patches anonymously is allowed, we may as well allow downloading public bundles as mboxes. This patch also changes the file name to be bundle--.mbox so that the file name is unique even if bundle names are reused. Signed-off-by: Simo Sorce Signed-off-by: Jeremy Kerr --- diff --git a/apps/patchwork/urls.py b/apps/patchwork/urls.py index 10fc3b9..3209830 100644 --- a/apps/patchwork/urls.py +++ b/apps/patchwork/urls.py @@ -67,6 +67,8 @@ urlpatterns = patterns('', # public view for bundles (r'^bundle/(?P[^/]*)/(?P[^/]*)/$', 'patchwork.views.bundle.public'), + (r'^bundle/(?P[^/]*)/(?P[^/]*)/mbox/$', + 'patchwork.views.bundle.public_mbox'), (r'^confirm/(?P[0-9a-f]+)/$', 'patchwork.views.confirm'), diff --git a/apps/patchwork/views/bundle.py b/apps/patchwork/views/bundle.py index e418b3a..058153b 100644 --- a/apps/patchwork/views/bundle.py +++ b/apps/patchwork/views/bundle.py @@ -168,15 +168,18 @@ def bundle(request, bundle_id): return render_to_response('patchwork/bundle.html', context) -@login_required -def mbox(request, bundle_id): - bundle = get_object_or_404(Bundle, id = bundle_id) +def mbox_response(bundle): response = HttpResponse(mimetype='text/plain') - response['Content-Disposition'] = 'attachment; filename=bundle-%d.mbox' % \ - bundle.id + response['Content-Disposition'] = \ + 'attachment; filename=bundle-%d-%s.mbox' % (bundle.id, bundle.name) response.write(bundle.mbox()) return response +@login_required +def mbox(request, bundle_id): + bundle = get_object_or_404(Bundle, id = bundle_id) + return mbox_response(bundle) + def public(request, username, bundlename): user = get_object_or_404(User, username = username) bundle = get_object_or_404(Bundle, name = bundlename, owner = user, @@ -191,3 +194,8 @@ def public(request, username, bundlename): context['bundle'] = bundle return render_to_response('patchwork/bundle-public.html', context) + +def public_mbox(request, username, bundlename): + bundle = get_object_or_404(Bundle, name = bundlename, public = True) + return mbox_response(bundle) + return response diff --git a/templates/patchwork/bundle-public.html b/templates/patchwork/bundle-public.html index 3590c46..181e211 100644 --- a/templates/patchwork/bundle-public.html +++ b/templates/patchwork/bundle-public.html @@ -7,6 +7,8 @@ {% block body %} +Download bundle as mbox + {% include "patchwork/patch-list.html" %} {% endblock %}