def event_list_download(request): if not request.GET.has_key("event_id"): raise Http400("Request GET is missing the event_id.") try: event = Event.objects.get(id=request.GET["event_id"]) except Event.DoesNotExist: raise Http404("Event with the id %d" % request.GET['event_id']) else: list = request.GET['event_list'] if not request.GET.has_key('export_format'): raise Http400("The request is missing the file format.") if request.GET['export_format'] == core_enums.CSV: response = HttpResponse(mimetype='text/csv') filename = "%s.csv" % export_event_list_csv(response, event, list) #elif request.GET['export_format'] == core_enums.XLS: # response = HttpResponse(mimetype="application/ms-excel") # filename = export_event_list_xls(response, event, list) elif request.GET['export_format'] == core_enums.TEXT: response = HttpResponse(mimetype="text/plain") filename = "%s.txt" % export_event_list_text(response, event, list) else: raise Http500("The file format % isn't one we support." % request.GET['export_format']) response[ 'Content-Disposition'] = 'attachment; filename="%s"' % filename return response
def event_list_export(request, form_class = EventExportForm, extra_context=None): if request.method == 'POST': form = form_class(data=request.POST) if form.is_valid(): format = form.cleaned_data["export_format"] event = Event.objects.get(id=form.cleaned_data["event_id"]) list = form.cleaned_data['event_list'] reg = re.compile(r"\s*[;, \n]\s*") recipients = reg.split(request.POST['emails']) context = Context({'deliverer_fullname': "%s %s" % (request.user.first_name, request.user.last_name), 'deliverer_email': request.user.email}) context.update(get_basic_email_context()) subject = ''.join(render_to_string('email_subject.txt', { 'message': "Event List Delivery" }, context).splitlines()) txt_email_body = render_to_string('event_list_export_email_body.txt', context) html_email_body = render_to_string('event_list_export_email_body.html', context) file = StringIO.StringIO() if format == core_enums.CSV: filename = export_event_list_csv(file, event, list) extension = "csv" file_contents = file.getvalue() mimetype = "text/csv" #elif format == core_enums.XLS: # filename = export_event_list_xls(file, event, list) # file_contents = file.getvalue() # mimetype = "application/vnd.ms-excel" elif format == core_enums.TEXT: filename = export_event_list_text(file, event, list) extension = "txt" file_contents = file.getvalue() mimetype = "text/plain" else: raise Http500("The request format '%s' is not supported" % format) send_email(subject, txt_email_body, recipients, html_email_body, "%s.%s" % (filename, extension), file_contents, mimetype) context = {'filename': filename, 'TEMPLATE':'event_list_export_completed.html'} context.update(extra_context or {}) return context else: data = {'errors':form.errors} return HttpResponse(simplejson.dumps(data), mimetype="application/json") else: form = form_class(initial={'emails':request.user.email, 'event_id':request.GET['event_id'], 'event_list':request.GET['event_list']}) context = {'form': form, 'TEMPLATE':'event_list_export.html'} context.update(extra_context or {}) return context
def event_list_download(request): if not request.GET.has_key("event_id"): raise Http400("Request GET is missing the event_id.") try: event = Event.objects.get(id=request.GET["event_id"]) except Event.DoesNotExist: raise Http404("Event with the id %d" % request.GET['event_id']) else: list = request.GET['event_list'] if not request.GET.has_key('export_format'): raise Http400("The request is missing the file format.") if request.GET['export_format'] == core_enums.CSV: response = HttpResponse(mimetype='text/csv') filename = "%s.csv" % export_event_list_csv(response, event, list) #elif request.GET['export_format'] == core_enums.XLS: # response = HttpResponse(mimetype="application/ms-excel") # filename = export_event_list_xls(response, event, list) elif request.GET['export_format'] == core_enums.TEXT: response = HttpResponse(mimetype="text/plain") filename = "%s.txt" % export_event_list_text(response, event, list) else: raise Http500("The file format % isn't one we support." % request.GET['export_format']) response['Content-Disposition'] = 'attachment; filename="%s"' % filename return response
def event_list_export(request, form_class=EventExportForm, extra_context=None): if request.method == 'POST': form = form_class(data=request.POST) if form.is_valid(): format = form.cleaned_data["export_format"] event = Event.objects.get(id=form.cleaned_data["event_id"]) list = form.cleaned_data['event_list'] reg = re.compile(r"\s*[;, \n]\s*") recipients = reg.split(request.POST['emails']) context = Context({ 'deliverer_fullname': "%s %s" % (request.user.first_name, request.user.last_name), 'deliverer_email': request.user.email }) context.update(get_basic_email_context()) subject = ''.join( render_to_string('email_subject.txt', { 'message': "Event List Delivery" }, context).splitlines()) txt_email_body = render_to_string( 'event_list_export_email_body.txt', context) html_email_body = render_to_string( 'event_list_export_email_body.html', context) file = StringIO.StringIO() if format == core_enums.CSV: filename = export_event_list_csv(file, event, list) extension = "csv" file_contents = file.getvalue() mimetype = "text/csv" #elif format == core_enums.XLS: # filename = export_event_list_xls(file, event, list) # file_contents = file.getvalue() # mimetype = "application/vnd.ms-excel" elif format == core_enums.TEXT: filename = export_event_list_text(file, event, list) extension = "txt" file_contents = file.getvalue() mimetype = "text/plain" else: raise Http500("The request format '%s' is not supported" % format) send_email(subject, txt_email_body, recipients, html_email_body, "%s.%s" % (filename, extension), file_contents, mimetype) context = { 'filename': filename, 'TEMPLATE': 'event_list_export_completed.html' } context.update(extra_context or {}) return context else: data = {'errors': form.errors} return HttpResponse(simplejson.dumps(data), mimetype="application/json") else: form = form_class( initial={ 'emails': request.user.email, 'event_id': request.GET['event_id'], 'event_list': request.GET['event_list'] }) context = {'form': form, 'TEMPLATE': 'event_list_export.html'} context.update(extra_context or {}) return context