diff --git a/src/flask/beer_data.py b/src/flask/beer_data.py
index 755fecd..d65a000 100644
--- a/src/flask/beer_data.py
+++ b/src/flask/beer_data.py
@@ -30,6 +30,12 @@ def create_graphs():
sg = chart.line_chart("SG", "sg", 30)
show(column(sg))
+def data_frame_to_table(df) -> str:
+
+ tr_replace_string = '
'
+ return_html = df.to_html(col_space='75px', index=False,
+ justify='center', border=3).replace('
', tr_replace_string)
+ return return_html
class userForm(FlaskForm):
username = StringField("User Name?", validators=[DataRequired()])
@@ -64,10 +70,13 @@ def index():
def updater():
if 'logged_in' not in session:
return redirect("/")
- 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)
+ table_Data = table_builder.TableBuilder()
+ predicted_alc_table = table_Data.done_runs_build()
+ current_runs_table = table_Data.current_runs_build()
+
+ beer_html = data_frame_to_table(predicted_alc_table)
+ current_html = data_frame_to_table(current_runs_table)
+
query_db = beer_database_query.pool_query()
query = query_db.get_top(10, "sg")
form = dataForm()
@@ -98,10 +107,10 @@ 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", beer_data = beer_html
+ return render_template("updater.html", beer_data = beer_html, current_data = current_html
, list=query, form=form, success=True, updater_name = "Saucy Beer Maker")
else:
- return render_template("updater.html", beer_data = beer_html
+ return render_template("updater.html", beer_data = beer_html, current_data = current_html
, list=query, form=form, sucess=False)
# @app.route("/update_db", methods=["POST"])
diff --git a/src/flask/table/table_builder.py b/src/flask/table/table_builder.py
index 20df83b..3a9ae53 100644
--- a/src/flask/table/table_builder.py
+++ b/src/flask/table/table_builder.py
@@ -7,8 +7,6 @@ import duckdb
class TableBuilder():
def __init__(self) -> None:
self.db = db_conn()
-
- def table_build(self, limit=10) -> pd.DataFrame:
data = self.db.beer_db
data = data.find({}).sort("date", -1)
df_dict = {}
@@ -21,8 +19,14 @@ class TableBuilder():
df_dict["beer_run_id"].append(record["beer_run_id"])
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_dict["final_reading"].append(record["final_reading"])
+
+ self.df_dict = df_dict
+ self.df = pd.DataFrame(data=self.df_dict)
+
+ def done_runs_build(self, limit=10) -> pd.DataFrame:
+
+ df = self.df
sql = f"""
SELECT x.beer_run_id as beer_run_id,
max(sg) as max,
@@ -43,7 +47,7 @@ class TableBuilder():
SELECT x.beer_run_id as "Beer Run",
x.max as "Max",
x.min as "Min",
- ROUND(((CAST (max AS INTEGER) - CAST(min AS INTEGER)) / 7.36) + 0.5, 2) AS "Alcohol Prediction",
+ ROUND(((CAST (max AS INTEGER) - CAST(min AS INTEGER)) / 7.36) + 0.5, 2) AS "Alcohol Prediction +/- 0.5",
cast(final_reading_date as DATE) + INTERVAL 14 DAY as "Ready Date"
FROM df_sum x
@@ -51,4 +55,36 @@ class TableBuilder():
df_calc = duckdb.sql(sql).df()
return df_calc
+ def current_runs_build(self, limit=10) -> pd.DataFrame:
+ df = self.df
+ sql = f"""
+ SELECT x.beer_run_id as beer_run_id,
+ max(sg) as max,
+ min(sg) as min,
+ min(cast(x.date as DATE)) as first_reading_date
+ FROM df x
+ LEFT JOIN
+ ( SELECT DISTINCT beer_run_id
+ FROM df
+ WHERE final_reading = 'True'
+ ) y ON x.beer_run_id = y.beer_run_id
+ WHERE y.beer_run_id is null
+ GROUP BY x.beer_run_id
+ ORDER BY x.beer_run_id desc
+ LIMIT {limit}
+ """
+ df_sum = duckdb.sql(sql).df()
+ sql = f"""
+ SELECT x.beer_run_id as "Beer Run",
+ x.max as "Max",
+ x.min as "Min",
+ ROUND(((CAST (max AS INTEGER) - 1012) / 7.36) + 0.5, 2) AS "Alcohol Prediction (1012) +/- 0.5",
+ first_reading_date + INTERVAL 7 DAY as "Earliest Bottling/Kegging Date"
+
+ FROM df_sum x
+ """
+ df_calc = duckdb.sql(sql).df()
+ return df_calc
+
+
diff --git a/src/flask/templates/updater.html b/src/flask/templates/updater.html
index b7745a7..68314cc 100644
--- a/src/flask/templates/updater.html
+++ b/src/flask/templates/updater.html
@@ -52,8 +52,13 @@
+
+
Current Runs
+ {{ current_data | safe }}
+
+ Previous Runs
{{ beer_data | safe }}
-
+