def elimina(self): """ Elimina una pelicula de la base de datos """ index =self.ui.grilla.currentIndex() data = self.ui.grilla.model() peli = data.item(index.row(),0).peli iD = str(peli['id']) resp = QtGui.QMessageBox.question(self, "Pregunta","Desea realmente eliminar la pelicula seleccionada?",QtGui.QMessageBox.Ok,QtGui.QMessageBox.No) if resp == QtGui.QMessageBox.Ok: Modelo_pelicula.borrar(iD); self.cargar_peliculas();
def crear_pelicula(self): """ Crea una nueva pelicula en la base de datos """ self.obtener_datos() if(len(self.ui.nombre_in.text())>0 and len(self.ui.fecha_in.date().toPython().strftime("%Y-%m-%d"))>0 and len(self.ui.pais_in.text())>0 and len(self.ui.descripcion_in.toPlainText())>0 and Modelo_pelicula.checkea_pelicula(self.nombre)==False):#si los campos obligatorios tienen datos, se crea la pelicula print("Creando nueva pelicula ...") #crear_pelicula(nombre,estreno, pais, descripcion, director_id) Modelo_pelicula.crear_pelicula(self.nombre,self.estreno, self.pais, self.descripcion,"Peliculas/img/"+self.nombre.replace(" ","_")+".jpg") self.ui.foto_label.pixmap().save("Peliculas/img/"+self.nombre.replace(" ","_")+".jpg","jpg")#guarda la imagen que se selecciono a la carpeta "img" self.limpiar() self.close() else:#si falta algun campo obligatorio, no se creara el nuevo director QtGui.QMessageBox.critical(self, 'Faltan campos obligatorios','Error:\nLos campos "nombre", "estreno","pais y descripcion" son campos obligatorios')
def filtro_actor(self): """ Filtra para poner la cantidad de actores de esa pelicula """ actor=self.ui.filtro_actor.text() peliculas = Modelo_pelicula.filtro_pelicula(actor) rows = len(peliculas) if rows == 0: QtGui.QMessageBox.information( None, u"InformaciĆ³n", u"No se encontro nigun actor en las peliculas.") return data = QtGui.QStandardItemModel( rows, len(self.table_columns)) self.ui.grilla.setModel(data) self.ui.grilla.horizontalHeader().setResizeMode( 0, self.ui.grilla.horizontalHeader().Stretch) for col, h in enumerate(self.table_columns): data.setHeaderData(col, QtCore.Qt.Horizontal, h[0]) self.ui.grilla.setColumnWidth(col, h[1]) for i, peli in enumerate(peliculas): row = [ peli["nombre"], peli["estreno"], peli["pais"], # cambiar lo que esta dentro del parentesis dependiendo de la tabla peli["descripcion"], peli["director_id"]] for j, field in enumerate(row): index = data.index(i, j, QtCore.QModelIndex()) data.setData(index, field) # Parametros ocultos data.item(i).peli = peli
def obtener_datos(self): """ Obtiene los datos de la pelicula y los muestra en pantalla de editar """ self.nombre="" self.imagen="" self.estreno="" self.pais="" self.descripcion="" self.ui.id_label.setText("ID:xXxX") #self.datos if(self.id>=1): self.datos=Modelo_pelicula.buscar_id(self.id) print(self.datos) print(len(self.datos)) self.ui.id_label.setText("ID:"+str(self.id)) self.ui.nombre_in.setText(self.datos[1]) y=int(self.datos[2][0:4]) m=int(self.datos[2][5:7]) d=int(self.datos[2][8:10]) self.ui.fecha_in.setDate(QtCore.QDate(y,m,d))#Y,M,D self.ui.pais_in.setText(self.datos[3]) # print("---------->"+str(self.datos[4])) self.ui.descripcion_in.setText(self.datos[4]) self.ui.foto_label.setPixmap(QtGui.QPixmap(self.datos[6])) self.listo=True
def sum_actores(self,id_p): """ recorre la query como diccionario para luego contar los actores """ c=0 peliculas = Modelo_pelicula.contar_actor(id_p) for i, peli in enumerate(peliculas): c=c+1 return(c)
def guardar_pelicula(self): """ Guarda la pelocula que fue editada en la base de datos """ print("Guardando pelicula modificado...") #self.obtener_datos() if(len(self.ui.nombre_in.text())>0 and len(self.ui.fecha_in.text())>0 and len(self.ui.pais_in.text())>0 and len(self.ui.descripcion_in.toPlainText())>0):#si los campos obligatorios tienen datos, se crea la pelicula self.ui.foto_label.pixmap().save("Peliculas/img/"+self.nombre.replace(" ","_")+".jpg","jpg")#guarda la imagen que se selecciono a la carpeta "img" Modelo_pelicula.actualiza(self.id,self.ui.nombre_in.text(),self.ui.fecha_in.date().toPython().strftime("%Y-%m-%d"),self.ui.pais_in.text(),self.ui.descripcion_in.toPlainText(),"Peliculas/img/"+self.nombre.replace(" ","_")+".jpg") self.limpiar() self.close() else:#si falta algun campo obligatorio, no se creara el nuevo director if(len(self.nombre)>0 and len(self.descripcion)>0 and len(self.pais)>0 and len(self.estreno)>0): QtGui.QMessageBox.critical(self, "Pelicula Existente","Error:\nLa pelicula que intenta agregar ("+self.nombre+"), ya existe en la base de datos") else: QtGui.QMessageBox.critical(self, 'Faltan campos obligatos campos "nombre", "estreno","pais", "descripcion" son obligatorios')
def cargar_peliculas(self): """ Muestra las peliculas en la grilla """ peliculas=Modelo_pelicula.obtener_peliculas() filas=len(peliculas) data = QtGui.QStandardItemModel(filas, len(self.table_columns)) self.ui.grilla.setModel(data) self.ui.grilla.horizontalHeader().setResizeMode(0, self.ui.grilla.horizontalHeader().Stretch) for col, h in enumerate(self.table_columns): data.setHeaderData(col, QtCore.Qt.Horizontal, h[0]) self.ui.grilla.setColumnWidth(col, h[1]) for i, peli in enumerate(peliculas): filas = [ peli["nombre"], peli["estreno"], peli["pais"],peli["descripcion"],peli["director_id"]] for j, field in enumerate(filas): index = data.index(i, j, QtCore.QModelIndex()) data.setData(index, field) # Parametros ocultos data.item(i).peli = peli