|
1 | 1 | # coding=utf-8 |
2 | 2 | """collection of Page endpoints.""" |
| 3 | +import flask_login |
3 | 4 | import logging |
4 | 5 | import os |
5 | | - |
6 | | -import flask_login |
| 6 | +import subprocess |
7 | 7 | from flask import redirect, render_template, request, url_for |
8 | 8 | from flask.blueprints import Blueprint |
9 | 9 | from sqlalchemy import and_ |
10 | 10 |
|
| 11 | +from mycodo.config import INSTALL_DIRECTORY |
11 | 12 | from mycodo.config import PATH_HTML_USER |
12 | 13 | from mycodo.databases.models import (PID, Camera, Conditional, Conversion, |
13 | 14 | CustomController, Dashboard, |
@@ -125,7 +126,11 @@ def page_dashboard(dashboard_id): |
125 | 126 |
|
126 | 127 | # Widget |
127 | 128 | elif form_base.widget_add.data: |
128 | | - unmet_dependencies = utils_dashboard.widget_add(form_base, request.form) |
| 129 | + unmet_dependencies, reload_flask = utils_dashboard.widget_add(form_base, request.form) |
| 130 | + if not unmet_dependencies and reload_flask: |
| 131 | + return redirect(url_for( |
| 132 | + 'routes_dashboard.restart_flask_auto_advance_page', |
| 133 | + dashboard_id=this_dashboard.unique_id)) |
129 | 134 | elif form_base.widget_mod.data: |
130 | 135 | utils_dashboard.widget_mod(form_base, request.form) |
131 | 136 | elif form_base.widget_delete.data: |
@@ -319,3 +324,17 @@ def page_dashboard(dashboard_id): |
319 | 324 | form_base=form_base, |
320 | 325 | form_dashboard=form_dashboard, |
321 | 326 | widget=widget) |
| 327 | + |
| 328 | + |
| 329 | +@blueprint.route('/reload_flask/<dashboard_id>') |
| 330 | +@flask_login.login_required |
| 331 | +def restart_flask_auto_advance_page(dashboard_id=""): |
| 332 | + """Wait then automatically load next page""" |
| 333 | + logger.info("Reloading frontend in 5 seconds") |
| 334 | + |
| 335 | + cmd = f"sleep 5 && {INSTALL_DIRECTORY}/mycodo/scripts/mycodo_wrapper frontend_reload 2>&1" |
| 336 | + subprocess.Popen(cmd, shell=True) |
| 337 | + logger.info("Rendering wait page") |
| 338 | + |
| 339 | + return render_template('pages/wait_and_autoload.html', |
| 340 | + dashboard_id=dashboard_id) |
0 commit comments