Merge branch 'master' of https://github.com/bernis/baroness
Conflicts: app/database.pyc app/product.pyc app/views.pyc test/database.db
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -3,4 +3,5 @@ class Product:
|
||||
def __init__(self):
|
||||
self.id = 0
|
||||
self.name = ""
|
||||
self.price = 0.0
|
||||
self.price = 0.0
|
||||
self.isshown = False
|
||||
|
||||
@@ -7,8 +7,24 @@
|
||||
</ul>
|
||||
<h1> Konsumatverwaltung </h1>
|
||||
|
||||
{% for product in products %}
|
||||
<div><p> {{ product.id }}, {{product.name}}, {{product.price}} €</p></div>
|
||||
{% endfor %}
|
||||
<a href=/manage_beverages/add>Getränk Hinzufügen</a></li>
|
||||
{% endblock %}
|
||||
<table>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Preis</th>
|
||||
<th>Wird angezeigt</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
{% for product in products %}
|
||||
<tr>
|
||||
<td>{{product.id}}</td>
|
||||
<td>{{product.name}}</td>
|
||||
<td>{{product.price}}</td>
|
||||
<td>{% if product.isshown %} ☑ {% else %} ☐ {% endif %} </td>
|
||||
<td> <a href="/manage_beverages/edit/{{product.name}}">bearbeiten</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<br />
|
||||
<a href=/manage_beverages/add>Getränk Hinzufügen</a></li>
|
||||
{% endblock %}
|
||||
18
app/templates/manage_beverages_add.html
Normal file
18
app/templates/manage_beverages_add.html
Normal file
@@ -0,0 +1,18 @@
|
||||
{% extends "base.html"%}
|
||||
{% set title = "Produkt hinzufügen" %}
|
||||
{% block content %}
|
||||
<h1> Produkt hinzufügen</h1>
|
||||
{% if error %}
|
||||
<p>Fehler: {{ error }}</p>
|
||||
{% endif %}
|
||||
{% if success %}
|
||||
<p>{{ success }}</p>
|
||||
{% endif %}
|
||||
<p> TODO: many </p>
|
||||
<form name="user" method="post" action="/manage_beverages/add">
|
||||
Produktname:<input type="text" name="name" required><br>
|
||||
Preis:<input type="number" name="price" step="any" required value="0.0" /> € <br>
|
||||
Angezeigt: <input type="checkbox" name="isshown" checked /><br>
|
||||
<input type="submit" value="Hinzufügen">
|
||||
</form>
|
||||
{% endblock %}
|
||||
19
app/templates/manage_beverages_edit.html
Normal file
19
app/templates/manage_beverages_edit.html
Normal file
@@ -0,0 +1,19 @@
|
||||
{% extends "base.html"%}
|
||||
{% set title = "Konsumat bearbeiten" %}
|
||||
{% block content %}
|
||||
<h1> {{product_to_edit.name}} bearbeiten</h1>
|
||||
{% if error %}
|
||||
<p>Fehler: {{ error }}</p>
|
||||
{% else %}
|
||||
{% if success %}
|
||||
<p>{{ success }}</p>
|
||||
{% endif %}
|
||||
<form name="product" method="post" action="/manage_beverages/edit">
|
||||
Userid: <input type="text" name="id" required value="{{product_to_edit.id}}" readonly="readonly" /> <br>
|
||||
Username:<input type="text" name="name" required value="{{product_to_edit.name}}" /> <br>
|
||||
Preis:<input type="number" name="price" step="any" required value="{{product_to_edit.price}}" /> € <br>
|
||||
Angezeigt: <input type="checkbox" name="isshown" {% if product_to_edit.isshown %} checked {% endif %} /><br>
|
||||
<input type="submit" value="Übernehmen" />
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,16 +0,0 @@
|
||||
{% extends "base.html"%}
|
||||
{% set title = "Produkt hinzufügen" %}
|
||||
{% block content %}
|
||||
<h1> Produkt hinzufügen</h1>
|
||||
{% if error %}
|
||||
<p>Fehler: {{ error }}</p>
|
||||
{% endif %}
|
||||
{% if success %}
|
||||
<p>{{ success }}</p>
|
||||
{% endif %}
|
||||
<p> TODO: many </p>
|
||||
<form name="user" method="post" action="/manage_users/add">
|
||||
Produktname:<input type="text" name=username required placeholder="Username"><br>
|
||||
Preis:<input type="password" name=password1 required placeholder="Password"><br>
|
||||
</form>
|
||||
{% endblock %}
|
||||
59
app/views.py
59
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/<name>', 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():
|
||||
|
||||
Reference in New Issue
Block a user