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.
64 lines
1.7 KiB
64 lines
1.7 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 custom_forms import ImportEventForm, ExportEventForm
|
|
from excel_settings import field_settings, import_settings
|
|
|
|
relation_fields = ['city']
|
|
@login_required
|
|
def import_event(request):
|
|
args = {}
|
|
form = ImportEventForm()
|
|
args.update(csrf(request))
|
|
args['form'] = form
|
|
|
|
if request.POST:
|
|
|
|
form = ImportEventForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
|
|
form.save_events()
|
|
|
|
args['message'] = 'Success'
|
|
return render_to_response('import_event.html', args)
|
|
|
|
return render_to_response('import_event.html', args)
|
|
|
|
|
|
|
|
def xls_to_response(xls, fname):
|
|
response = HttpResponse(mimetype="application/ms-excel")
|
|
response['Content-Disposition'] = 'attachment; filename=%s' % fname
|
|
xls.save(response)
|
|
return response
|
|
|
|
|
|
def export_event(request):
|
|
if request.POST:
|
|
form = ExportEventForm(request.POST)
|
|
if form.is_valid():
|
|
workbook = form.export_events()
|
|
if workbook is None:
|
|
pass
|
|
else:
|
|
f_name = form.get_fname()
|
|
return xls_to_response(workbook, f_name)
|
|
|
|
#return xls_to_response(workbook, 'My Worksheet.xls')
|
|
else:
|
|
form = ExportEventForm()
|
|
|
|
|
|
args = {}
|
|
args.update(csrf(request))
|
|
|
|
args['form'] = form
|
|
|
|
return render_to_response('export_event.html', args) |