From 56ff1a72473620fe01de5a2645edff3806ff23f8 Mon Sep 17 00:00:00 2001 From: Andrew Ridgway Date: Wed, 11 Sep 2024 05:45:21 +0000 Subject: [PATCH] fix up to get running and some feature add --- flask.Dockerfile | 5 +-- src/flask/add_user.py | 2 +- src/flask/beer_data.py | 60 ++++++++++++++++++-------------- src/flask/charts/BeerCharts.py | 2 +- src/flask/mongo/build_db.py | 7 ++-- src/flask/mongo/get_conn.py | 2 +- src/flask/templates/updater.html | 3 +- 7 files changed, 45 insertions(+), 36 deletions(-) diff --git a/flask.Dockerfile b/flask.Dockerfile index 4cdfe2d..7650a39 100644 --- a/flask.Dockerfile +++ b/flask.Dockerfile @@ -1,4 +1,5 @@ -FROM git.aridgwayweb.com/armistace/beer_base_image AS flask +#FROM git.aridgwayweb.com/armistace/beer_base_image AS flask +FROM beer_base_image AS flask COPY requirements.txt . @@ -8,6 +9,6 @@ ENV FLASK_ENV production ENV FLASK_DEBUG 1 -ENTRYPOINT ["flask", "--app", "/pool_data/src/flask/beer_data", "run", "--host=0.0.0.0"] +ENTRYPOINT ["flask", "--app", "/beer_data/src/flask/beer_data", "run", "--host=0.0.0.0"] #ENTRYPOINT ["python", "/pool_data/src/flask/pool_data.py"] diff --git a/src/flask/add_user.py b/src/flask/add_user.py index 76fb24d..d03f7d2 100644 --- a/src/flask/add_user.py +++ b/src/flask/add_user.py @@ -20,7 +20,7 @@ def main(username, password): "password" : f"{password}" } if user_collection.user_exists(new_record["username"]): - user_collect.update_user(user_collection.existing_record["_id"], new_record["password"]) + user_collection.update_user(user_collection.existing_record["_id"], new_record["password"]) else: user_collection.add_user(new_record["username"], new_record["password"]) diff --git a/src/flask/beer_data.py b/src/flask/beer_data.py index 4664592..871c192 100644 --- a/src/flask/beer_data.py +++ b/src/flask/beer_data.py @@ -1,11 +1,11 @@ from bokeh.core.enums import SpatialUnitsType -import mongo.build_db as pool_database -import mongo.query_db as pool_database_query +import mongo.build_db as beer_database +import mongo.query_db as beer_database_query from flask import Flask, render_template, request, jsonify, redirect, session from flask_wtf import FlaskForm, CSRFProtect from flask_bootstrap import Bootstrap5 -from wtforms import StringField, SubmitField, DateField, IntegerField, PasswordField, DecimalField, RadioField, TextAreaField +from wtforms import StringField, SubmitField, DateField, IntegerField, PasswordField, DecimalField, RadioField, TextAreaField, BooleanField from wtforms.validators import DataRequired, Length, Optional from waitress import serve from bokeh.models.layouts import HBox @@ -26,7 +26,7 @@ output_file("/beer_data/src/flask/static/data_plot.html") def create_graphs(): chart = BeerCharts.BeerCharts() sg = chart.line_chart("SG", "sg", 30) - show(row(column(sg))) + show(column(sg)) class userForm(FlaskForm): @@ -39,6 +39,7 @@ class dataForm(FlaskForm): beer_run_type = TextAreaField("Beer Type") Date = DateField("Date:") sg = IntegerField("SG Reading") + final_run = BooleanField("Final Reading?") comment = TextAreaField("Any Comments?", validators=[Optional()]) submit = SubmitField("Write it, Write it REAAAAAAL GOOOD") @@ -48,7 +49,7 @@ def index(): if form.validate_on_submit(): username = form.username.data password = form.password.data - db = pool_database_query.pool_query() + db = beer_database_query.pool_query() if db.user_check(username, password): session['logged_in'] = True return redirect("/updater") @@ -62,17 +63,18 @@ def updater(): if 'logged_in' not in session: return redirect("/") create_graphs() - query_db = pool_database_query.pool_query() + query_db = beer_database_query.pool_query() query = query_db.get_top(10, "sg") form = dataForm() if form.validate_on_submit(): - database = pool_database.pool_data() + database = beer_database.beer_data() new_record = { "date": f'{form.Date.data}', "beer_run_id": f'{form.beer_run_id.data}', "beer_type": f'{form.beer_run_type.data}', "sg" : f'{form.sg.data}', + "final_reading" : F'{form.final_run.data}', "comment": f'{form.comment.data}' } if database.record_exists(new_record["date"], new_record["beer_run_id"]): @@ -82,34 +84,38 @@ def updater(): if database.existing_record[field] != new_record[field]: database.update_re_record(database.existing_record["_id"], field, new_record[field]) else: + if new_record["final_reading"] == "True": + final_run_value = True + else: + final_run_value = False database.create_re_record(new_record["beer_run_id"], new_record["beer_type"], new_record["sg"], - new_record["date"], new_record["comment"]) + new_record["date"], final_run_value, new_record["comment"]) - return render_template("updater.html", list=query, form=form, success=True, updater_name = new_record["test_user"]) + return render_template("updater.html", list=query, form=form, success=True, updater_name = "Saucy Beer Maker") else: return render_template("updater.html", list=query, form=form, sucess=False) -@app.route("/update_db", methods=["POST"]) -def pool_data_update(): - database = pool_database.pool_data() - new_record = request.json - if database.record_exists(new_record["date"], new_record["test_user"]): - for field in database.existing_record: - for new_field in new_record: - if field == new_field: - if database.existing_record[field] != new_record[field]: - database.update_re_record(database.existing_record["_id"], field, new_record[field]) - else: - database.create_re_record(new_record["beer_run_id"], new_record["beer_type"], new_record["sg"], - new_record["date"], new_record["comment"]) +# @app.route("/update_db", methods=["POST"]) +# def beer_data_update(): +# database = beer_database.beer_data() +# new_record = request.json +# if database.record_exists(new_record["date"], new_record["test_user"]): +# for field in database.existing_record: +# for new_field in new_record: +# if field == new_field: +# if database.existing_record[field] != new_record[field]: +# database.update_re_record(database.existing_record["_id"], field, new_record[field]) +# else: +# database.create_re_record(new_record["beer_run_id"], new_record["beer_type"], new_record["sg"], +# new_record["date"], new_record["comment"]) -@app.route("/pool_top//") -def user_detail(id): - query_db = pool_database_query.pool_query() - query = query_db.get_top(return_number, field) - return jsonify([row.to_json() for row in query]) +# @app.route("/pool_top//") +# def user_detail(id): +# query_db = beer_database_query.pool_query() +# query = query_db.get_top(return_number, field) +# return jsonify([row.to_json() for row in query]) if __name__ == '__main__': #app.run(host='0.0.0.0') diff --git a/src/flask/charts/BeerCharts.py b/src/flask/charts/BeerCharts.py index 451b927..3895067 100644 --- a/src/flask/charts/BeerCharts.py +++ b/src/flask/charts/BeerCharts.py @@ -11,7 +11,7 @@ class BeerCharts(): def line_chart(self, title, field, limit): - data = self.db.pool_db + data = self.db.beer_db data = data.find({}).sort("date", -1).limit(limit) dates = [] data_list = [] diff --git a/src/flask/mongo/build_db.py b/src/flask/mongo/build_db.py index 1e70c46..1b92353 100644 --- a/src/flask/mongo/build_db.py +++ b/src/flask/mongo/build_db.py @@ -15,14 +15,14 @@ class beer_data: #we can get self.db.real_db etc self.db = db_conn() - def record_exists(self, date, test_user): + def record_exists(self, date, beer_run_id): """ This function will accept an address if it find that address in the database it will return True and set set the existing_record variable of the class to the queried record """ - query = { "date" : f"{date}", "test_user": f"{test_user}"} + query = { "date" : f"{date}", "beer_run_id": f"{beer_run_id}"} record = self.db.beer_db.find_one(query) if record: self.existing_record = record @@ -31,7 +31,7 @@ class beer_data: return False - def create_re_record(self, beer_run_id, beer_type, sg, date, comment=""): + def create_re_record(self, beer_run_id, beer_type, sg, date, final_reading=False, comment=""): """ create_re_record creates a whole new record takes the required 7 inputs @@ -51,6 +51,7 @@ class beer_data: "beer_type": f"{beer_type}", "sg": f"{sg}", "date": f"{date}", + "final_reading": f"{final_reading}", "comment": f"{comment}" } diff --git a/src/flask/mongo/get_conn.py b/src/flask/mongo/get_conn.py index 20ad979..9f71b0d 100644 --- a/src/flask/mongo/get_conn.py +++ b/src/flask/mongo/get_conn.py @@ -8,7 +8,7 @@ class db_conn: self.db_host = os.getenv('MONGO_HOST') self.client = self.get_client() self.db = self.client['beer_db'] - self.pool_db = self.db['beer_data'] + self.beer_db = self.db['beer_data'] self.users = self.db['users'] self.inspections = self.db['inspections_db'] diff --git a/src/flask/templates/updater.html b/src/flask/templates/updater.html index 8c8c088..52e8f57 100644 --- a/src/flask/templates/updater.html +++ b/src/flask/templates/updater.html @@ -49,7 +49,8 @@
-