Exemplo n.º 1
0
def todos_productos():
    if request.method == "GET":
        producto = Producto.query.all()
        # verificamos si hay parámetros en la url y filtramos la lista con eso si titulo no esta vacio producto_filtrado busca en producto.titulo si el requerimiento es igual a algun titulo ya creado para filtrarlo.
        titulo = request.args.get("titulo")
        if titulo is not None:
            producto_filtrado = filter(
                lambda producto: titulo.lower() in producto.titulo, producto)
        else:
            producto_filtrado = producto
        #   serializar los objetos de la lista - tendría una lista de diccionarios
        producto_lista = list(
            map(lambda producto: producto.serialize(), producto_filtrado))
        return jsonify(producto_lista), 200
    ###Validaciones de caracteres y que los campos no esten vacios###
    else:
        insumos_producto = request.json
        if insumos_producto is None:
            return jsonify(
                {"resultado": "no envio insumos para crear el producto"}), 400
        # verificar que el diccionario tenga titulo, descripcion, foto,etc
        if ("titulo" not in insumos_producto
                or "descripcion" not in insumos_producto
                or "foto" not in insumos_producto):
            return jsonify(
                {"resultado": "revise las propiedades de su solicitud"}), 400
        #validar que campos no vengan vacíos y que los string tenga sus respectivos caracteres
        if (insumos_producto["titulo"] == ""
                or insumos_producto["descripcion"] == ""
                or insumos_producto["foto"] == ""
                or len(str(insumos_producto["titulo"])) > 100
                or len(str(insumos_producto["descripcion"])) > 2000
                or len(str(insumos_producto["foto"])) > 200
                or int(insumos_producto["cantidad"]) < 0
                or float(insumos_producto["precio"]) < 0):
            return jsonify({"resultado":
                            "revise los valores de su solicitud"}), 400

        # METODO POST: crear una variable y asignarle el nuevo producto con los datos validados
        body = request.get_json()
        producto = Producto(titulo=body['titulo'],
                            foto=body['foto'],
                            descripcion=body['descripcion'],
                            precio=body['precio'],
                            cantidad=body['cantidad'])
        #   agregar a la sesión de base de datos (sqlalchemy) y hacer commit de la transacción
        db.session.add(producto)
        try:
            db.session.commit()
            # devolvemos el nuevo donante serializado y 201_CREATED
            return jsonify(producto.serialize()), 201
        except Exception as error:
            db.session.rollback()
            print(f"{error.args} {type(error)}")
            # devolvemos "mira, tuvimos este error..."
            return jsonify({"resultado": f"{error.args}"}), 500
Exemplo n.º 2
0
def agregarP(id):
    categoria = Categoria.query.get_or_404(id)
    producto = Producto()
    productoForm = ProductoForm(obj = producto)
    if request.method =='POST':
        if productoForm.validate_on_submit():
            productoForm.populate_obj(producto)
            db.session.add(producto)
            db.session.commit()
            return redirect(url_for('inicio'))
    return render_template('agregarP.html',productoForm=productoForm,categoria = categoria)
Exemplo n.º 3
0
def crearProducto():
    codigo=input('Código: ')
    nombre=input('Nombre: ')
    detalle=input('Detalle: ')
    precio=float(input('Precio: '))

    producto=Producto(codigo, nombre, detalle, precio)

    archivoProd=open(RUTA_ARCHIVO, 'a')
    archivoProd.write(str(producto)) #123;Lápiz;Mongol;0.25
    archivoProd.close()
Exemplo n.º 4
0
def new_producto():
	if request.method == 'POST':
		form = ProductoForm(request.form)
		if form.validate():
			producto = form.save_entry(Producto())
			db.session.add(producto)
			db.session.commit()
			return redirect(url_for('detail_producto', id=producto.id))
	else:
		form = ProductoForm()

	return render_template('producto/new.html', form=form)
Exemplo n.º 5
0
def validarCodigoProducto(codigo):
    #Si encuentra que devuelva la línea
    #Si no encuentra que devuelva un null (None)
    producto=None #Valor inicial
    archivoProd=open(RUTA_ARCHIVO, 'r')
    for linea in archivoProd.readlines():
        atributos=linea.split(';')
        if codigo==atributos[0]: #Si encuentra el código en el archivo
            producto=Producto(atributos[0], atributos[1], atributos[2], atributos[3])            
            break
    archivoProd.close()

    return producto
Exemplo n.º 6
0
def guardar(request):

    try:
        new = request.POST["nombre"]

    except (KeyError, "No se recibio el parametro nombre"):
        data = {"error_msj": "No se pudo guardar el registro"}

        return render(request, 'productos/nuevo.html', data)

    else:
        producto = Producto(nombre=new)
        producto.save()

    return HttpResponseRedirect(
        reverse('productos:detail', args=(producto.id, )))