def dashboard(): """ Codigo que maneja el dashboard de la aplicacion. """ createDB() products = queryDB("SELECT id, name FROM products;") kwargs = {} kwargs["title"] = PAGE_DASHBOARD[1] kwargs["serverAddr"] = CONFIG["NC_ADDRESS"] kwargs["serverPort"] = CONFIG["SERVER_PORT"] kwargs["products"] = products kwargs["selected_product"] = CONFIG["CURRENT_PRODUCT"] if request.method == "POST": currentProduct = int(request.form["currentProduct"]) min_weight, max_weight = queryDB( "SELECT min_weight, max_weight FROM products WHERE id = ?", (currentProduct,), one=True ) if app.mutex.acquire(False): CONFIG["CURRENT_PRODUCT"] = currentProduct utils.writeConfig(CONFIG, APP_CONFIG_PATH) kwargs["selected_product"] = currentProduct print(currentProduct) arduino.setWeights(min_weight, max_weight) flash("Se cambio el producto actual!") app.mutex.release() else: flash(u"Dispositivo ocupado, alguien más intenta actualizarlo!") destroyDB() return render_template("dashboard.html", **kwargs)
def dashboard(): ''' Codigo que maneja el dashboard de la aplicacion. ''' createDB() products = queryDB('SELECT id, name FROM products;') kwargs = {} kwargs['title'] = PAGE_DASHBOARD[1] kwargs['serverAddr'] = CONFIG['NC_ADDRESS'] kwargs['serverPort'] = CONFIG['SERVER_PORT'] kwargs['products'] = products kwargs['selected_product'] = CONFIG['CURRENT_PRODUCT'] if request.method == 'POST': currentProduct = int(request.form['currentProduct']) min_weight, max_weight = queryDB( 'SELECT min_weight, max_weight FROM products WHERE id = ?', (currentProduct, ), one=True) if app.mutex.acquire(False): CONFIG['CURRENT_PRODUCT'] = currentProduct utils.writeConfig(CONFIG, APP_CONFIG_PATH) kwargs['selected_product'] = currentProduct print(currentProduct) arduino.setWeights(min_weight, max_weight) flash('Se cambio el producto actual!') app.mutex.release() else: flash(u'Dispositivo ocupado, alguien más intenta actualizarlo!') destroyDB() return render_template('dashboard.html', **kwargs)
def products(page): """ Codigo que maneja el listado de productos de la aplicacion. """ createDB() count = queryDB("SELECT count(*) from products;", one=True)[0] kwargs = {} minID = (page - 1) * CONFIG["PRODUCTS_PER_PAGE"] + 1 maxID = page * CONFIG["PRODUCTS_PER_PAGE"] kwargs["products"] = queryDB("SELECT id, name FROM products WHERE id >= ? and id <= ?", (str(minID), str(maxID))) destroyDB() if not kwargs["products"] and page != 1: abort(404) kwargs["page"] = page kwargs["pagination"] = Pagination(page, CONFIG["PRODUCTS_PER_PAGE"], count) kwargs["title"] = PAGE_PRODUCTS[1] return render_template("products.html", **kwargs)
def products(page): ''' Codigo que maneja el listado de productos de la aplicacion. ''' createDB() count = queryDB('SELECT count(*) from products;', one=True)[0] kwargs = {} minID = (page - 1) * CONFIG['PRODUCTS_PER_PAGE'] + 1 maxID = page * CONFIG['PRODUCTS_PER_PAGE'] kwargs['products'] = queryDB( 'SELECT id, name FROM products WHERE id >= ? and id <= ?', (str(minID), str(maxID))) destroyDB() if not kwargs['products'] and page != 1: abort(404) kwargs['page'] = page kwargs['pagination'] = Pagination(page, CONFIG['PRODUCTS_PER_PAGE'], count) kwargs['title'] = PAGE_PRODUCTS[1] return render_template('products.html', **kwargs)
def product(id=None): """ Codigo que maneja un producto. """ createDB() kwargs = {} kwargs["product"] = (None, "", "", "") kwargs["measurements"] = [] kwargs["title"] = "Crear producto" kwargs["mode"] = "insert" kwargs["serverAddr"] = CONFIG["NC_ADDRESS"] kwargs["serverPort"] = CONFIG["SERVER_PORT"] if id is not None: kwargs["mode"] = "update" if request.method == "GET": product = queryDB("SELECT * FROM products WHERE id = ?;", (id,)) if product: kwargs["product"] = product[0] measurements = queryDB("SELECT * FROM measurements WHERE product_id = ? LIMIT 25;", (id,)) kwargs["measurements"] = measurements kwargs["title"] = product[0][1] else: abort(404) else: # Leemos el formulario y actualizamos. name = request.form["name"] minWeight = request.form["minWeight"] maxWeight = request.form["maxWeight"] if isFloat(minWeight) and isFloat(maxWeight) and float(minWeight) < float(maxWeight) and len(name) > 0: alterDB( "UPDATE products SET name = ?, min_weight = ?, max_weight = ? WHERE id = ?;", (name, minWeight, maxWeight, id), ) flash("Producto actualizado!") else: flash("Datos invalidos!") kwargs["product"] = (id, name, minWeight, maxWeight) kwargs["title"] = name kwargs["mode"] = "update" measurements = queryDB("SELECT * FROM measurements WHERE product_id = ? LIMIT 25;", (id,)) kwargs["measurements"] = measurements else: if request.method == "POST": # Creamos el producto. name = request.form["name"] minWeight = request.form["minWeight"] maxWeight = request.form["maxWeight"] if isFloat(minWeight) and isFloat(maxWeight) and float(minWeight) < float(maxWeight) and len(name) > 0: id = alterDB( "INSERT INTO products(name, min_weight, max_weight) VALUES (?,?,?);", (name, minWeight, maxWeight) ) flash("Producto creado!") return redirect(url_for("products")) else: flash("Datos invalidos!") kwargs["product"] = (None, name, minWeight, maxWeight) destroyDB() return render_template("product.html", **kwargs)
def product(id=None): ''' Codigo que maneja un producto. ''' createDB() kwargs = {} kwargs['product'] = (None, '', '', '') kwargs['measurements'] = [] kwargs['title'] = 'Crear producto' kwargs['mode'] = 'insert' kwargs['serverAddr'] = CONFIG['NC_ADDRESS'] kwargs['serverPort'] = CONFIG['SERVER_PORT'] if (id is not None): kwargs['mode'] = 'update' if request.method == 'GET': product = queryDB('SELECT * FROM products WHERE id = ?;', (id, )) if product: kwargs['product'] = product[0] measurements = queryDB( 'SELECT * FROM measurements WHERE product_id = ? LIMIT 25;', (id, )) kwargs['measurements'] = measurements kwargs['title'] = product[0][1] else: abort(404) else: # Leemos el formulario y actualizamos. name = request.form['name'] minWeight = request.form['minWeight'] maxWeight = request.form['maxWeight'] if isFloat(minWeight) and isFloat(maxWeight) and float( minWeight) < float(maxWeight) and len(name) > 0: alterDB( 'UPDATE products SET name = ?, min_weight = ?, max_weight = ? WHERE id = ?;', (name, minWeight, maxWeight, id)) flash('Producto actualizado!') else: flash('Datos invalidos!') kwargs['product'] = (id, name, minWeight, maxWeight) kwargs['title'] = name kwargs['mode'] = 'update' measurements = queryDB( 'SELECT * FROM measurements WHERE product_id = ? LIMIT 25;', (id, )) kwargs['measurements'] = measurements else: if request.method == 'POST': # Creamos el producto. name = request.form['name'] minWeight = request.form['minWeight'] maxWeight = request.form['maxWeight'] if isFloat(minWeight) and isFloat(maxWeight) and float( minWeight) < float(maxWeight) and len(name) > 0: id = alterDB( 'INSERT INTO products(name, min_weight, max_weight) VALUES (?,?,?);', (name, minWeight, maxWeight)) flash('Producto creado!') return redirect(url_for('products')) else: flash('Datos invalidos!') kwargs['product'] = (None, name, minWeight, maxWeight) destroyDB() return render_template('product.html', **kwargs)