Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
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)