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 cargarComboUsuario(self,userID): lista = gtk.ListStore(int,str) # Combo de string. # Se usan para saber que elemento es el que se tiene que mostrar elemento = 0 mostrar = 0 # Se recorre la lista de usuarios para ir armando el combo, con el par ID - Nombre usuarios = users.obtenerTodos() if (usuarios != None): for u in usuarios: lista.append([u.getId(), u.getName()]) if (u.getId() == userID): mostrar = elemento elemento = elemento + 1 self.comboUsuario.set_model(lista) render = gtk.CellRendererText() # Objeto que dibuja la celda, en este caso el elemento del combo self.comboUsuario.pack_start(render, True) self.comboUsuario.add_attribute(render, 'text', 1) # De los 2 campos, elegimos el segundo self.comboUsuario.set_active(mostrar) # Lo posiciona en el primer item
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 cargarComboUsuario(self, userID): lista = gtk.ListStore(int, str) # Combo de string. # Se usan para saber que elemento es el que se tiene que mostrar elemento = 0 mostrar = 0 # Se recorre la lista de usuarios para ir armando el combo, con el par ID - Nombre usuarios = users.obtenerTodos() if (usuarios != None): for u in usuarios: lista.append([u.getId(), u.getName()]) if (u.getId() == userID): mostrar = elemento elemento = elemento + 1 self.comboUsuario.set_model(lista) render = gtk.CellRendererText( ) # Objeto que dibuja la celda, en este caso el elemento del combo self.comboUsuario.pack_start(render, True) self.comboUsuario.add_attribute( render, 'text', 1) # De los 2 campos, elegimos el segundo self.comboUsuario.set_active( mostrar) # Lo posiciona en el primer item
def cargarVistas(self, inicial): # Tipos de dato de cada columna. ListStore es el modelo del TreeView, en este caso, lista. Podria ser Tree. listaIzq = gtk.ListStore(int, str, str) # ID, usuario, nombre listaDer = gtk.ListStore(int, str, str) # ID, usuario, nombre render = gtk.CellRendererText( ) # Objeto que se encarga de dibujar cada celda # Columnas de la vista if inicial: columna0 = gtk.TreeViewColumn('ID', render, text=0) columna1 = gtk.TreeViewColumn('Usuario', render, text=1) columna2 = gtk.TreeViewColumn('Nombre', render, text=2) columna3 = gtk.TreeViewColumn('ID', render, text=0) columna4 = gtk.TreeViewColumn('Usuario', render, text=1) columna5 = gtk.TreeViewColumn('Nombre', render, text=2) # Lista donde cada elemento es un objeto usuario usuarios = users.obtenerTodos() if usuarios != None: for usuario in usuarios: # Busca el proyecto y el usuario, si existe la relación pasa a derecha, sino izquierda asignados = projects_users_assign.obtenerTodos( self.proyID, usuario.getId()) if (asignados == None): listaIzq.append([ usuario.getId(), usuario.getUsername(), usuario.getName() ]) else: listaDer.append([ usuario.getId(), usuario.getUsername(), usuario.getName() ]) # Arma la vista con las columas y lista de elementos self.vistaIzq.set_model(listaIzq) self.vistaDer.set_model(listaDer) if inicial: self.vistaIzq.append_column(columna0) self.vistaIzq.append_column(columna1) self.vistaIzq.append_column(columna2) self.vistaDer.append_column(columna3) self.vistaDer.append_column(columna4) self.vistaDer.append_column(columna5) # 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(0) columna4.set_sort_column_id(1) columna5.set_sort_column_id(2) #self.vista.set_reorderable(True) # Permite drag and drop entre los datos self.vistaIzq.show() self.vistaDer.show()