def on_botonModificar_clicked(self, widget): (model,iter) = self.vista.get_selection().get_selected() if iter != None: self.cargarEdit() # Ventana de edición de los datos fila = list(model[iter]) # Se busca el proyecto para recuperar sus datos (en la tabla no están todos) idProyecto = fila[0] proyecto = projects.buscar(idProyecto) usrID = proyecto.getCreated_user_id() # Para controlar si puede modificar # Solo se puede modificar el proyecto del propio usuario if (usrID != globalDef.glb_usuario): mostrar = mensajes.error(self.winMain, mensajes.USER_ACT) else: # Se asocian a los campos de edición los valores seleccionados self.identificador = proyecto.getId() # El ID no es dato modificable, se mantiene su valor self.cargarComboUsuario(proyecto.getCreated_user_id()) self.textoNombre.set_text(proyecto.getName()) self.textoDescBuffer.set_text(proyecto.getDescription()) # Se toma la fecha en SQL y se pasa el dato a Tuple (el tipo de dato que maneja calendario) fechaTupla = calendario.toTuple(proyecto.getCreated()) self.calendario.setFecha(fechaTupla) self.textoFecha.set_text(calendario.toStr(self.calendario.calendario.get_date())) self.winEdit.show() # Ventana de edición de los datos
def on_botonEliminar_clicked(self, widget): (model, iter) = self.vista.get_selection().get_selected() if iter != None: conf = mensajes.pregunta(self.winMain, mensajes.DELETE) if conf: # Se recupera el ID, único campo necesario para eliminar fila = list(model[iter]) proyID = fila[0] # Se recupera el proyecto para obtener el usuario del mismo proyecto = projects.buscar(proyID) usrID = proyecto.getCreated_user_id() # Solo se puede eliminar el proyecto del propio usuario if (usrID != globalDef.glb_usuario): mostrar = mensajes.error(self.winMain, mensajes.USER_ACT) else: if projects.eliminar(proyID): mostrar = mensajes.aviso(self.winMain, mensajes.OPER_OK) else: mostrar = mensajes.error(self.winMain, mensajes.OPER_NO) self.cargarVista( False ) # Se llena la vista con los registros (False indica que no es la carga inicial)
def on_botonModificar_clicked(self, widget): (model, iter) = self.vista.get_selection().get_selected() if iter != None: self.cargarEdit() # Ventana de edición de los datos fila = list(model[iter]) # Se busca el proyecto para recuperar sus datos (en la tabla no están todos) idProyecto = fila[0] proyecto = projects.buscar(idProyecto) usrID = proyecto.getCreated_user_id( ) # Para controlar si puede modificar # Solo se puede modificar el proyecto del propio usuario if (usrID != globalDef.glb_usuario): mostrar = mensajes.error(self.winMain, mensajes.USER_ACT) else: # Se asocian a los campos de edición los valores seleccionados self.identificador = proyecto.getId( ) # El ID no es dato modificable, se mantiene su valor self.cargarComboUsuario(proyecto.getCreated_user_id()) self.textoNombre.set_text(proyecto.getName()) self.textoDescBuffer.set_text(proyecto.getDescription()) # Se toma la fecha en SQL y se pasa el dato a Tuple (el tipo de dato que maneja calendario) fechaTupla = calendario.toTuple(proyecto.getCreated()) self.calendario.setFecha(fechaTupla) self.textoFecha.set_text( calendario.toStr(self.calendario.calendario.get_date())) self.winEdit.show() # Ventana de edición de los datos
def on_botonEliminar_clicked(self, widget): (model,iter) = self.vista.get_selection().get_selected() if iter != None: conf = mensajes.pregunta(self.winMain, mensajes.DELETE) if conf: # Se recupera el ID, único campo necesario para eliminar fila = list(model[iter]) proyID = fila[0] # Se recupera el proyecto para obtener el usuario del mismo proyecto = projects.buscar(proyID) usrID = proyecto.getCreated_user_id() # Solo se puede eliminar el proyecto del propio usuario if (usrID != globalDef.glb_usuario): mostrar = mensajes.error(self.winMain, mensajes.USER_ACT) else: if projects.eliminar(proyID): mostrar = mensajes.aviso(self.winMain, mensajes.OPER_OK) else: mostrar = mensajes.error(self.winMain, mensajes.OPER_NO) self.cargarVista(False) # Se llena la vista con los registros (False indica que no es la carga inicial)
def __init__(self, proyID): # Se carga el archivo glade con la ventana principal objsW = gtk.Builder() objsW.add_from_file('vistas/proy_usr.glade') # Se recuperan los widget a usar (no son necesarios todos) self.winMain = objsW.get_object('winMain') self.textoTitulo = objsW.get_object('textoTitulo') self.vistaIzq = objsW.get_object('vistaIzq') self.vistaDer = objsW.get_object('vistaDer') self.proyID = proyID # Recupera el proyecto para mostrar el nombre proyecto = projects.buscar(proyID) self.textoTitulo.set_text('Proyecto: ' + proyecto.getName()) # Se asocian las senales del archivo glade a metodos de la clase objsW.connect_signals(self) self.winMain.show() self.cargarVistas( True ) # Se llena la vista con los registros (True indica que es la carga inicial)