fix up to get running and some feature add
All checks were successful
Build and Push Image / Build and push image (push) Has been skipped

This commit is contained in:
Andrew Ridgway 2024-09-11 05:45:21 +00:00
parent 592de4793b
commit 56ff1a7247
7 changed files with 45 additions and 36 deletions

View File

@ -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"]

View File

@ -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"])

View File

@ -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/<int:return_number>/<string:field>")
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/<int:return_number>/<string:field>")
# 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')

View File

@ -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 = []

View File

@ -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}"
}

View File

@ -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']

View File

@ -49,7 +49,8 @@
<td>
<div class="container">
<div class= "col-xs-12 col-sm-12 col-md-12">
<iframe style="width: 100vw;height: 80vh;position: relative;" src="static/data_plot.html" frameborder="0" allowfullscreen>
<iframe style="width: 100vw; height: 40vh;" src="static/data_plot.html" frameborder="0" allowfullscreen>
<!--<iframe style="width: 100vw;height: 80vh;position: relative;" src="static/data_plot.html" frameborder="0" allowfullscreen>-->
</iframe>
</div>
</div>