示例#1
0
def export_project(file, format):
    if file == 'transactions':
        export = g.project.get_transactions_to_settle_bill(pretty_output=True)
    elif file == "bills":
        export = g.project.get_pretty_bills(export_format=format)
    else:
        abort(404, 'No such export type')

    if format == "json":
        file2export = list_of_dicts2json(export)
    elif format == "csv":
        file2export = list_of_dicts2csv(export)
    else:
        abort(404, 'No such export format')

    return send_file(file2export,
                     attachment_filename="%s-%s.%s" %
                     (g.project.id, file, format),
                     as_attachment=True)
示例#2
0
def export_project(file, format):
    if file == "transactions":
        export = g.project.get_transactions_to_settle_bill(pretty_output=True)
    elif file == "bills":
        export = g.project.get_pretty_bills(export_format=format)
    else:
        abort(404, "No such export type")

    if format == "json":
        file2export = list_of_dicts2json(export)
    elif format == "csv":
        file2export = list_of_dicts2csv(export)
    else:
        abort(404, "No such export format")

    return send_file(
        file2export,
        attachment_filename=f"{g.project.id}-{file}.{format}",
        as_attachment=True,
    )
示例#3
0
def edit_project():
    edit_form = EditProjectForm()
    export_form = ExportForm()
    if request.method == "POST":
        if edit_form.validate():
            project = edit_form.update(g.project)
            db.session.commit()
            session[project.id] = project.password

            return redirect(url_for(".list_bills"))

        if export_form.validate():
            export_format = export_form.export_format.data
            export_type = export_form.export_type.data

            if export_type == 'transactions':
                export = g.project.get_transactions_to_settle_bill(
                    pretty_output=True)
            if export_type == "bills":
                export = g.project.get_pretty_bills(
                    export_format=export_format)

            if export_format == "json":
                file2export = list_of_dicts2json(export)
            if export_format == "csv":
                file2export = list_of_dicts2csv(export)

            return send_file(file2export,
                             attachment_filename="%s-%s.%s" %
                             (g.project.id, export_type, export_format),
                             as_attachment=True
                             )
    else:
        edit_form.name.data = g.project.name
        edit_form.password.data = g.project.password
        edit_form.contact_email.data = g.project.contact_email

    return render_template("edit_project.html", edit_form=edit_form, export_form=export_form)
示例#4
0
文件: web.py 项目: aavenel/ihatemoney
def edit_project():
    edit_form = EditProjectForm()
    export_form = ExportForm()
    if request.method == "POST":
        if edit_form.validate():
            project = edit_form.update(g.project)
            db.session.add(project)
            db.session.commit()

            return redirect(url_for(".list_bills"))

        if export_form.validate():
            export_format = export_form.export_format.data
            export_type = export_form.export_type.data

            if export_type == 'transactions':
                export = g.project.get_transactions_to_settle_bill(
                    pretty_output=True)
            if export_type == "bills":
                export = g.project.get_pretty_bills(
                    export_format=export_format)

            if export_format == "json":
                file2export = list_of_dicts2json(export)
            if export_format == "csv":
                file2export = list_of_dicts2csv(export)

            return send_file(file2export,
                             attachment_filename="%s-%s.%s" %
                             (g.project.id, export_type, export_format),
                             as_attachment=True
                             )
    else:
        edit_form.name.data = g.project.name
        edit_form.password.data = g.project.password
        edit_form.contact_email.data = g.project.contact_email

    return render_template("edit_project.html", edit_form=edit_form, export_form=export_form)