added download button to dashboard

This commit is contained in:
seangreaves
2023-01-07 17:31:58 +00:00
parent 9303c2660d
commit 7f8dc7236d
4 changed files with 35 additions and 7 deletions

View File

@@ -1 +1 @@
web: voila --port=$PORT --no-browser --Voila.ip=0.0.0.0 dashboard/Sugartrail.ipynb --VoilaConfiguration.file_whitelist="['favicon.ico']"
web: voila --port=$PORT --no-browser --Voila.ip=0.0.0.0 dashboard/Sugartrail.ipynb --VoilaConfiguration.file_whitelist="['.*']"

Binary file not shown.

View File

@@ -17,7 +17,7 @@
"source": [
"from sugartrail import mapview, api, base\n",
"import ipywidgets as widgets\n",
"from IPython.display import display\n",
"from IPython.display import display, HTML\n",
"import requests\n",
"import pandas as pd"
]
@@ -137,8 +137,8 @@
" else:\n",
" init_button.disabled=False\n",
" company_text.disabled=False\n",
" auth_button.disabled=False\n",
" API_input.disabled=False\n",
"# auth_button.disabled=False\n",
"# API_input.disabled=False\n",
" init_status.value = u'\\u274c: Initialisation Failed. No records for company: ' + str(company_text.value) + ' found.'\n",
"\n",
"display(company_text, init_button, init_status)"
@@ -215,6 +215,18 @@
"accordion_data = widgets.Accordion(children=[tab])\n",
"accordion_data.set_title(0, 'Data')\n",
"\n",
"html_buttons = '''<html>\n",
"<head>\n",
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n",
"</head>\n",
"<body>\n",
"<a href=\"{filename}\" download=\"{filename}\">\n",
"<button class=\"p-Widget jupyter-widgets jupyter-button widget-button\">Download Network</button>\n",
"</a>\n",
"</body>\n",
"</html>\n",
"'''\n",
"\n",
"def generate_map():\n",
" map_data,path_table = mapview.build_map(network, clear_widget=False) \n",
" hbox_map = widgets.HBox([path_table])\n",
@@ -229,8 +241,14 @@
" with tab.children[2]:\n",
" display(pd.DataFrame(network.officer_ids))\n",
" with tab.children[3]:\n",
" display(pd.DataFrame(network.companies)) \n",
" display(pd.DataFrame(network.companies))\n",
" file = str(company_text.value) + '.json'\n",
" network.save(file, \"./\")\n",
" html_button = html_buttons.format(filename=file)\n",
" with download_link:\n",
" display(HTML(html_button))\n",
"\n",
"download_link = widgets.Output()\n",
"display(build_map_button, map_container)"
]
},
@@ -253,6 +271,16 @@
"source": [
"accordion_data"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9224dce5",
"metadata": {},
"outputs": [],
"source": [
"download_link"
]
}
],
"metadata": {

View File

@@ -92,10 +92,10 @@ class Network:
else:
print("No input provided. Please provide either officer_id, company_id or address value as input.")
def save(self, filename):
def save(self, filename, location='../assets/networks/'):
network_data = {k: v for k, v in self.__dict__.items() if k != 'hop' and k != 'file'}
saved_network = json.dumps(network_data)
f = open(f'../assets/networks/{filename}', 'w')
f = open(f'{filename}', 'w')
f.write(saved_network)
f.close