Source code for covid19_data_analyzer.dashboard.components.download_area

from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html

import flask

from covid19_data_analyzer.dashboard.app import app
from covid19_data_analyzer.dashboard.utils.controls import generate_dropdown_options
from covid19_data_analyzer.dashboard.utils.download import generate_download_buffer

DOWNLOAD_AREA = html.Div(
    [
        html.Label(
            [
                "Download format",
                dcc.Dropdown(
                    id="dl_format",
                    placeholder="Select a download file format",
                    options=generate_dropdown_options(["csv", "xls"]),
                    value=None,
                    clearable=False,
                    disabled=True,
                ),
            ]
        ),
        html.A(
            html.Button("Download Raw Data", id="download-button"),
            id="download-link",
            target="_blank",
        ),
    ],
    className="download_area",
)





[docs]@app.server.route("/download_data") def download_data(): data_source = flask.request.args.get("data_source") dl_format = flask.request.args.get("dl_format") download_dict = generate_download_buffer(data_source, dl_format) return flask.send_file( download_dict["buffer"], mimetype=download_dict["mimetype"], attachment_filename=download_dict["file_name"], as_attachment=True, cache_timeout=0, )