lingo: display an error message if invoice retrieval failed (#11033)

This commit is contained in:
Frédéric Péters 2016-05-24 11:50:22 +02:00
parent eba3934c2a
commit a438043603
1 changed files with 13 additions and 1 deletions

View File

@ -21,6 +21,7 @@ import logging
import requests
from django.contrib.auth.models import User
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseBadRequest
from django.http import HttpResponseForbidden, Http404
@ -306,7 +307,18 @@ class ItemDownloadView(View):
def get(self, request, *args, **kwargs):
regie = Regie.objects.get(pk=kwargs['regie_id'])
data = regie.download_item(request, kwargs['item_id'])
try:
data = regie.download_item(request, kwargs['item_id'])
except PermissionDenied:
return HttpResponseForbidden()
if data.status_code != 200:
logging.error('failed to retrieve invoice (%r)', data.status_code)
messages.error(request, _('We are sorry but an error occured when retrieving the invoice.'))
if self.request.META.get('HTTP_REFERER'):
return HttpResponseRedirect(self.request.META.get('HTTP_REFERER'))
return HttpResponseRedirect('/')
r = HttpResponse(data, content_type='application/pdf')
r['Content-Disposition'] = 'attachment; filename="%(item_id)s.pdf"' % kwargs
return r