Compare commits

..

No commits in common. "dc1057f2e4af80158134229a0e2e30e86ae0bdb6" and "9f147c9c98c0de80c808c92ffc896232f419ed7d" have entirely different histories.

2 changed files with 50 additions and 59 deletions

31
main.py
View file

@ -1,7 +1,8 @@
from flask import Flask, render_template, request, redirect, url_for, jsonify from flask import Flask, render_template, request, redirect, url_for
import sqlite3 import sqlite3
# create table orders (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, remark TEXT, created_at datetime default current_timestamp, status text default "besteld"); # create table orders (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, remark TEXT, created_at dat
#etime default current_timestamp, status text default "besteld");
# c = conn.cursor() # c = conn.cursor()
# Create table # Create table
@ -17,13 +18,9 @@ def execute_query(query):
conn = sqlite3.connect('user.db') conn = sqlite3.connect('user.db')
c = conn.cursor() c = conn.cursor()
print(f"{query=}")
results = []
# Insert a row of data # Insert a row of data
try: try:
c.execute(query) c.execute(query)
results = c.fetchall()
except: except:
print("An sql execute error occured") print("An sql execute error occured")
@ -33,24 +30,38 @@ def execute_query(query):
# We can also close the connection if we are done with it. # We can also close the connection if we are done with it.
# Just be sure any changes have been committed or they will be lost. # Just be sure any changes have been committed or they will be lost.
conn.close() conn.close()
return results
def fetch_orders():
conn = sqlite3.connect('user.db')
c = conn.cursor()
c.execute(
"select name, remark, status, id from orders order by created_at")
rows = c.fetchall()
return [{
"name": row[0],
"remark": row[1],
"status": row[2],
"id": row[3]
} for row in rows]
pancake_statuses = ["besteld", "aan_het_bakken", "klaar"] pancake_statuses = ["besteld", "aan_het_bakken", "klaar"]
@app.route("/") @app.route("/")
def home(): def home():
return render_template("home.html") return render_template("home.html", orders=fetch_orders())
@app.route("/execute", methods=["POST"]) @app.route("/execute", methods=["POST"])
def execute(): def execute():
content = request.json content = request.json
print("Query : ", content) print("Query : ", content)
response = execute_query(content["lecode"]) execute_query(content["lecode"])
return jsonify(response) return redirect("/")
if __name__ == "__main__": if __name__ == "__main__":

View file

@ -11,71 +11,51 @@
<h1>Welkom bij de pannenkoekenwachtrij</h1> <h1>Welkom bij de pannenkoekenwachtrij</h1>
<form id="addPersonForm"> <form id="addPersonForm">
<p>Naam van de volgende <input type="text" name="name" maxlength=30></p> <p>Naam van de volgende <input type="text" name="name"></p>
<p>Specifieke opmerkingen <input type="text" name="remark" maxlength=50></p> <p>Specifieke opmerkingen <input type="text" name="remark"></p>
<p><input type="submit" value="Persoon toevoegen" id="addPersonButton"></p> <p><input type="submit" value="Persoon toevoegen" id="addPersonButton"></p>
</form> </form>
<h2>Zie hieronder de lijst van personen die een pannenkoek willen</h2> <h2>Zie hieronder de lijst van personen die een pannenkoek willen</h2>
<table id="orderTable"> <table>
{% for order in orders %}
<tr>
<td><button onclick="start_bakken({{order.id}})">Aan het bakken</button></td>
<td><button onclick="klaar({{order.id}})">Klaar</button></td>
<td><button onclick="dissmiss({{order.id}})">Dismiss</button></td>
<th>{{ order.name + order.remark + ": " }}</th>
<td>{{ "Huidige status: " + order.status }}</td>
</tr>
{% endfor %}
</table> </table>
</header> </header>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script> <script>
$(document).ready(function() {
$("#addPersonButton").click(function(event) {
event.preventDefault();
var form = $("#addPersonForm").serializeArray();
var name = form[0]["value"];
var remark = form[1]["value"];
function executeQuery(query, callback) {
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: '/execute', url: '/execute',
contentType: "application/json", contentType: "application/json",
data: JSON.stringify({ data: JSON.stringify({
"lecode": query "lecode": `insert into orders (name, remark) values ("${name}", "${remark}")`
}), }),
success: callback, success: function(data) {
console.log("SUCCESS : ", data);
},
error: function(e) { error: function(e) {
console.log("ERROR : ", e); console.log("ERROR : ", e);
} }
}); });
}
function start_bakken(id) {
executeQuery(`UPDATE orders SET status = 'aan_het_bakken' where id=${id}`, function(ign) {
updateTable();
});
}
function klaar(id) {
executeQuery(`UPDATE orders SET status = 'klaar' where id=${id}`, function(ign) {
updateTable();
});
}
function dismiss(id) {
executeQuery(`UPDATE orders SET status = 'dismissed' where id=${id}`, function(ign) {
updateTable();
});
}
function updateTable() {
executeQuery(`SELECT id, name, remark, status from orders where status != 'dismissed'`, function(x) {
$('#orderTable').empty();
console.log(x);
for (row of x) {
console.log(row);
$('#orderTable').append(`<tr><td><button onclick="start_bakken(${row[0]})">Aan het bakken</button></td><td><button onclick="klaar(${row[0]})">Klaar</button></td><td><button onclick="dismiss(${row[0]})">Dismiss</button></td><th>${row[1] + " (" + row[2] + ")"}</th><td>${row[3]}</td></tr>`);
}
});
}
$(document).ready(function() {
updateTable();
$("#addPersonButton").click(function(event) {
event.preventDefault();
var form = $("#addPersonForm").serializeArray();
var name = form[0]["value"];
var remark = form[1]["value"];
executeQuery(`INSERT INTO orders (name, remark) VALUES ('${name}', '${remark}')`, function(ign) {
updateTable();
});
}); });
}) })
</script> </script>