Add ability to plot saved queries using plotly, need to check performance in production, also need to improve generate_plot function

This commit is contained in:
Peter Stockings
2024-11-09 16:49:08 +11:00
parent 23def088bb
commit c7013e0eac
5 changed files with 85 additions and 13 deletions

10
app.py
View File

@@ -7,7 +7,7 @@ import jinja_partials
from jinja2_fragments import render_block
from decorators import validate_person, validate_topset, validate_workout
from db import DataBase
from utils import count_prs_over_time, get_people_and_exercise_rep_maxes, convert_str_to_date, get_earliest_and_latest_workout_date, filter_workout_topsets, first_and_last_visible_days_in_month, get_weekly_pr_graph_model, get_workout_counts
from utils import count_prs_over_time, get_people_and_exercise_rep_maxes, convert_str_to_date, get_earliest_and_latest_workout_date, filter_workout_topsets, first_and_last_visible_days_in_month, get_weekly_pr_graph_model, get_workout_counts, generate_plot
from flask_htmx import HTMX
import minify_html
from urllib.parse import quote
@@ -526,6 +526,14 @@ def sql_schema():
mermaid_code = db.sql_explorer.generate_mermaid_er(schema_info)
return render_template('partials/sql_explorer/schema.html', mermaid_code=mermaid_code)
@app.route("/plot/<int:query_id>", methods=['GET'])
def plot_query(query_id):
(title, query) = db.sql_explorer.get_saved_query(query_id)
#(results, columns, error) = db.sql_explorer.execute_sql(query)
results_df = db.read_sql_as_df(query)
plot_div = generate_plot(results_df, title)
return plot_div
@app.teardown_appcontext
def closeConnection(exception):
db.close_connection()