def patch_mbox(request, patch_id):
patch = get_object_or_404(Patch, id=patch_id)
- series_num = request.GET.get('series')
+ series_id = request.GET.get('series')
response = HttpResponse(content_type='text/plain')
- if series_num:
- response.write(series_patch_to_mbox(patch, series_num))
+ if series_id:
+ response.write(series_patch_to_mbox(patch, series_id))
else:
response.write(patch_to_mbox(patch))
response['Content-Disposition'] = 'attachment; filename=' + \
return '\n'.join([patch_to_mbox(p) for p in bundle.ordered_patches()])
-def series_patch_to_mbox(patch, series_num):
+def series_patch_to_mbox(patch, series_id):
"""Get an mbox representation of a patch with dependencies.
Arguments:
patch: The Patch object to convert.
- series_num: The series number to retrieve dependencies from.
+ series_id: The series number to retrieve dependencies from, or
+ '*' if using the latest series.
Returns:
A string for the mbox file.
"""
- try:
- series_num = int(series_num)
- except ValueError:
- raise Http404('Expected integer series value. Received: %r' %
- series_num)
-
- try:
- series = patch.series.get(id=series_num)
- except Series.DoesNotExist:
- raise Http404('Patch does not belong to series %d' % series_num)
+ if series_id == '*':
+ series = patch.latest_series
+ else:
+ try:
+ series_id = int(series_id)
+ except ValueError:
+ raise Http404('Expected integer series value or *. Received: %r' %
+ series_id)
+
+ try:
+ series = patch.series.get(id=series_id)
+ except Series.DoesNotExist:
+ raise Http404('Patch does not belong to series %d' % series_id)
mbox = []