From ce99b6826eb977335ce173ef1e60fa5132bac8eb Mon Sep 17 00:00:00 2001 From: Patrick Huck Date: Thu, 2 Aug 2018 21:56:49 +0000 Subject: [PATCH 01/13] flask_site blueprint --- fireworks/flask_site/app.py | 45 ++++++++++--------- fireworks/flask_site/templates/base.html | 10 ++--- fireworks/flask_site/templates/dashboard.html | 18 ++++---- .../flask_site/templates/fw_details.html | 4 +- fireworks/flask_site/templates/home.html | 40 ++++++++--------- fireworks/flask_site/templates/report.html | 6 +-- .../flask_site/templates/wf_details.html | 18 ++++---- 7 files changed, 73 insertions(+), 68 deletions(-) diff --git a/fireworks/flask_site/app.py b/fireworks/flask_site/app.py index 966a44ef5..9ab7d3ef8 100644 --- a/fireworks/flask_site/app.py +++ b/fireworks/flask_site/app.py @@ -15,6 +15,11 @@ from fireworks.fw_config import WEBSERVER_PERFWARNINGS import fireworks.flask_site.helpers as fwapp_util +from flask import Blueprint +tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates') +stat_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'static') +main_bp = Blueprint('fw_webgui_main', __name__, template_folder=tmpl_dir, static_folder=stat_dir) + app = Flask(__name__) app.use_reloader = True app.secret_key = os.environ.get( @@ -81,7 +86,7 @@ def _addq_WF(q): return { "$and": [q, app.BASE_Q_WF, session.get('wf_filt', {}), filt_from_fw]} -@app.template_filter('datetime') +@main_bp.app_template_filter('datetime') def datetime(value): import datetime as dt @@ -89,7 +94,7 @@ def datetime(value): return date.strftime('%m/%d/%Y') -@app.template_filter('pluralize') +@main_bp.app_template_filter('pluralize') def pluralize(number, singular='', plural='s'): if number == 1: return singular @@ -97,7 +102,7 @@ def pluralize(number, singular='', plural='s'): return plural -@app.route("/") +@main_bp.route("/") @requires_auth def home(): fw_querystr = request.args.get('fw_query') @@ -148,7 +153,7 @@ def home(): return render_template('home.html', **locals()) -@app.route('/fw//details') +@main_bp.route('/fw//details') @requires_auth def get_fw_details(fw_id): # just fill out whatever attributse you want to see per step, then edit the handlebars template in @@ -161,7 +166,7 @@ def get_fw_details(fw_id): return jsonify(fw) -@app.route('/fw/') +@main_bp.route('/fw/') @requires_auth def fw_details(fw_id): try: @@ -174,7 +179,7 @@ def fw_details(fw_id): return render_template('fw_details.html', **locals()) -@app.route('/wf//json') +@main_bp.route('/wf//json') @requires_auth def workflow_json(wf_id): try: @@ -215,7 +220,7 @@ def workflow_json(wf_id): return jsonify(nodes_and_edges) -@app.route('/wf/') +@main_bp.route('/wf/') @requires_auth def wf_details(wf_id): try: @@ -229,9 +234,9 @@ def wf_details(wf_id): return render_template('wf_details.html', **locals()) -@app.route('/fw/', defaults={"state": "total"}) -@app.route("/fw//", defaults={"sorting_key": "_id", "sorting_order": "DESCENDING"}) -@app.route("/fw////") +@main_bp.route('/fw/', defaults={"state": "total"}) +@main_bp.route("/fw//", defaults={"sorting_key": "_id", "sorting_order": "DESCENDING"}) +@main_bp.route("/fw////") @requires_auth def fw_state(state, sorting_key='_id', sorting_order="DESCENDING"): if sorting_order == "ASCENDING": @@ -259,9 +264,9 @@ def fw_state(state, sorting_key='_id', sorting_order="DESCENDING"): return render_template('fw_state.html', **locals()) -@app.route('/wf/', defaults={"state": "total"}) -@app.route("/wf//", defaults={"sorting_key": "_id", "sorting_order": "DESCENDING"}) -@app.route("/wf////") +@main_bp.route('/wf/', defaults={"state": "total"}) +@main_bp.route("/wf//", defaults={"sorting_key": "_id", "sorting_order": "DESCENDING"}) +@main_bp.route("/wf////") @requires_auth def wf_state(state, sorting_key='_id', sorting_order="DESCENDING"): if sorting_order == "ASCENDING": @@ -289,8 +294,8 @@ def wf_state(state, sorting_key='_id', sorting_order="DESCENDING"): return render_template('wf_state.html', **locals()) -@app.route("/wf/metadata///", defaults={"state": "total"}) -@app.route("/wf/metadata////") +@main_bp.route("/wf/metadata///", defaults={"state": "total"}) +@main_bp.route("/wf/metadata////") @requires_auth def wf_metadata_find(key, value, state): db = lp.workflows @@ -324,9 +329,9 @@ def wf_metadata_find(key, value, state): return render_template('wf_metadata.html', **locals()) -@app.route('/report/', defaults={"interval": "months", "num_intervals": 6}) -@app.route('/report//', defaults={"num_intervals": 6}) -@app.route("/report///") +@main_bp.route('/report/', defaults={"interval": "months", "num_intervals": 6}) +@main_bp.route('/report//', defaults={"num_intervals": 6}) +@main_bp.route("/report///") @requires_auth def report(interval, num_intervals): num_intervals = int(num_intervals) @@ -351,7 +356,7 @@ def report(interval, num_intervals): return render_template('report.html', **locals()) -@app.route('/dashboard/') +@main_bp.route('/dashboard/') @requires_auth def dashboard(): PLOTTING = False @@ -398,7 +403,7 @@ def parse_querystr(querystr, coll): "to make it run faster.".format(querystr)) return d -@app.route("/reports////fig.png") +@main_bp.route("/reports////fig.png") def simple(coll, interval, num_intervals): from io import BytesIO diff --git a/fireworks/flask_site/templates/base.html b/fireworks/flask_site/templates/base.html index 5e078f65d..38c64841b 100644 --- a/fireworks/flask_site/templates/base.html +++ b/fireworks/flask_site/templates/base.html @@ -1,9 +1,9 @@ - - - + + + {% block morehead %}{% endblock %} {% block title %}{% endblock %} @@ -11,8 +11,8 @@
diff --git a/fireworks/flask_site/templates/dashboard.html b/fireworks/flask_site/templates/dashboard.html index 9886cede3..7a93cb8cc 100644 --- a/fireworks/flask_site/templates/dashboard.html +++ b/fireworks/flask_site/templates/dashboard.html @@ -6,18 +6,18 @@

Fireworks

{% if PLOTTING %}
- +
- +
- +
- +
{% else %} @@ -30,18 +30,18 @@

Workflows

{% if PLOTTING %}
- +
- +
- +
- +
{% else %} @@ -50,4 +50,4 @@

Workflows

{% endif %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/fireworks/flask_site/templates/fw_details.html b/fireworks/flask_site/templates/fw_details.html index c98cfd0ed..b55a5116c 100644 --- a/fireworks/flask_site/templates/fw_details.html +++ b/fireworks/flask_site/templates/fw_details.html @@ -3,9 +3,9 @@ {% block title %}Firework {{ fw_id }} Details{% endblock %} {% block morehead %} - + - + - - - - - - + + + + + + {% raw %} +