From fc284ade276f63f02e10148825d7883a160d811c Mon Sep 17 00:00:00 2001 From: Oliver Falk Date: Fri, 8 Mar 2019 12:45:53 +0100 Subject: [PATCH] Handle export upload errors gracefully. Fixes issue #53 --- ivatar/ivataraccount/views.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ivatar/ivataraccount/views.py b/ivatar/ivataraccount/views.py index 40c3d0b..e63594f 100644 --- a/ivatar/ivataraccount/views.py +++ b/ivatar/ivataraccount/views.py @@ -816,12 +816,16 @@ class UploadLibravatarExportView(SuccessMessageMixin, FormView): def form_valid(self, form): data = self.request.FILES['export_file'] - items = libravatar_read_gzdata(data.read()) - # DEBUG print(items) - return render(self.request, 'choose_libravatar_export.html', { - 'emails': items['emails'], - 'photos': items['photos'], - }) + try: + items = libravatar_read_gzdata(data.read()) + # DEBUG print(items) + return render(self.request, 'choose_libravatar_export.html', { + 'emails': items['emails'], + 'photos': items['photos'], + }) + except Exception as e: + messages.error(self.request, _('Unable to parse file: %s' % e)) + return HttpResponseRedirect(reverse_lazy('upload_export')) @method_decorator(login_required, name='dispatch')