def on_botonOK_clicked(self, widget): ctrlOK = True # Los datos no pueden estar vacíos if (self.textoUsuario.get_text() == '') or (self.textoNombre.get_text() == '') or (self.textoMail.get_text() == ''): mostrar = mensajes.error(self.winEdit, mensajes.DATOS_NO) ctrlOK = False else: # Se recuperan todos los datos, para ver si el usuario ya existe usuarios = users.obtenerTodos() if (usuarios != None): for u in usuarios: if (u.getUsername() == self.textoUsuario.get_text()) and (u.getId() != self.identificador): mostrar = mensajes.error(self.winEdit, mensajes.USER_EXISTE) ctrlOK = False if (ctrlOK == True): # Los controles están OK, se crea o modifica el registro usuario = users.User() usuario.setUsername(self.textoUsuario.get_text()) usuario.setName(self.textoNombre.get_text()) usuario.setEmail(self.textoMail.get_text()) # Los datos de ID y clave son los que se mantienen en variables usuario.setId(self.identificador) usuario.setPassword(self.clave) if (self.identificador == 0): # Es un registro nuevo if users.crear(usuario): mostrar = mensajes.aviso(self.winEdit, mensajes.OPER_OK) else: mostrar = mensajes.error(self.winEdit, mensajes.OPER_NO) else: if users.actualizar(usuario): mostrar = mensajes.aviso(self.winEdit, mensajes.OPER_OK) else: mensajes.error(self.winEdit, mensajes.OPER_NO) self.winEdit.destroy() self.cargarVista(False) # Se llena la vista con los registros (False indica que no es la carga inicial)
def cargarVista(self, inicial): # Tipos de dato de cada columna. ListStore es el modelo del TreeView, en este caso, lista. Podria ser Tree. lista = gtk.ListStore(int, str, str, str, str) # ID, usuario, nombre, mail, clave render = gtk.CellRendererText( ) # Objeto que se encarga de dibujar cada celda #renderEdit = gtk.CellRendererText() # Objeto que se encarga de dibujar cada celda #renderEdit.set_property('editable', True) # Columnas de la vista columna0 = gtk.TreeViewColumn('ID', render, text=0) columna1 = gtk.TreeViewColumn('Usuario', render, text=1) columna2 = gtk.TreeViewColumn('Nombre', render, text=2) columna3 = gtk.TreeViewColumn('e-Mail', render, text=3) columna4 = gtk.TreeViewColumn('Clave', render, text=4) columna4.set_visible(False) # Para que no se vea por ventana # Lista donde cada elemento es un objeto usuario usuarios = users.obtenerTodos() if usuarios != None: for usuario in usuarios: lista.append([ usuario.getId(), usuario.getUsername(), usuario.getName(), usuario.getEmail(), usuario.getPassword() ]) # Arma la vista con las columas y lista de elementos self.vista.set_model(lista) if inicial: self.vista.append_column(columna0) self.vista.append_column(columna1) self.vista.append_column(columna2) self.vista.append_column(columna3) self.vista.append_column(columna4) # Permite ordenar por columnas columna0.set_sort_column_id(0) columna1.set_sort_column_id(1) columna2.set_sort_column_id(2) columna3.set_sort_column_id(3) #self.vista.set_reorderable(True) # Permite drag and drop entre los datos self.on_comboBuscar_changed( self.comboBuscar ) # Esto es para asignar la columna por la que se puede buscar self.vista.show()
def on_botonOK_clicked(self, widget): ctrlOK = True # Los datos no pueden estar vacíos if (self.textoUsuario.get_text() == '') or (self.textoNombre.get_text() == '') or (self.textoMail.get_text() == ''): mostrar = mensajes.error(self.winEdit, mensajes.DATOS_NO) ctrlOK = False else: # Se recuperan todos los datos, para ver si el usuario ya existe usuarios = users.obtenerTodos() if (usuarios != None): for u in usuarios: if (u.getUsername() == self.textoUsuario.get_text()) and ( u.getId() != self.identificador): mostrar = mensajes.error(self.winEdit, mensajes.USER_EXISTE) ctrlOK = False if (ctrlOK == True): # Los controles están OK, se crea o modifica el registro usuario = users.User() usuario.setUsername(self.textoUsuario.get_text()) usuario.setName(self.textoNombre.get_text()) usuario.setEmail(self.textoMail.get_text()) # Los datos de ID y clave son los que se mantienen en variables usuario.setId(self.identificador) usuario.setPassword(self.clave) if (self.identificador == 0): # Es un registro nuevo if users.crear(usuario): mostrar = mensajes.aviso(self.winEdit, mensajes.OPER_OK) else: mostrar = mensajes.error(self.winEdit, mensajes.OPER_NO) else: if users.actualizar(usuario): mostrar = mensajes.aviso(self.winEdit, mensajes.OPER_OK) else: mensajes.error(self.winEdit, mensajes.OPER_NO) self.winEdit.destroy() self.cargarVista( False ) # Se llena la vista con los registros (False indica que no es la carga inicial)
def cargarVista(self, inicial): # Tipos de dato de cada columna. ListStore es el modelo del TreeView, en este caso, lista. Podria ser Tree. lista = gtk.ListStore(int,str,str,str,str) # ID, usuario, nombre, mail, clave render = gtk.CellRendererText() # Objeto que se encarga de dibujar cada celda #renderEdit = gtk.CellRendererText() # Objeto que se encarga de dibujar cada celda #renderEdit.set_property('editable', True) # Columnas de la vista columna0 = gtk.TreeViewColumn('ID', render, text=0) columna1 = gtk.TreeViewColumn('Usuario', render, text=1) columna2 = gtk.TreeViewColumn('Nombre', render, text=2) columna3 = gtk.TreeViewColumn('e-Mail', render, text=3) columna4 = gtk.TreeViewColumn('Clave', render, text=4) columna4.set_visible(False) # Para que no se vea por ventana # Lista donde cada elemento es un objeto usuario usuarios = users.obtenerTodos() if usuarios != None: for usuario in usuarios: lista.append([usuario.getId(), usuario.getUsername(), usuario.getName(), usuario.getEmail(), usuario.getPassword()]) # Arma la vista con las columas y lista de elementos self.vista.set_model(lista) if inicial: self.vista.append_column(columna0) self.vista.append_column(columna1) self.vista.append_column(columna2) self.vista.append_column(columna3) self.vista.append_column(columna4) # Permite ordenar por columnas columna0.set_sort_column_id(0) columna1.set_sort_column_id(1) columna2.set_sort_column_id(2) columna3.set_sort_column_id(3) #self.vista.set_reorderable(True) # Permite drag and drop entre los datos self.on_comboBuscar_changed(self.comboBuscar) # Esto es para asignar la columna por la que se puede buscar self.vista.show()