from django.contrib import messages from django.http import HttpResponseRedirect from django.utils.translation import ungettext from django.views.generic import FormView from chn_spreadsheet.importer import Importer, SheetImportException from ..forms.upload import UploadForm class UploadSpreadsheetView(FormView): form_class = UploadForm template_name = "hid/upload.html" def get_success_url(self): return self.request.POST.get('next') def form_valid(self, form): data = form.cleaned_data source = data['source'] uploaded_file = data['file'] try: importer = Importer() saved = importer.store_spreadsheet(source, uploaded_file) msg = ungettext("Upload successful! %d entry has been added.", "Upload successful! %d entries have been added.", saved) % saved messages.success(self.request, msg) except SheetImportException as exc: msg = exc.message messages.error(self.request, msg) return HttpResponseRedirect(self.get_success_url())