diff --git a/requirements.txt b/requirements.txt
index 85a7cae..ef76f0b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,3 +8,4 @@ bootstrap-flask
waitress
bokeh
pandas
+duckdb
\ No newline at end of file
diff --git a/src/flask/beer_data.py b/src/flask/beer_data.py
index f294de3..755fecd 100644
--- a/src/flask/beer_data.py
+++ b/src/flask/beer_data.py
@@ -1,6 +1,7 @@
from bokeh.core.enums import SpatialUnitsType
import mongo.build_db as beer_database
import mongo.query_db as beer_database_query
+from table import table_builder
from flask import Flask, render_template, request, jsonify, redirect, session
from flask_wtf import FlaskForm, CSRFProtect
@@ -14,6 +15,7 @@ from charts import BeerCharts
from bokeh.io import output_file, show
from bokeh.layouts import row
+
app = Flask(__name__)
app.secret_key = 'testsecret' #this value will change
@@ -62,11 +64,16 @@ def index():
def updater():
if 'logged_in' not in session:
return redirect("/")
- #create_graphs()
+ predicted_alc_table = table_builder.TableBuilder().table_build()
+ tr_replace_string = '
'
+ beer_html = predicted_alc_table.to_html(col_space='75px', index=False,
+ justify='center', border=3).replace('
', tr_replace_string)
query_db = beer_database_query.pool_query()
query = query_db.get_top(10, "sg")
form = dataForm()
+
+
if form.validate_on_submit():
database = beer_database.beer_data()
new_record = {
@@ -91,9 +98,11 @@ def updater():
database.create_re_record(new_record["beer_run_id"], new_record["beer_type"], new_record["sg"],
new_record["date"], final_run_value, new_record["comment"])
- return render_template("updater.html", list=query, form=form, success=True, updater_name = "Saucy Beer Maker")
+ return render_template("updater.html", beer_data = beer_html
+ , list=query, form=form, success=True, updater_name = "Saucy Beer Maker")
else:
- return render_template("updater.html", list=query, form=form, sucess=False)
+ return render_template("updater.html", beer_data = beer_html
+ , list=query, form=form, sucess=False)
# @app.route("/update_db", methods=["POST"])
# def beer_data_update():
diff --git a/src/flask/table/table_builder.py b/src/flask/table/table_builder.py
index 4be46b4..9b4201a 100644
--- a/src/flask/table/table_builder.py
+++ b/src/flask/table/table_builder.py
@@ -2,12 +2,13 @@ import sys
from mongo.get_conn import db_conn
import pandas as pd
+import duckdb
class TableBuilder():
def __init__(self) -> None:
self.db = db_conn()
- def table_build(self, field, read_count=3, runs=5) -> pd.DataFrame:
+ def table_build(self, limit=10) -> pd.DataFrame:
data = self.db.beer_db
data = data.find({}).sort("date", -1)
df_dict = {}
@@ -21,9 +22,28 @@ class TableBuilder():
df_dict["sg"].append(record["sg"])
df_dict["date"].append(record["date"])
df_dict["final_reading"].append(record["final_reading"])
-
df = pd.DataFrame(data=df_dict)
- df_sum = df.groupby('beer_run_id').agg({'sg': ['max', 'min']})
- return df_sum
+ sql = f"""
+ SELECT x.beer_run_id as "Beer Run",
+ max(sg) as "Max",
+ min(sg) as "Min"
+ FROM df x
+ JOIN
+ ( SELECT DISTINCT beer_run_id
+ FROM df
+ WHERE final_reading = 'True'
+ ) y ON x.beer_run_id = y.beer_run_id
+ GROUP BY x.beer_run_id
+ ORDER BY x.beer_run_id desc
+ LIMIT {limit}
+ """
+ df_sum = duckdb.sql(sql).df()
+ sql = f"""
+ SELECT *,
+ ROUND(((CAST (max AS INTEGER) - CAST(min AS INTEGER)) / 7.36) + 0.5, 2) AS "Alcohol Prediction"
+ FROM df_sum
+ """
+ df_calc = duckdb.sql(sql).df()
+ return df_calc
diff --git a/src/flask/templates/updater.html b/src/flask/templates/updater.html
index 09d0d63..b7745a7 100644
--- a/src/flask/templates/updater.html
+++ b/src/flask/templates/updater.html
@@ -46,18 +46,15 @@
-->
-
-
- |
+
+ {{ beer_data | safe }}
+
+
diff --git a/src/flask/test.py b/src/flask/test.py
index 562a65e..8a4794c 100644
--- a/src/flask/test.py
+++ b/src/flask/test.py
@@ -2,4 +2,4 @@ import table.table_builder as table_builder
test = table_builder.TableBuilder()
-print(test.table_build("sg"))
+print(test.table_build())