コード例 #1
0
ファイル: views.py プロジェクト: Dpetters/Umeqo
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
コード例 #2
0
ファイル: views.py プロジェクト: Dpetters/Umeqo
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
コード例 #3
0
ファイル: views.py プロジェクト: Dpetters/Umeqo
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
コード例 #4
0
ファイル: views.py プロジェクト: Dpetters/Umeqo
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