[PATCH] Allow to download public bundle as mbox

Jeremy Kerr jk at ozlabs.org
Tue Nov 6 00:41:15 EST 2012


Hi Simo,

> Downloading single patches anonimously is allowed, we may as well allow
> downloading public bundles as mboxes.

Sounds good, but:

> diff --git a/apps/patchwork/urls.py b/apps/patchwork/urls.py
> index 10fc3b9..034fbb3 100644
> --- a/apps/patchwork/urls.py
> +++ b/apps/patchwork/urls.py
> @@ -67,6 +67,8 @@ urlpatterns = patterns('',
>       # public view for bundles
>       (r'^bundle/(?P<username>[^/]*)/(?P<bundlename>[^/]*)/$',
>                                   'patchwork.views.bundle.public'),
> +    (r'^bundle/(?P<bundlename>[^/]*)/mbox/download/$',
> +                                'patchwork.views.bundle.public_mbox'),
>
>       (r'^confirm/(?P<key>[0-9a-f]+)/$', 'patchwork.views.confirm'),

This will mean that the bundle names will need to be unique amongst all 
users. How about just adding a "/mbox/" on the end of the public bundle URL?

> diff --git a/apps/patchwork/views/bundle.py b/apps/patchwork/views/bundle.py
> index e418b3a..d36c790 100644
> --- a/apps/patchwork/views/bundle.py
> +++ b/apps/patchwork/views/bundle.py
> @@ -191,3 +191,11 @@ def public(request, username, bundlename):
>       context['bundle'] = bundle
>
>       return render_to_response('patchwork/bundle-public.html', context)
> +
> +def public_mbox(request, bundlename):
> +    bundle = get_object_or_404(Bundle, name = bundlename, public = True)
> +    response = HttpResponse(mimetype='text/plain')
> +    response['Content-Disposition'] = 'attachment; filename=bundle-%s.mbox' % \
> +        bundle.name
> +    response.write(bundle.mbox())
> +    return response

Might be good to declare a function which takes a bundle, and returns a 
HttpResponse, to share the common code between public_mbox() and mbox().

Cheers,


Jeremy



More information about the Patchwork mailing list