better handling of updating units and quantities

This commit is contained in:
2026-01-03 15:44:42 +01:00
parent 15de0758b4
commit 9013d48883
3 changed files with 85 additions and 64 deletions
+32 -11
View File
@@ -30,13 +30,7 @@ def item_update(itemid, itemchecked):
db.session.commit()
return '', 204
# user adds items to list
@items_bp.route("/items_append/<listid>", methods=["GET", "POST"])
@login_required
def items_append(listid):
if request.method == "POST":
# a new item has been added
newlabel = request.form["newItem"]
def interpret_and_add_item(listid, newlabel):
# could be
# appeltjes
# appel goudr
@@ -90,16 +84,43 @@ def items_append(listid):
newlabel = ' '.join(words[2:])
if unit == '':
unit = 'x'
if quantity == '':
quantity = 1
newlabel=newlabel.title()
newitem=Item(listofitems_id=listid, label=newlabel)
# check if the item exists already
item = Item.query.filter_by(listofitems_id=listid, label=newlabel, unit=unit).first()
if item:
print(item.unit)
print(unit)
if item.is_checked:
item.quantity += int(quantity)
if item.is_suggestion:
item.quantity = quantity
item.is_suggestion = False
item.is_checked = False
else:
# create a new one
item=Item(listofitems_id=listid, label=newlabel)
if unit:
newitem.unit = unit
item.unit = unit
if quantity:
newitem.quantity = int(quantity)
db.session.add(newitem)
item.quantity = int(quantity)
db.session.add(item)
db.session.commit()
return item
# user adds items to list
@items_bp.route("/items_append/<listid>", methods=["GET", "POST"])
@login_required
def items_append(listid):
if request.method == "POST":
# a new item has been added
newlabel = request.form["newItem"]
interpret_and_add_item(listid, newlabel)
# read icons
icon_names = []
icon_list = os.listdir(ICONPATH)
+1 -1
View File
@@ -62,7 +62,7 @@ $(document).ready(function(){
<a class="btn btn-{% if item.is_suggestion %}primary{% else %}info{% endif %} btn-sm" name="{{ item.id }}" onclick='handleAddOne(this);'>&nbsp;+&nbsp;</a>
{{ item.label }}</td>
<td style="text-align: right">
{% if item.quantity %}
{% if item.quantity > 1 or item.unit != 'x' %}
<a class="btn btn-outline-primary btn-sm" name="{{ item.id }}" onclick='handleAddWithQuantity(this, {{ item.quantity }} );'>{{ item.quantity }}{{ item.unit }}</a>
&nbsp;&nbsp;&nbsp;
{% endif %}
+1 -1
View File
@@ -49,7 +49,7 @@
{{ item.label }}
</div>
<div>
{% if item.quantity > 1 %}
{% if item.quantity > 1 or item.unit != 'x' %}
{{ item.quantity }}{{ item.unit }}
{% endif %}
<img src="/static/categories/{{ item.category }}.svg" style="height: 2em;" alt="...">