You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

130 lines
3.8 KiB

# -*- 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, ExportBlogForm,\
ExportCityForm
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'
class ExportBlog(ExportView):
form_class = ExportBlogForm
success_url = '/admin/export-blog/'
class ExportBlog(ExportView):
form_class = ExportBlogForm
success_url = '/admin/export-blog/'
class ExportCity(ExportView):
form_class = ExportCityForm
success_url = '/admin/export-city/'
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'