def CargarTabla(grafo, tabla): fila = 0 tabla.setRowCount(grafo.tamanioGrafo()) arch = archivo.abrir(Constantes.DirVertices) #abro archivo vertices limpiar(tabla) lista = grafo.ListaVertices() for aux in lista: dato = archivo.leer(arch, lista[fila]) nombre = QtGui.QTableWidgetItem(str(aux) + ': ' + dato.nombre) nombre.setToolTip('Descripcion:<b>' + dato.descripcion + '</b>.') tabla.setVerticalHeaderItem(fila, nombre) dibujarRelaciones(fila, tabla, grafo, lista[fila]) fila += 1 archivo.cerrar(arch)
def registro(): """Aqui se realiza la registracion de nuevos usuarios, se valida si el usuario se encuentra registrado comparando los datos ingresados en la pagina con con los datos de usuarios registrados que contiene el archivo passws.csv, esta info es asignada a la variable user, luego de esta validacion se comparan que coincidan los campos que hacen refencia al nombre y contraseniaa del nuevo usuario, si esto es afirmativo, se procedera a grabar los datos en el arhivo passws.csv""" def limpiar(): #limpieza de los campos de la pagina form.passw1.data = " " form.usu1.data = " " form.passw.data = " " form.usu.data = " " user = archivo.leer("archivos_csv/passws.csv") form = MyRegistro() registrado = True if form.validate_on_submit(): for l in user: if l['usuario'] == form.usu.data.strip(): limpiar() # a traves de la vairable msj, en html se informa que usuario se encuentra registrado return render_template('registro.html', form=form, msj="reg") else: registrado = False if form.passw1.data.strip() == form.passw.data.strip(): if form.usu1.data.strip() == form.usu.data.strip(): if registrado == False: archivo.grabar("archivos_csv/passws.csv", form.passw.data.strip(), form.usu.data.strip()) limpiar() # a traves de la variable msj, en html se informa la registracion exitosa return render_template('registro.html', form=form, msj="ok") else: # a traves de la variable usu, en html se muestra mensaje indicando que no coinciden los usuarios ingresados return render_template('registro.html', form=form, msj="usu") else: # a traves de la variable msjn en html se muestra mensaje indicando que no coinciden las contrasenias ingresadas return render_template('registro.html', form=form, msj="pass") return render_template('registro.html', form=form)
def mejores_clientes(): """En esta pagina se generara y visualizara el listado de los clientes que realizaron la mayor cantidad de compras, para realizar esto se necesita: l- a cantidad de clientes que se quiere mostrar, el usuario ingresara este dato. 2- la informacion de las ventas se obtiene del archivo archivo.csv, el cual sera leido y asignados los datos en la variable listado. 3- la variable lista_busqueda en la cual se asigna el listado de clientes sin duplicados que contiene el archivo archivo.csv. Primero se genera una lista que contiene el nombre del cliente y cuanto gasto, y luego con ella se genera otra lista con la cantidad de items que pide el usuario, se la ordena para que los valores sean visualizados en forma descendente.""" if session.get("nombre"): form = MyConsulta() if form.validate_on_submit(): listado = archivo.leer("archivos_csv/archivo.csv") masgasto = [] consulta = [] lista_busqueda = archivo.lista_clientes("archivos_csv/archivo.csv") for listcli in lista_busqueda: gastoTotal = 0 for clientes in listado: if listcli == clientes['CLIENTE']: gasto = float(clientes['CANTIDAD']) * float( clientes['PRECIO']) gastoTotal = gastoTotal + gasto masgasto.append([listcli, gastoTotal]) cont = 1 masgasto.sort(key=lambda c: c[1], reverse=True) print(masgasto) for datos in masgasto: if cont <= form.cantidad.data: consulta.append(datos) cont = cont + 1 archivo.grabar_consulta_mjor_cliente(consulta) return render_template('mejores_clientes.html', form=form, fc=True, consulta=consulta, msg2="IMPORTE") return render_template('mejores_clientes.html', form=form) flash('Debe estar logueado para acceder') return redirect(url_for('login'))
def login(): user2 = archivo.leer("baseDeDatos/passws.csv") form2 = Login() if form2.validate_on_submit(): for l in user2: if l['usuario'] == form2.usu.data.strip(): if l['login'] == form2.passw.data.strip(): session["nombre"] = form2.usu.data.strip() if session["nombre"] == "admin": return redirect(url_for('ventas')) else: return redirect(url_for('usuario')) else: form2.passw.data = "" return render_template('login.html', form = form2, msj = "ok") form2.passw.data = "" form2.usu.data = "" return render_template("login.html", form=form2, msj="mal") return render_template("login.html", form = form2)
def mas_vendidos(): """En esta pagina se generara y visualizara el listado de los productos de mayor venta para realizar esto se necesita: l- a cantidad de productos que se quiere mostrar, el usuario ingresara este dato. 2- la informacion de las ventas se obtiene del archivo archivo.csv, el cual sera leido y asignados los datos en la variable listado. 3- la variable lista_busqueda en la cual se asigna el listado de productos sin duplicados que contiene el archivo archivo.csv. Primero se genera una lista que contiene el nombre del producto, cantidad vendida y codigo, y luego con ella se genera otra lista con la cantidad de items que pide el usuario, se la ordena para que los valores sean visualizados en forma descendente.""" if session.get("nombre"): form = MyConsulta() if form.validate_on_submit(): listado = archivo.leer("archivos_csv/archivo.csv") masvendio = [] consulta = [] lista_busqueda = archivo.lista_producto("archivos_csv/archivo.csv") for listcli in lista_busqueda: cant = 0 codigo = 0 for clientes in listado: if listcli == clientes['PRODUCTO']: cant = cant + float(clientes['CANTIDAD']) codigo = clientes['CODIGO'] masvendio.append([codigo, listcli, int(cant)]) cont = 1 masvendio.sort(key=lambda c: c[2], reverse=True) for datos in masvendio: if cont <= form.cantidad.data: consulta.append(datos) cont = cont + 1 archivo.grabar_consulta_mas_vendidos(consulta) return render_template('mas_vendidos.html', form=form, fc=True, consulta=consulta, msg2="CANTIDAD") return render_template('mas_vendidos.html', form=form) flash('Debe estar logueado para acceder') return redirect(url_for('login'))
def cambio_contrasenia(): """cambio de contraseña del usuario, se guarda en variable el diccionario, para poder asignarle el cambio de contraseña, y luego se guarda en archivo la modificacion realizada""" if session.get("nombre"): form = MyContrasenia() if form.validate_on_submit(): usuarios = archivo.leer("archivos_csv/passws.csv") if form.passw1.data.strip() == form.passw.data.strip(): for l in usuarios: if l['usuario'] == session["nombre"]: l['login'] = form.passw1.data.strip() archivo.grabar_lista("archivos_csv/passws.csv", usuarios) return render_template('cambio-contrasenia.html', form=form, msj="ok") else: return render_template('cambio-contrasenia.html', form=form, msj="mal") return render_template('cambio-contrasenia.html', form=form) flash('Debe estar logueado para acceder') return redirect(url_for('login'))
def login(): """Aqui se realiza el logueo del usuario, se valida si el usuario se encuentra registrado comparando los datos ingresados en la pagina con con los datos de usuarios registrados que contiene el archivo passws.csv, esta info es asignada a la variable user2. Si el usuario ingresado es admin, se redigira a la pagina ventas, sino a la pagina usuario""" user2 = archivo.leer("archivos_csv/passws.csv") form2 = MyLogin() if form2.validate_on_submit(): for l in user2: if l['usuario'] == form2.usu.data.strip(): if l['login'] == form2.passw.data.strip(): session["nombre"] = form2.usu.data.strip() return redirect(url_for('ventas')) else: form2.passw.data = "" # a traves de la variable msj, en html se informa que se verifique la contraseña return render_template('login.html', form=form2, msj="ok") form2.passw.data = "" form2.usu.data = "" ##a traves de la variable msj, en html se informa usuario no encontrado return render_template("login.html", form=form2, msj="mal") return render_template("login.html", form=form2)
def dibujarRelaciones(fila, tabla, grafo, nodo): listaArista = grafo.listaAristas(nodo) if tabla.columnCount() <= len(listaArista) * 2: tabla.setColumnCount(len(listaArista) * 2) cont = 0 arch = archivo.abrir(Constantes.DirAristas) for arista in listaArista: relaciones = archivo.leer(arch, arista[1]) #leo la pos de la arista t = QtGui.QTableWidgetItem(relaciones.nombre.upper()) t.setBackground(QtGui.QColor(59, 131, 189)) t.setToolTip('Descripcion:<b>' + relaciones.descripcion + '</b>. Duracion: ' + str(relaciones.duracion)) tabla.setItem(fila, cont, t) tabla.setHorizontalHeaderItem(cont, QtGui.QTableWidgetItem('TAREA')) cont += 1 t = QtGui.QTableWidgetItem('VERTICE: ' + str(arista[0])) tabla.setItem(fila, cont, t) tabla.setHorizontalHeaderItem(cont, QtGui.QTableWidgetItem('VERTICE')) cont += 1 archivo.cerrar(arch)
def mostrar(): if session.get("nombre"): if request.method == 'POST': lista = [] msg = "" msg2 = "" msg3 = "" listado = archivo.leer("baseDeDatos/archivo.csv") seleccion = request.form['selecc'] for l in listado: if seleccion == l['CLIENTE']: msg = "Listado de todos los productos que compro un Cliente" msg2 = seleccion msg3 = "cliente" lista.append(l) elif seleccion == l['PRODUCTO']: lista.append(l) msg = "Listado de clientes que comparon un producto" msg2 = seleccion msg3 = "producto" return render_template('mostrar.html', lista=lista, ff=True, msg=msg, msg2=msg2, msg3=msg3) return render_template('mostrar.html') flash('Debe estar logueado para acceder') return redirect(url_for('login'))
def ventas(): if session.get("nombre"): clientes = archivo.leer("baseDeDatos/archivo.csv") return render_template('ventas.html', clientes = clientes, usuario = session.get('nombre'), ff = True) flash('Debe estar logueado para acceder') return redirect(url_for('login'))
def user(): if session.get("nombre"): users = archivo.leer("baseDeDatos/passws.csv") return render_template('users.html', users = users) flash('Debe estar logueado para acceder') return redirect(url_for('login'))