diff --git a/app/database.py b/app/database.py index fa754f2..d274dec 100644 --- a/app/database.py +++ b/app/database.py @@ -111,20 +111,42 @@ def get_products(): p.id = row[0] p.name = row[1] p.price = row[2] + p.isshown = row[3] products.append(p) return products def get_product_by_id(id): - row = query_db("SELECT * FROM PRODUCTS WHERE ID = ?", str(id), one=True) - print row + row = query_db("SELECT * FROM PRODUCTS WHERE ID = ?", [str(id)], one=True) +# print row p = Product() p.id = row[0] p.name = row[1] p.price = row[2] + p.isshown = row[3] return p +def get_product_by_name(name): + row = query_db("SELECT * FROM PRODUCTS WHERE NAME = ?", [str(name)], one=True) + p = Product() + p.id = row[0] + p.name = row[1] + p.price = row[2] + p.isshown = row[3] + return p + + +def update_product(p): + query_db("UPDATE products SET NAME=?, PRICE=?, ISSHOWN=? WHERE ID=?", (p.name, p.price, p.isshown, p.id)) + get_db().commit() + + +def add_product(p): + query_db("Insert INTO PRODUCTS (NAME, PRICE, ISSHOWN) VALUES (?, ?, ?)", (p.name, p.price, p.isshown)) + get_db().commit() + + def get_consumed(user=None, startdate=None, enddate=None): if user is None and startdate is None and enddate is None: diff --git a/app/product.py b/app/product.py index 98bc1aa..bab3364 100644 --- a/app/product.py +++ b/app/product.py @@ -3,4 +3,5 @@ class Product: def __init__(self): self.id = 0 self.name = "" - self.price = 0.0 \ No newline at end of file + self.price = 0.0 + self.isshown = False diff --git a/app/templates/manage_beverages.html b/app/templates/manage_beverages.html index d1f7db6..d3fedd1 100644 --- a/app/templates/manage_beverages.html +++ b/app/templates/manage_beverages.html @@ -7,8 +7,24 @@

Konsumatverwaltung

- {% for product in products %} -

{{ product.id }}, {{product.name}}, {{product.price}} €

- {% endfor %} - Getränk Hinzufügen -{% endblock %} + + + + + + + + + {% for product in products %} + + + + + + + + {% endfor %} +
IDNamePreisWird angezeigt
{{product.id}}{{product.name}}{{product.price}}{% if product.isshown %} ☑ {% else %} ☐ {% endif %} bearbeiten
+
+ Getränk Hinzufügen +{% endblock %} \ No newline at end of file diff --git a/app/templates/manage_beverages_add.html b/app/templates/manage_beverages_add.html new file mode 100644 index 0000000..591e844 --- /dev/null +++ b/app/templates/manage_beverages_add.html @@ -0,0 +1,18 @@ +{% extends "base.html"%} +{% set title = "Produkt hinzufügen" %} +{% block content %} +

Produkt hinzufügen

+ {% if error %} +

Fehler: {{ error }}

+ {% endif %} + {% if success %} +

{{ success }}

+ {% endif %} +

TODO: many

+
+ Produktname:
+ Preis:
+ Angezeigt:
+ +
+{% endblock %} \ No newline at end of file diff --git a/app/templates/manage_beverages_edit.html b/app/templates/manage_beverages_edit.html new file mode 100644 index 0000000..22cd882 --- /dev/null +++ b/app/templates/manage_beverages_edit.html @@ -0,0 +1,19 @@ +{% extends "base.html"%} +{% set title = "Konsumat bearbeiten" %} +{% block content %} +

{{product_to_edit.name}} bearbeiten

+ {% if error %} +

Fehler: {{ error }}

+ {% else %} + {% if success %} +

{{ success }}

+ {% endif %} +
+ Userid:
+ Username:
+ Preis:
+ Angezeigt:
+ +
+ {% endif %} +{% endblock %} \ No newline at end of file diff --git a/app/templates/manage_products_add.html b/app/templates/manage_products_add.html deleted file mode 100644 index 2207ff7..0000000 --- a/app/templates/manage_products_add.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends "base.html"%} -{% set title = "Produkt hinzufügen" %} -{% block content %} -

Produkt hinzufügen

- {% if error %} -

Fehler: {{ error }}

- {% endif %} - {% if success %} -

{{ success }}

- {% endif %} -

TODO: many

-
- Produktname:
- Preis:
-
-{% endblock %} \ No newline at end of file diff --git a/app/views.py b/app/views.py index cd298bf..ac22164 100644 --- a/app/views.py +++ b/app/views.py @@ -138,6 +138,65 @@ def manage_beverages(): products = get_products() return render_template('manage_beverages.html', products=products, user=get_user_by_name(session.get('name'))) + +@app.route('/manage_beverages/edit', methods=['POST']) +@app.route('/manage_beverages/edit/', methods=['GET']) +@requires_baron +def manage_beverages_edit(name=None): + if request.method == 'GET': + error = None + p = get_product_by_name(name); + + if p is None: + error = "Product existiert nicht" + + return render_template('manage_beverages_edit.html', product_to_edit=p, error=error, user=get_user_by_name(session.get('name'))) + + if request.method == 'POST': + p = Product() + #print request.form + p.id = request.form['id'] + p.name = request.form['name'] + p.price = float(request.form['price']) + + if 'isshown' in request.form: + p.isshown = True + else: + p.isshown = False + + update_product(p) + + # update_user(u) + + return redirect('/manage_beverages') + + +@app.route('/manage_beverages/add', methods=['POST', 'GET']) +@requires_baron +def manage_beverages_add(): + if request.method == 'POST': + p = Product() + error = None + print request + p.name = request.form['name'] + #if request.form['price'].isnumeric(): + p.price = float(request.form['price']) + #else: + # error = "Preis muss eine Nummer sein." + + if 'isshown' in request.form: + p.isshown = True + else: + p.isshown = False + + if error is None: + add_product(p) + return render_template('manage_beverages_add.html', success="Konsumat hinzugefuegt.", user=get_user_by_name(session.get('name'))) + + return render_template('manage_beverages_add.html', error=error, user=get_user_by_name(session.get('name'))) + return render_template('manage_beverages_add.html', user=get_user_by_name(session.get('name'))) + + @app.route('/consume') @requires_login def consume(): diff --git a/doc/database.txt b/doc/database.txt index 2a70ec0..b53b9e3 100644 --- a/doc/database.txt +++ b/doc/database.txt @@ -32,7 +32,8 @@ CREATE TABLE USERS( CREATE TABLE PRODUCTS( ID INTEGER PRIMARY KEY, NAME TEXT NOT NULL, - PRICE REAK NOT NULL + PRICE REAL NOT NULL, + ISSHOWN BOOLEAN DEFAULT 0 ); # The table CONSUMED contains all products that have been consumed, who it consumend, when it was consumed, and also if they have been payed allready, this is important because we do not want to have redunant data. diff --git a/run.py b/run.py index 9162559..03a4b08 100755 --- a/run.py +++ b/run.py @@ -7,10 +7,10 @@ import thread if __name__ == '__main__': #start gui - wx = wx.App() - gui.MainWindow(None) + #wx = wx.App() + #gui.MainWindow(None) - thread.start_new_thread(wx.MainLoop,()) + #thread.start_new_thread(wx.MainLoop,()) # start flask app.secret_key = urandom(24)