diff --git a/Procfile b/Procfile index d39493f..a7be18c 100644 --- a/Procfile +++ b/Procfile @@ -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="['.*']" diff --git a/assets/networks/.DS_Store b/assets/networks/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/assets/networks/.DS_Store and /dev/null differ diff --git a/dashboard/Sugartrail.ipynb b/dashboard/Sugartrail.ipynb index 0ba5f18..60b91f2 100644 --- a/dashboard/Sugartrail.ipynb +++ b/dashboard/Sugartrail.ipynb @@ -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 = '''\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\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": { diff --git a/sugartrail/base.py b/sugartrail/base.py index 65e0476..6d222ca 100644 --- a/sugartrail/base.py +++ b/sugartrail/base.py @@ -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