diff --git a/README.md b/README.md index b795efd..54f2dd0 100644 --- a/README.md +++ b/README.md @@ -58,12 +58,12 @@ python3 cli.py user add username password Add some products with: ``` -python3 cli.py product add "Birra media" 300 -python3 cli.py product add "Birra grande" 400 -python3 cli.py product add "Cocktail" 500 -python3 cli.py product add "Vino" 400 -python3 cli.py product add "Amaro" 200 -python3 cli.py product add "Acqua" 100 +python3 cli.py product add "Birra media" 3 +python3 cli.py product add "Birra grande" 4 +python3 cli.py product add "Cocktail" 5 +python3 cli.py product add "Vino" 4 +python3 cli.py product add "Amaro" 2 +python3 cli.py product add "Acqua" 0.5 ``` And finally add and event you can play with: diff --git a/cli.py b/cli.py index d7c6106..f7d9fb6 100755 --- a/cli.py +++ b/cli.py @@ -289,10 +289,11 @@ def tabulate_products(products): @product.command('add') @click.argument('name') -@click.argument('price') +@click.argument('price', type=float) @click.option('-s', '--sort', type=click.INT) @click.option('-c', '--category', type=click.INT) def product_add(name, price, sort, category): + price = int(price * 100) product = Product(name=name, price=price) if sort: diff --git a/static/js/sell.js b/static/js/sell.js new file mode 100644 index 0000000..be4cea7 --- /dev/null +++ b/static/js/sell.js @@ -0,0 +1,56 @@ +function updateTotal(amount) { + total_el = document.getElementById('total') + total = parseFloat(total_el.innerText) + total += amount + total_el.innerText = total.toFixed(2) +} + +function renderBasketItem(uid, name) { + return '' +} + +function addProduct(uid) { + // This is the hidden input element inside the form. We'll use this DOM + // element to keep informations about the product, such as the name, + // the price and the value inside the 'data-' tag. + form_el = document.getElementById('prod_' + uid) + basket = document.getElementById('basket') + basket_el = document.getElementById('basketitem_' + uid) + + form_el.value = parseInt(form_el.value) + 1 + + // If there is not a button for the given product inside the basket + // div we'll create it. + if (basket_el === null) { + basket.innerHTML += renderBasketItem(uid, form_el.dataset.name) + } else { + // Otherwise we'll just update it. + console.log(form_el.value) + new_text = form_el.value + ' x ' + form_el.dataset.name + basket_el.innerText = new_text + } + + updateTotal(parseFloat(form_el.dataset.price)) +} + +function delProduct(uid) { + form_el = document.getElementById('prod_' + uid) + basket = document.getElementById('basket') + basket_el = document.getElementById('basketitem_' + uid) + + form_el.value = parseInt(form_el.value) - 1 + + if (form_el.value == 0) { + basket.removeChild(basket_el) + } else { + new_text = form_el.value + ' x ' + form_el.dataset.name + basket_el.innerText = new_text + } + + updateTotal(parseFloat(-form_el.dataset.price)) +} + + diff --git a/templates/sell.html b/templates/sell.html index a87cf0f..8b8c66f 100644 --- a/templates/sell.html +++ b/templates/sell.html @@ -27,66 +27,10 @@ + {% endblock %}