diff --git a/.gitignore b/.gitignore
index e6a15fa..58d0c1e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
.idea/
*.pyc
venv/
+*.pickle
+*.db
\ No newline at end of file
diff --git a/.tool-versions b/.tool-versions
new file mode 100644
index 0000000..7e78d9a
--- /dev/null
+++ b/.tool-versions
@@ -0,0 +1 @@
+python 3.10.4
diff --git a/main.py b/main.py
index f20f432..c9f4414 100644
--- a/main.py
+++ b/main.py
@@ -1,31 +1,45 @@
+import pickle
+from datetime import datetime
+
+import humanize
from flask import Flask, render_template, request, redirect, url_for
+from os.path import exists
app = Flask(__name__)
class Person:
- statusses = ["Pannenkoek besteld", "Pannenkoek aan het bakken", "Pannenkoek klaar", "Pannenkoek afgegeven"]
+ statusses = [
+ "Pannenkoek besteld",
+ "Pannenkoek aan het bakken",
+ "Pannenkoek klaar",
+ "Pannenkoek afgegeven",
+ ]
- def __init__(self, name, remark=""):
+ def __init__(self, name, remark="", order_time=None):
self.name = name
self.remark = remark.strip()
self.status = 0
+ self.order_time = order_time
- def getRemark(self):
+ def get_remark(self):
return "({})".format(self.remark) if self.remark else self.remark
- def getName(self):
+ def get_name(self):
return self.name
def __eq__(self, other):
return self.name.lower() == other.name.lower()
- def getStatus(self):
+ def get_status(self):
return self.statusses[self.status]
- def nextStatus(self):
+ def next_status(self):
return self.statusses[self.status + 1]
+ def order_time_humanized(self):
+ return humanize.naturaltime(self.order_time)
+
def __str__(self):
return "Persoon: {} met status: {}".format(self.name, self.status)
@@ -33,16 +47,28 @@ class Person:
return str(self)
+people_filename = "people.pickle"
people = []
+if exists(people_filename):
+ people_file = open(people_filename, "rb")
+ people = pickle.load(people_file)
+ people_file.close()
+
+
+def save_people():
+ people_file = open(people_filename, "wb")
+ pickle.dump(people, people_file)
+ people_file.close()
+
@app.route("/")
def home():
return render_template("home.html", people=people)
-@app.route("/statusUpdate", methods=["POST", "GET"])
-def statusUpdate():
+@app.route("/status_update", methods=["POST", "GET"])
+def status_update():
if people and request.method == "POST":
result = request.form
if "index" in result:
@@ -56,17 +82,21 @@ def statusUpdate():
people[index].status += 1
if people[index].status == 3:
people.remove(people[index])
+ save_people()
return redirect("/")
-@app.route("/addPerson", methods=["POST", "GET"])
-def addPerson():
+@app.route("/add_person", methods=["POST", "GET"])
+def add_person():
if request.method == "POST":
result = request.form
- if "name" in result:
- newPerson = Person(result["name"], result["remark"])
- if newPerson not in people:
- people.append(newPerson)
+ if result["name"]:
+ new_person = Person(
+ result["name"], result["remark"], order_time=datetime.now()
+ )
+ if new_person not in people:
+ people.append(new_person)
+ save_people()
return redirect("/")
diff --git a/templates/home.html b/templates/home.html
index 2c73561..0048f87 100644
--- a/templates/home.html
+++ b/templates/home.html
@@ -1,53 +1,82 @@
-
+
+
+
+
+ Pannenkoekenwachtrij
-
- Pannenkoekenwachtrij
-
+
Welkom bij de pannenkoekenwachtrij
+
Zie hieronder de lijst van personen die een pannenkoek willen
- Volgende Persoon:
- {% if people %}
-
- {{ people[0].getName() + people[0].getRemark() + ": " }} |
- {{ "Huidige status: " + people[0].getStatus() }} |
-
- {% endif %}
- Andere Personen:
- {% for person in people[1:] %}
+
+
+ Name |
+ Huidige status |
+ Bestel tijd |
+ |
+
+
+
+
+ Volgende persoon |
+
+ {% for person in people[:1] %}
+ {{ person.get_name() + person.get_remark() }} |
+ {{ person.get_status() }} |
+ {{ person.order_time_humanized() if person.order_time else "Unknown" }} |
-
|
- {{ person.getName() + person.getRemark() + ": " }} |
- {{ "Huidige status: " + person.getStatus() }} |
{% endfor %}
+
+ Andere personen |
+
+ {% for person in people[1:] %}
+
+ {{ person.get_name() + person.get_remark() }} |
+ {{ person.get_status() }} |
+ {{ person.order_time_humanized() if person.order_time else "Unknown" }} |
+
+
+ |
+
+ {% endfor %}
+
-
+