diff --git a/src/app/ui/detail_acara_window_ui.py b/src/app/ui/detail_acara_window_ui.py index 42afa081d7d9c9610f89ef1ed8263dfd520b6b81..d2fa1515d24e48bd3e78ef5d88a439bbc5d3966a 100644 --- a/src/app/ui/detail_acara_window_ui.py +++ b/src/app/ui/detail_acara_window_ui.py @@ -61,13 +61,21 @@ class Ui_Dialog(object): return self.spinBox.value() class Ui_DetailAcaraWindow(object): - def setupUi(self, MainWindow, content, kategori, isMember): + def setupUi(self, MainWindow, content, isMember): MainWindow.setObjectName("MainWindow") MainWindow.resize(813, 600) - self.idAcara = content[0] - self.idUser = content[11] + self.idAcara = content["id_acara"] + self.idUser = content["id_user"] self.isMember = isMember + self.ordered = True + + if not self.isMember: + conn = db.init_db() + cur = conn.cursor() + cur.execute("SELECT id_member FROM mengikuti WHERE id_acara = "+str(content["id_acara"])) + already = [i[0] for i in cur.fetchall()] + self.ordered = self.idUser in already self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") @@ -103,7 +111,7 @@ class Ui_DetailAcaraWindow(object): self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.idxPhoto = 0 - self.photos = content[12] + self.photos = content["foto"] self.label_5 = QtWidgets.QLabel(self.centralwidget) if len(self.photos)!=0: self.label_5.setGeometry(QtCore.QRect(230, 10, 311, 211)) @@ -235,14 +243,14 @@ class Ui_DetailAcaraWindow(object): self.MainWindow = MainWindow - self.retranslateUi(MainWindow,content,kategori) + self.retranslateUi(MainWindow,content) QtCore.QMetaObject.connectSlotsByName(MainWindow) - def retranslateUi(self, MainWindow, content, kategori): + def retranslateUi(self, MainWindow, content): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) - syarat = content[3] if content[3] != None else "Tidak ada syarat" + syarat = content["syarat"] if content["syarat"] != None else "Tidak ada syarat" htmlSyarat = '''<!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 {0}\n @@ -252,9 +260,9 @@ p, li {0}\n self.label_2.setText(_translate("MainWindow", "Syarat")) - desc = content[5] if content[5] != None else "-" - contact = content[9] - link = content[8] if content[8]!="" else "Belum ada" + desc = content["desc"] if content["desc"] != None else "-" + contact = content["contact"] + link = content["link"] if content["link"]!="" and content["link"]!=None else "N/A (Silahkan kontak CP jika ada kesalahan)" if self.ordered else "Silahkan pesan tiketnya terlebih dahulu" htmlInfo = """<!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 {0}\n @@ -275,29 +283,24 @@ p, li {0}\n if not self.isMember: self.pushButton.setText(_translate("MainWindow", "Edit Acara")) else: - conn = db.init_db() - cur = conn.cursor() - - cur.execute("SELECT id_member FROM mengikuti WHERE id_acara = "+str(content[0])) - already = [i[0] for i in cur.fetchall()] - - if self.idUser in already: + if self.ordered: self.pushButton.setEnabled(False) self.pushButton.setText(_translate("MainWindow", "Pemesanan Berhasil!")) else: self.pushButton.setText(_translate("MainWindow", "Pesan Tiket")) - tanggal = content[6].strftime("%d %b %Y %H:%M:%S") + tanggal = content["waktu"].strftime("%d %b %Y %H:%M:%S") self.label_3.setText(_translate("MainWindow", tanggal)) - self.maxQ = str(content[4]) - self.quantity = content[13] if content[13] != None else 0 + self.maxQ = str(content["kuota"]) + self.quantity = content["jml_order"] if content["jml_order"] != None else 0 kuota = "Kuota: " + str(self.quantity) + "/" + str(self.maxQ) self.label_4.setText(_translate("MainWindow", kuota)) - nama = content[1] + nama = content["nama_acara"] self.label.setText(_translate("MainWindow", nama)) + kategori = content["kategori"] kat1 = kategori[0] self.label_6.setText(_translate("MainWindow", kat1)) @@ -310,10 +313,10 @@ p, li {0}\n kat4 = kategori[3] if len(kategori) > 3 else "" self.label_9.setText(_translate("MainWindow", kat4)) - organisasi = content[10] + organisasi = content["organisasi"] self.label_10.setText(_translate("MainWindow", organisasi)) - price = "Harga: Rp." + str(content[7]) + price = "Harga: " + ("Rp." + str(content["harga"]) if content["harga"]!=None and content["harga"]!=0 else "Gratis") self.label_11.setText(_translate("MainWindow", price)) self.pushButton_3.setText(_translate("MainWindow", u"Next", None)) @@ -363,7 +366,7 @@ p, li {0}\n self.w.show() class DetailAcaraWindow(QMainWindow, Ui_DetailAcaraWindow): - def __init__(self, idAcara, idMember, isMember, parent=None): + def __init__(self, idAcara, idUser, isMember, parent=None): super().__init__(parent) conn = db.init_db() @@ -376,33 +379,54 @@ class DetailAcaraWindow(QMainWindow, Ui_DetailAcaraWindow): # Ambil kontak penanggungjawab cur.execute("SELECT penanggung_jawab,no_wa,nama_organisasi FROM penyelenggara WHERE id_penyelenggara = "+str(content[9])) val = cur.fetchone() - contact = val[0] + ": " + val[1] - contact = (contact,val[2]) - content = tuple([content[i] for i in range(9)]) - content += contact + content = { + "id_acara": content[0], + "nama_acara": content[1], + "video": content[2], + "syarat": content[3], + "kuota": content[4], + "desc": content[5], + "waktu": content[6], + "harga": content[7], + "link": content[8], + "contact": content[9], + "organisasi": None, + "id_user": idUser, + "foto": [], + "jml_order": 0, + "kategori": [] + } + + # Ambil kontak penanggungjawab + cur.execute("SELECT penanggung_jawab,no_wa,nama_organisasi FROM penyelenggara WHERE id_penyelenggara = "+str(content["contact"])) + val = cur.fetchone() + content["contact"] = val[0] + ": " + val[1] + content["organisasi"] = val[2] # Ambil foto acara - cur.execute("SELECT id_foto,foto FROM foto_acara WHERE id_acara ="+str(idAcara)) + cur.execute("SELECT foto FROM foto_acara WHERE id_acara ="+str(idAcara)) files = cur.fetchall() images = [] for aFile in files: - images.append(aFile[1]) + images.append(aFile[0]) + content["foto"] = images # Ambil kategori acara cur.execute("SELECT nama_kategori FROM kategori_acara WHERE id_acara = "+str(idAcara)) query = cur.fetchall() - kategori = () + kategori = [] for val in query: - kategori += val + kategori.append(val[0]) + content["kategori"] = kategori # Ambil jumlah tiket yang udah dipesan cur.execute("SELECT SUM(jumlah) FROM mengikuti WHERE id_acara = "+str(idAcara)) jmlPesanan = cur.fetchone() jmlPesanan = jmlPesanan[0] - content += (idMember,images,jmlPesanan) + content["jml_order"] = jmlPesanan # content = (idAcara,namaAcara,linkVideo,syarat,kuota,desc,waktu,harga,link,namapenanggungjwb: noWA,namaOrganisasi,idMember,foto,jmlPesanan) - self.setupUi(self,content,kategori,isMember) + self.setupUi(self,content,isMember) def about(self): QMessageBox.about( diff --git a/src/app/ui/linimasa_ui.py b/src/app/ui/linimasa_ui.py index c13504208c75f28effe640f3610815165d227ab9..4f664e732ad215235d81358963957a2b2c792d03 100644 --- a/src/app/ui/linimasa_ui.py +++ b/src/app/ui/linimasa_ui.py @@ -49,7 +49,7 @@ class LinimasaPenggunaWindow(QMainWindow): layout.addWidget(QLabel(f'Kuota Pendaftar: {r[2]}')) layout.addWidget(QLabel(f'{r[4]}')) button = QPushButton('Lihat acara') - button.clicked.connect(lambda self,aid=aid: self.showDetails(aid)) + button.clicked.connect(lambda _,aid=aid: self.showDetails(aid)) layout.addWidget(button) self.linimasa.addWidget(container) @@ -108,7 +108,7 @@ class LinimasaPenyelenggaraWindow(QMainWindow): layout.addWidget(QLabel(f'Kuota Pendaftar: {r[2]}')) layout.addWidget(QLabel(f'{r[4]}')) button = QPushButton('Lihat acara') - button.clicked.connect(lambda self,aid=aid: self.showDetail(aid)) + button.clicked.connect(lambda _,aid=aid: self.showDetails(aid)) layout.addWidget(button) self.linimasa.addWidget(container) diff --git a/src/app/ui/tambah_acara_ui.py b/src/app/ui/tambah_acara_ui.py index 3aba5d8712c8454f0c0fe4d920a59a3238316ecf..e7d85cf45ae72323a28579211f0f3af5fd70d2d7 100644 --- a/src/app/ui/tambah_acara_ui.py +++ b/src/app/ui/tambah_acara_ui.py @@ -44,7 +44,7 @@ class TambahAcaraWindow(QtWidgets.QMainWindow): link=None, deskripsi=None, syarat=None, - id_acara=None, + id_acara=self.__id_acara, ) if id_acara is not None: cur = conn.cursor()