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

# -*- 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)