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.
134 lines
4.0 KiB
134 lines
4.0 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/'
|
|
template_name = 'admin/import templates/import_event.html'
|
|
def form_valid(self, form):
|
|
errors = form.save_file_debug()
|
|
messages.success(self.request, 'Success')
|
|
context = self.get_context_data()
|
|
context['import_errors'] = errors
|
|
context['form'] = form
|
|
return render_to_response(self.template_name, context)
|
|
|
|
#return super(ImportEvent, 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' |