示例#1
0
 def openHomeUserInactivarEliminar(self, id):
     self.window = QtWidgets.QMainWindow()
     self.ui = Ui_HomeUserInactivarEliminar(self.id)
     self.ui.setupUi(self.window)
     self.window.show()
示例#2
0
 def openBitacora(self, id):
     self.window = QtWidgets.QMainWindow()
     self.ui = Ui_Bitacora(self.id)
     self.ui.setupUi(self.window)
     self.window.show()
示例#3
0
 def openHomeAdminReporteria(self):
     self.window = QtWidgets.QMainWindow()
     self.ui = Ui_HomeAdminReporteria()
     self.ui.setupUi(self.window)
     self.window.show()
示例#4
0
class Ui_HomeUserAuto(object):
    def __init__(self, id=0):
        super(Ui_HomeUserAuto, self).__init__()
        self.id = id

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1000, 650)
        MainWindow.setMinimumSize(QtCore.QSize(1000, 650))
        MainWindow.setMaximumSize(QtCore.QSize(1000, 650))
        MainWindow.setStyleSheet("background-color: #d1d1d5;")

        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setGeometry(QtCore.QRect(50, 50, 900, 550))
        self.frame.setMinimumSize(QtCore.QSize(900, 550))
        self.frame.setMaximumSize(QtCore.QSize(900, 550))
        self.frame.setStyleSheet("background-color: #1c1d32;\n"
                                 "border-radius: 5px;")
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")

        self.label_2 = QtWidgets.QLabel(self.frame)
        self.label_2.setGeometry(QtCore.QRect(180, 5, 100, 100))
        self.label_2.setMinimumSize(QtCore.QSize(140, 140))
        self.label_2.setMaximumSize(QtCore.QSize(140, 140))
        self.label_2.setStyleSheet("")
        self.label_2.setText("")
        self.label_2.setPixmap(QtGui.QPixmap("musics.png"))
        self.label_2.setScaledContents(True)
        self.label_2.setTextInteractionFlags(QtCore.Qt.NoTextInteraction)
        self.label_2.setObjectName("label_2")

        self.tableWidget = QtWidgets.QTableWidget(self.frame)
        self.tableWidget.setGeometry(QtCore.QRect(470, 177, 400, 350))
        self.tableWidget.setStyleSheet("font: 14pt \"Times\";\n"
                                       "color: #1b1c34;\n"
                                       "background-color: #EDFEFB")
        self.tableWidget.setObjectName("tableWidget")

        self.pushButton_Exit = QtWidgets.QPushButton(self.frame)
        self.pushButton_Exit.setGeometry(QtCore.QRect(750, 30, 15, 15))
        self.pushButton_Exit.setMinimumSize(QtCore.QSize(120, 40))
        self.pushButton_Exit.setMaximumSize(QtCore.QSize(120, 40))
        self.pushButton_Exit.setStyleSheet("background-color: #0ca692;\n"
                                           "font: 14pt \"Times\";\n"
                                           "color: rgb(255, 255, 255);\n"
                                           "border-radius: 5px;")
        self.pushButton_Exit.setObjectName("pushButton_Exit")
        self.pushButton_Exit.clicked.connect(
            QtCore.QCoreApplication.instance().quit)

        self.textEdit_UserBuscar = QtWidgets.QTextEdit(self.frame)
        self.textEdit_UserBuscar.setGeometry(QtCore.QRect(470, 130, 240, 25))
        self.textEdit_UserBuscar.setMinimumSize(QtCore.QSize(270, 40))
        self.textEdit_UserBuscar.setMaximumSize(QtCore.QSize(270, 40))
        self.textEdit_UserBuscar.setStyleSheet(
            "background-color: rgb(255, 255, 255);\n"
            "font: 18pt \"Times\";\n"
            "color: rgb(0, 0, 0);\n"
            "border-radius: 5px;")
        self.textEdit_UserBuscar.setObjectName("textEdit_UserBuscar")

        self.pushButton_Reporteria = QtWidgets.QPushButton(self.frame)
        self.pushButton_Reporteria.setGeometry(QtCore.QRect(80, 245, 100, 30))
        self.pushButton_Reporteria.setMinimumSize(QtCore.QSize(350, 50))
        self.pushButton_Reporteria.setMaximumSize(QtCore.QSize(350, 50))
        self.pushButton_Reporteria.setStyleSheet("background-color: #0ca692;\n"
                                                 "font: 14pt \"Times\";\n"
                                                 "color: rgb(255, 255, 255);\n"
                                                 "border-radius: 5px;")
        self.pushButton_Reporteria.setObjectName("pushButton_Reporteria")
        self.pushButton_Reporteria.clicked.connect(
            self.openHomeAdminReporteria)

        self.comboBox_OpcionesBuscar = QtWidgets.QComboBox(self.frame)
        self.comboBox_OpcionesBuscar.setGeometry(QtCore.QRect(
            470, 80, 175, 30))
        self.comboBox_OpcionesBuscar.setMinimumSize(QtCore.QSize(400, 40))
        self.comboBox_OpcionesBuscar.setMaximumSize(QtCore.QSize(400, 40))
        self.comboBox_OpcionesBuscar.setStyleSheet(
            "background-color: #d1d1d5;\n"
            "font: 14pt \"Times\";\n"
            "color: rgb(0, 0, 0);\n"
            "border-radius: 5px;")
        self.comboBox_OpcionesBuscar.setObjectName("comboBox_OpcionesBuscar")
        self.comboBox_OpcionesBuscar.addItem("")
        self.comboBox_OpcionesBuscar.addItem("")
        self.comboBox_OpcionesBuscar.addItem("")
        self.comboBox_OpcionesBuscar.addItem("")
        self.comboBox_OpcionesBuscar.addItem("")

        self.pushButton_Buscar = QtWidgets.QPushButton(self.frame)
        self.pushButton_Buscar.setGeometry(QtCore.QRect(750, 130, 110, 25))
        self.pushButton_Buscar.setMinimumSize(QtCore.QSize(120, 40))
        self.pushButton_Buscar.setMaximumSize(QtCore.QSize(120, 40))
        self.pushButton_Buscar.setStyleSheet("background-color: #0ca692;\n"
                                             "font: 14pt \"Times\";\n"
                                             "color: rgb(255, 255, 255);\n"
                                             "border-radius: 5px;")

        self.pushButton_Bitacora = QtWidgets.QPushButton(self.frame)
        self.pushButton_Bitacora.setGeometry(QtCore.QRect(80, 310, 100, 30))
        self.pushButton_Bitacora.setMinimumSize(QtCore.QSize(350, 50))
        self.pushButton_Bitacora.setMaximumSize(QtCore.QSize(350, 50))
        self.pushButton_Bitacora.setStyleSheet("background-color: #0ca692;\n"
                                               "font: 14pt \"Times\";\n"
                                               "color: rgb(255, 255, 255);\n"
                                               "border-radius: 5px;")
        self.pushButton_Bitacora.setObjectName("pushButton_Bitacora")

        self.comboBox_OpcionesBuscar.raise_()
        self.label_2.raise_()
        self.tableWidget.raise_()
        self.pushButton_Exit.raise_()
        self.textEdit_UserBuscar.raise_()
        self.pushButton_Buscar.raise_()
        self.pushButton_Bitacora.raise_()
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

        self.pushButton_Exit.setText(_translate("MainWindow", "Salir"))
        self.textEdit_UserBuscar.setHtml(
            _translate(
                "MainWindow",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'Times\'; font-size:13pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"
            ))
        self.pushButton_Reporteria.setText(
            _translate("MainWindow", "Reportería"))
        self.pushButton_Reporteria.clicked.connect(
            self.openHomeAdminReporteria)
        self.comboBox_OpcionesBuscar.setItemText(
            0, _translate("MainWindow", "¿Qué deseas buscar?"))
        self.comboBox_OpcionesBuscar.setItemText(
            1, _translate("MainWindow", "Artista"))
        self.comboBox_OpcionesBuscar.setItemText(
            2, _translate("MainWindow", "Género"))
        self.comboBox_OpcionesBuscar.setItemText(
            3, _translate("MainWindow", "Álbum"))
        self.comboBox_OpcionesBuscar.setItemText(
            4, _translate("MainWindow", "Canción"))
        self.pushButton_Buscar.setText(_translate("MainWindow", "Buscar"))
        self.pushButton_Buscar.clicked.connect(self.populateTable)
        self.pushButton_Bitacora.setText(_translate("MainWindow", "Bitácora"))
        self.pushButton_Bitacora.clicked.connect(self.openBitacora)

    def openPopUpError(self, mensaje):
        msgError = QMessageBox()
        msgError.setText(mensaje)
        msgError.setIcon(QMessageBox.Warning)
        x = msgError.exec_()

    def openPopUpCheck(self, mensaje):
        msgGood = QMessageBox()
        msgGood.setText(mensaje)
        msgGood.setIcon(QMessageBox.Information)
        y = msgGood.exec_()

    def openBitacora(self, id):
        self.window = QtWidgets.QMainWindow()
        self.ui = Ui_Bitacora(self.id)
        self.ui.setupUi(self.window)
        self.window.show()

    def openHomeAdminReporteria(self):
        self.window = QtWidgets.QMainWindow()
        self.ui = Ui_HomeAdminReporteria()
        self.ui.setupUi(self.window)
        self.window.show()

    def openHomeUserInactivarEliminar(self, id):
        self.window = QtWidgets.QMainWindow()
        self.ui = Ui_HomeUserInactivarEliminar(self.id)
        self.ui.setupUi(self.window)
        self.window.show()

    def populateTable(self):
        #clear the table
        self.tableWidget.setRowCount(0)
        if (self.textEdit_UserBuscar.toPlainText() != ''
                and self.comboBox_OpcionesBuscar.currentText() !=
                '¿Qué deseas buscar?'):
            print('Bien')
            print(self.id)
            conn = None
            params = config()
            conn = bd.connect(**params)
            cursor = conn.cursor()
            if (self.comboBox_OpcionesBuscar.currentText() == 'Artista'):
                query = "SELECT track.name, artist.name FROM track JOIN album ON track.albumid = album.albumid JOIN artist ON album.artistid = artist.artistid WHERE artist.name ~* \'" + self.textEdit_UserBuscar.toPlainText(
                ) + "'"
                cursor.execute(query)
                record = cursor.fetchall()
                print(record)
                if (len(record) != 0):
                    self.tableWidget.setColumnCount(len(record[0]))
                    for i in range(len(record)):
                        self.tableWidget.insertRow(i)
                        for j in range(len(record[0])):
                            print(i, j)
                            self.tableWidget.setItem(
                                i, j, QtWidgets.QTableWidgetItem(record[i][j]))

            elif (self.comboBox_OpcionesBuscar.currentText() == 'Género'):
                query = "SELECT track.name, genre.name FROM track INNER JOIN genre ON track.genreid = genre.genreid WHERE genre.name ~* \'" + self.textEdit_UserBuscar.toPlainText(
                ) + "'"
                cursor.execute(query)
                record = cursor.fetchall()
                if (len(record) != 0):
                    self.tableWidget.setColumnCount(len(record[0]))
                    for i in range(len(record)):
                        self.tableWidget.insertRow(i)
                        for j in range(len(record[0])):
                            self.tableWidget.setItem(
                                i, j, QtWidgets.QTableWidgetItem(record[i][j]))

            elif (self.comboBox_OpcionesBuscar.currentText() == 'Álbum'):
                query = "SELECT track.name FROM track INNER JOIN album ON track.albumid = album.albumid WHERE album.title ~* \'" + self.textEdit_UserBuscar.toPlainText(
                ) + "'"
                cursor.execute(query)
                record = cursor.fetchall()
                if (len(record) != 0):
                    self.tableWidget.setColumnCount(len(record[0]))
                    for i in range(len(record)):
                        self.tableWidget.insertRow(i)
                        for j in range(len(record[0])):
                            self.tableWidget.setItem(
                                i, j, QtWidgets.QTableWidgetItem(record[i][j]))

            elif (self.comboBox_OpcionesBuscar.currentText() == 'Canción'):
                query = "SELECT track.name FROM track  WHERE name ~* \'" + self.textEdit_UserBuscar.toPlainText(
                ) + "'"
                cursor.execute(query)
                record = cursor.fetchall()
                if (len(record) != 0):
                    self.tableWidget.setColumnCount(len(record[0]))
                    for i in range(len(record)):
                        self.tableWidget.insertRow(i)
                        for j in range(len(record[0])):
                            self.tableWidget.setItem(
                                i, j,
                                QtWidgets.QTableWidgetItem(str(record[i][j])))
        else:
            print('Mal')

    def populateTableOpcion1(self):
        self.tableWidget.setRowCount(0)
        conn = None
        params = config()
        conn = bd.connect(**params)
        cursor = conn.cursor()
        query = query1()
        cursor.execute(query)
        record = cursor.fetchall()
        if (len(record) != 0):
            self.tableWidget.setColumnCount(len(record[0]))
            for i in range(len(record)):
                self.tableWidget.insertRow(i)
                for j in range(len(record[0])):
                    self.tableWidget.setItem(
                        i, j, QtWidgets.QTableWidgetItem(str(record[i][j])))
            with open('Opcion1.csv', 'w') as f:
                thewriter = csv.writer(f, delimiter=',')
                thewriter.writerow(['Artista', 'No. Albumés publicados'])
                for row in record:
                    thewriter.writerow(row)

    def populateTableOpcion2(self):
        self.tableWidget.setRowCount(0)
        conn = None
        params = config()
        conn = bd.connect(**params)
        cursor = conn.cursor()
        query = query2()
        cursor.execute(query)
        record = cursor.fetchall()
        if (len(record) != 0):
            self.tableWidget.setColumnCount(len(record[0]))
            for i in range(len(record)):
                self.tableWidget.insertRow(i)
                for j in range(len(record[0])):
                    self.tableWidget.setItem(
                        i, j, QtWidgets.QTableWidgetItem(str(record[i][j])))
            with open('Opcion2.csv', 'w', newline='') as f:
                thewriter = csv.writer(f, delimiter=',')
                thewriter.writerow(['Genero', 'No. Canciones'])
                for row in record:
                    thewriter.writerow(row)

    def populateTableOpcion3(self):
        self.tableWidget.setRowCount(0)
        conn = None
        params = config()
        conn = bd.connect(**params)
        cursor = conn.cursor()
        query = query3()
        cursor.execute(query)
        record = cursor.fetchall()
        if (len(record) != 0):
            self.tableWidget.setColumnCount(len(record[0]))
            for i in range(len(record)):
                self.tableWidget.insertRow(i)
                for j in range(len(record[0])):
                    self.tableWidget.setItem(
                        i, j, QtWidgets.QTableWidgetItem(str(record[i][j])))
            with open('Opcion3.csv', 'w', newline='') as f:
                thewriter = csv.writer(f, delimiter=',')
                thewriter.writerow(['Playlist', 'Duración (milisegundos)'])
                for row in record:
                    thewriter.writerow(row)

    def populateTableOpcion4(self):
        self.tableWidget.setRowCount(0)
        conn = None
        params = config()
        conn = bd.connect(**params)
        cursor = conn.cursor()
        query = query4()
        cursor.execute(query)
        record = cursor.fetchall()
        if (len(record) != 0):
            self.tableWidget.setColumnCount(len(record[0]))
            for i in range(len(record)):
                self.tableWidget.insertRow(i)
                for j in range(len(record[0])):
                    self.tableWidget.setItem(
                        i, j, QtWidgets.QTableWidgetItem(str(record[i][j])))
            with open('Opcion4.csv', 'w', newline='') as f:
                thewriter = csv.writer(f, delimiter=',')
                thewriter.writerow(
                    ['Canción', 'Artista', 'Duración (milisegundos)'])
                for row in record:
                    thewriter.writerow(row)

    def populateTableOpcion5(self):
        self.tableWidget.setRowCount(0)
        conn = None
        params = config()
        conn = bd.connect(**params)
        cursor = conn.cursor()
        query = query5()
        cursor.execute(query)
        record = cursor.fetchall()
        if (len(record) != 0):
            self.tableWidget.setColumnCount(len(record[0]))
            for i in range(len(record)):
                self.tableWidget.insertRow(i)
                for j in range(len(record[0])):
                    self.tableWidget.setItem(
                        i, j, QtWidgets.QTableWidgetItem(str(record[i][j])))
            with open('Opcion5.csv', 'w', newline='') as f:
                thewriter = csv.writer(f, delimiter=',')
                thewriter.writerow(['Nombre', 'No. Canciones Subidas'])
                for row in record:
                    thewriter.writerow(row)

    def populateTableOpcion6(self):
        self.tableWidget.setRowCount(0)
        conn = None
        params = config()
        conn = bd.connect(**params)
        cursor = conn.cursor()
        query = query6()
        cursor.execute(query)
        record = cursor.fetchall()
        if (len(record) != 0):
            self.tableWidget.setColumnCount(len(record[0]))
            for i in range(len(record)):
                self.tableWidget.insertRow(i)
                for j in range(len(record[0])):
                    self.tableWidget.setItem(
                        i, j, QtWidgets.QTableWidgetItem(str(record[i][j])))
            with open('Opcion6.csv', 'w', newline='') as f:
                thewriter = csv.writer(f, delimiter=',')
                thewriter.writerow(
                    ['Canción', 'Promedio de duración (milisegundos)'])
                for row in record:
                    thewriter.writerow(row)

    def populateTableOpcion7(self):
        self.tableWidget.setRowCount(0)
        conn = None
        params = config()
        conn = bd.connect(**params)
        cursor = conn.cursor()
        query = query7()
        cursor.execute(query)
        record = cursor.fetchall()
        if (len(record) != 0):
            self.tableWidget.setColumnCount(len(record[0]))
            for i in range(len(record)):
                self.tableWidget.insertRow(i)
                for j in range(len(record[0])):
                    self.tableWidget.setItem(
                        i, j, QtWidgets.QTableWidgetItem(str(record[i][j])))
            with open('Opcion7.csv', 'w', newline='') as f:
                thewriter = csv.writer(f, delimiter=',')
                thewriter.writerow(['Playlist', 'No. Artistas diferentes'])
                for row in record:
                    thewriter.writerow(row)

    def populateTableOpcion8(self):
        self.tableWidget.setRowCount(0)
        conn = None
        params = config()
        conn = bd.connect(**params)
        cursor = conn.cursor()
        query = query8()
        cursor.execute(query)
        record = cursor.fetchall()
        if (len(record) != 0):
            self.tableWidget.setColumnCount(len(record[0]))
            for i in range(len(record)):
                self.tableWidget.insertRow(i)
                for j in range(len(record[0])):
                    self.tableWidget.setItem(
                        i, j, QtWidgets.QTableWidgetItem(str(record[i][j])))
            with open('Opcion8.csv', 'w') as f:
                thewriter = csv.writer(f, delimiter=',')
                thewriter.writerow(['Artista', 'No. Generos'])
                for row in record:
                    thewriter.writerow(row)

    def report(self):
        if (self.comboBox.currentText() == "Reportería"):
            print("Eliga una opcion")
        elif (self.comboBox.currentText() ==
              "1. Los 5 artistas con más álbumes publicados"):
            self.populateTableOpcion1()
        elif (self.comboBox.currentText() ==
              "2. Los 5 géneros con más canciones"):
            self.populateTableOpcion2()
        elif (self.comboBox.currentText() ==
              "3. Total de duración de cada playlist"):
            self.populateTableOpcion3()
        elif (self.comboBox.currentText(
        ) == "4. Las 5 canciones de mayor duración con información del artista"
              ):
            self.populateTableOpcion4()
        elif (self.comboBox.currentText() ==
              "5. Los 5 usuarios que han registrado más canciones"):
            self.populateTableOpcion5()
        elif (self.comboBox.currentText() ==
              "6. Promedio de duración de canciones por género"):
            self.populateTableOpcion6()
        elif (self.comboBox.currentText() ==
              "7. Cantidad de artistas diferentes por playlist"):
            self.populateTableOpcion7()
        elif (self.comboBox.currentText() ==
              "8. Los 5 artistas con más diversidad de géneros"):
            self.populateTableOpcion8()