# -*- coding: utf-8 -*- from django.core.context_processors import csrf from django.shortcuts import render_to_response from django.http import HttpResponseRedirect, HttpResponse from django.contrib.auth.decorators import login_required from django.db.models.loading import get_model # import xlwt import xlrd # from import_forms import ImportEventForm, ImportThemeForm, ImportTagForm, ImportOrganiserForm,\ ImportPlaceConferenceForm, ImportPlaceExpositionForm from export_forms import ExportEventForm, ExportOrganiserForm, ExportThemeForm, ExportTagForm,\ ExportUserForm, ExportCompanyForm, ExportPlaceConferenceForm, ExportPlaceExpositionForm from django.views.generic import FormView from django.contrib import messages def xls_to_response(xls, fname): response = HttpResponse(mimetype="application/ms-excel") response['Content-Disposition'] = 'attachment; filename=%s' % fname xls.save(response) return response class ImportView(FormView): """ abstract class """ template_name = 'import.html' def form_valid(self, form): form.save_file() messages.success(self.request, 'Success') return super(ImportView, self).form_valid(form) class ExportView(FormView): """ abstract class """ template_name = 'export.html' def form_valid(self, form): workbook = form.export() if workbook: f_name = form.get_fname() else: messages.error(self.request, 'No objects found') return HttpResponseRedirect(self.success_url) return xls_to_response(workbook, f_name) class ExportOrganiser(ExportView): form_class = ExportOrganiserForm success_url = '/admin/export-organiser' class ExportTheme(ExportView): form_class = ExportThemeForm success_url = '/admin/export-theme' class ExportTag(ExportView): form_class = ExportTagForm success_url = '/admin/export-tag' class ExportUser(ExportView): form_class = ExportUserForm success_url = '/admin/export-user' class ExportCompany(ExportView): form_class = ExportCompanyForm success_url = '/admin/export-company' class ExportPlaceConference(ExportView): form_class = ExportPlaceConferenceForm success_url = '/admin/export-place_conference' class ExportPlaceExposition(ExportView): form_class = ExportPlaceExpositionForm success_url = '/admin/export-place_exposition' from exposition.models import Exposition class ImportEvent(FormView): form_class = ImportEventForm success_url = '/admin/import-event' def form_valid(self, form): result = form.save_file() Exposition.imports.create_by_dict(result[0]) messages.success(self.request, 'Success') return super(ImportView, self).form_valid(form) class ImportTheme(ImportView): form_class = ImportThemeForm success_url = '/admin/import-theme' class ImportTag(ImportView): form_class = ImportTagForm success_url = '/admin/import-tag' class ImportOrganiser(ImportView): form_class = ImportOrganiserForm success_url = '/admin/import-organiser' class ImportPlaceExposition(ImportView): form_class = ImportPlaceExpositionForm success_url = '/admin/import-place_exposition' class ImportPlaceConference(ImportView): form_class = ImportPlaceConferenceForm success_url = '/admin/import-place_conference' class ExportEvent(ExportView): form_class = ExportEventForm template_name = 'export_event.html' success_url = '/admin/export-event'