diff --git a/src/app/modules/auth.py b/src/app/modules/auth.py index 7adba5790c45314b06f4bfe002ae909cdf55f8b7..76a0d59971ec85803d3284a2d5593fc2a9f5654d 100644 --- a/src/app/modules/auth.py +++ b/src/app/modules/auth.py @@ -300,4 +300,24 @@ def edit_account_penyelenggara(conn, (nama_organisasi, penanggung_jawab, foto_profil, video_introduksi, email, password, no_wa, deskripsi, id_penyelenggara) ) - conn.commit() \ No newline at end of file + conn.commit() + +def get_kategori_member(conn, id_member): + cursor = conn.cursor() + cursor.execute(f'SELECT nama_kategori FROM kategori_member WHERE id_member = {id_member}') + + return cursor.fetchall() + +def get_member(conn, id_member): + cursor = conn.cursor() + cursor.execute(f'SELECT * FROM member WHERE id_member = {id_member}') + + res = cursor.fetchone() + return {"nama_dpn": res[1], "nama_belakang": res[2], "foto_profil": res[3], "email": res[4], "password": res[5], "no_telp": res[6], "desc": res[7]} + +def get_penyelenggara(conn, id_penyelenggara): + cursor = conn.cursor() + cursor.execute(f'SELECT * FROM penyelenggara WHERE id_penyelenggara = {id_penyelenggara}') + + res = cursor.fetchone() + return {"nama_org": res[1], "pj": res[2], "foto_profil": res[3], "email": res[6], "password": res[7], "no_wa": res[8], "desc": res[5]} \ No newline at end of file diff --git a/src/app/ui/edit_account.py b/src/app/ui/edit_account.py index de009718a6274514e7603c0181fa7316076b3a07..571a78efd67ee9ec22ee2e408e11a557bfdab30d 100644 --- a/src/app/ui/edit_account.py +++ b/src/app/ui/edit_account.py @@ -20,86 +20,89 @@ class Ui_EditMember(object): def setupUi(self, EditMember): EditMember.setObjectName("EditMember") - EditMember.resize(460, 472) + EditMember.resize(460, 557) + self.Dialog = EditMember self.buttonBox = QtWidgets.QDialogButtonBox(EditMember) - self.buttonBox.setGeometry(QtCore.QRect(90, 420, 341, 32)) + self.buttonBox.setGeometry(QtCore.QRect(90, 500, 341, 32)) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") self.horizontalLayoutWidget = QtWidgets.QWidget(EditMember) - self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 170, 421, 231)) + self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 170, 421, 301)) self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") self.verticalLayout = QtWidgets.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") - self.label_nama_depan = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_nama_depan.setObjectName("label_nama_depan") self.verticalLayout.addWidget(self.label_nama_depan) - self.label_nama_belakang = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_nama_belakang.setObjectName("label_nama_belakang") self.verticalLayout.addWidget(self.label_nama_belakang) - self.label_email = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_email.setObjectName("label_email") self.verticalLayout.addWidget(self.label_email) - self.label_password = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_password.setObjectName("label_password") self.verticalLayout.addWidget(self.label_password) - self.label_no_telp = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_no_telp.setObjectName("label_no_telp") self.verticalLayout.addWidget(self.label_no_telp) - self.label_deskripsi = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_deskripsi.setObjectName("label_deskripsi") self.verticalLayout.addWidget(self.label_deskripsi) - + self.label_ketertarikan = QtWidgets.QLabel(self.horizontalLayoutWidget) + self.label_ketertarikan.setObjectName("label_ketertarikan") + self.verticalLayout.addWidget(self.label_ketertarikan) self.horizontalLayout.addLayout(self.verticalLayout) self.verticalLayout_2 = QtWidgets.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") - self.textEdit_nama_depan = QtWidgets.QTextEdit(self.horizontalLayoutWidget) self.textEdit_nama_depan.setObjectName("textEdit_nama_depan") self.verticalLayout_2.addWidget(self.textEdit_nama_depan) - self.textEdit_nama_belakang = QtWidgets.QTextEdit(self.horizontalLayoutWidget) self.textEdit_nama_belakang.setObjectName("textEdit_nama_belakang") self.verticalLayout_2.addWidget(self.textEdit_nama_belakang) - self.textEdit_email = QtWidgets.QTextEdit(self.horizontalLayoutWidget) self.textEdit_email.setObjectName("textEdit_email") self.verticalLayout_2.addWidget(self.textEdit_email) - self.lineEdit_password = QtWidgets.QLineEdit(self.horizontalLayoutWidget) self.lineEdit_password.setObjectName("lineEdit_password") self.lineEdit_password.setEchoMode(QtWidgets.QLineEdit.Password) self.verticalLayout_2.addWidget(self.lineEdit_password) - self.textEdit_no_telp = QtWidgets.QTextEdit(self.horizontalLayoutWidget) self.textEdit_no_telp.setObjectName("textEdit_no_telp") self.verticalLayout_2.addWidget(self.textEdit_no_telp) - self.textEdit_deskripsi = QtWidgets.QTextEdit(self.horizontalLayoutWidget) self.textEdit_deskripsi.setObjectName("textEdit_deskripsi") self.verticalLayout_2.addWidget(self.textEdit_deskripsi) - + self.gridLayout_kategori = QtWidgets.QGridLayout() + self.gridLayout_kategori.setObjectName("gridLayout_kategori") + self.checkBox_motivasi = QtWidgets.QCheckBox(self.horizontalLayoutWidget) + self.checkBox_motivasi.setObjectName("checkBox_motivasi") + self.gridLayout_kategori.addWidget(self.checkBox_motivasi, 1, 0, 1, 1) + self.checkBox_teknologi = QtWidgets.QCheckBox(self.horizontalLayoutWidget) + self.checkBox_teknologi.setObjectName("checkBox_teknologi") + self.gridLayout_kategori.addWidget(self.checkBox_teknologi, 0, 0, 1, 1) + self.checkBox_ekonomi = QtWidgets.QCheckBox(self.horizontalLayoutWidget) + self.checkBox_ekonomi.setObjectName("checkBox_ekonomi") + self.gridLayout_kategori.addWidget(self.checkBox_ekonomi, 0, 1, 1, 1) + self.checkBox_kompetisi = QtWidgets.QCheckBox(self.horizontalLayoutWidget) + self.checkBox_kompetisi.setObjectName("checkBox_kompetisi") + self.gridLayout_kategori.addWidget(self.checkBox_kompetisi, 1, 1, 1, 1) + self.verticalLayout_2.addLayout(self.gridLayout_kategori) self.horizontalLayout.addLayout(self.verticalLayout_2) self.horizontalLayout.setStretch(0, 4) - self.pic_profile = QtWidgets.QLabel(EditMember) self.pic_profile.setGeometry(QtCore.QRect(170, 20, 100, 100)) self.pic_profile.setText("") - self.pic_profile.setPixmap(QtGui.QPixmap("assets/default_user.png")) + self.pic_profile.setPixmap(QtGui.QPixmap("src/app/ui/assets/Images/default_user.png")) self.pic_profile.setScaledContents(True) self.pic_profile.setObjectName("pic_profile") - self.button_change = QtWidgets.QPushButton(EditMember) self.button_change.setGeometry(QtCore.QRect(180, 130, 81, 30)) self.button_change.setObjectName("button_change") @@ -118,8 +121,32 @@ class Ui_EditMember(object): self.label_password.setText(_translate("EditMember", "Password")) self.label_no_telp.setText(_translate("EditMember", "Nomor Telepon")) self.label_deskripsi.setText(_translate("EditMember", "Deskripsi")) + self.label_ketertarikan.setText(_translate("EditMember", "Ketertarikan")) + self.checkBox_motivasi.setText(_translate("EditMember", "Motivasi")) + self.checkBox_teknologi.setText(_translate("EditMember", "Teknologi")) + self.checkBox_ekonomi.setText(_translate("EditMember", "Ekonomi")) + self.checkBox_kompetisi.setText(_translate("EditMember", "Kompetisi")) self.button_change.setText(_translate("EditMember", "Change")) + data = get_member(self.conn, self.id_member) + self.textEdit_nama_depan.setText(data["nama_dpn"]) + self.textEdit_nama_belakang.setText(data["nama_belakang"]) + self.textEdit_email.setText(data["email"]) + self.textEdit_no_telp.setText(data["no_telp"]) + self.lineEdit_password.setText(data["password"]) + self.textEdit_deskripsi.setText(data["desc"]) + + categories = [val[0] for val in get_kategori_member(self.conn, self.id_member)] + for kategori in categories: + if kategori == "Motivasi": + self.checkBox_motivasi.setChecked(True) + elif kategori == "Teknologi": + self.checkBox_teknologi.setChecked(True) + elif kategori == "Ekonomi": + self.checkBox_ekonomi.setChecked(True) + elif kategori == "Kompetisi": + self.checkBox_kompetisi.setChecked(True) + def okHandle(self): nama_dpn = self.textEdit_nama_depan.toPlainText() if len(self.textEdit_nama_depan.toPlainText()) > 0 else None nama_blkg = self.textEdit_nama_belakang.toPlainText() if len(self.textEdit_nama_belakang.toPlainText()) > 0 else None @@ -131,6 +158,18 @@ class Ui_EditMember(object): try: if (not EMAIL_REGEX.match(email)): raise Exception("Invalid email") + + list_kategori = [] + if self.checkBox_motivasi.isChecked(): + list_kategori.append("Motivasi") + if self.checkBox_teknologi.isChecked(): + list_kategori.append("Teknologi") + if self.checkBox_ekonomi.isChecked(): + list_kategori.append("Ekonomi") + if self.checkBox_kompetisi.isChecked(): + list_kategori.append("Kompetisi") + + edit_kategori_member(self.conn, self.id_member, list_kategori) edit_account_member(self.conn, self.id_member, nama_dpn, nama_blkg, None, email, password, no_telp, desc) callInfoDialog("Successfully edited account") @@ -215,7 +254,7 @@ class Ui_EditPenyelenggara(object): self.pic_profile = QtWidgets.QLabel(EditPenyelenggara) self.pic_profile.setGeometry(QtCore.QRect(170, 10, 100, 100)) self.pic_profile.setText("") - self.pic_profile.setPixmap(QtGui.QPixmap("assets/default_user.png")) + self.pic_profile.setPixmap(QtGui.QPixmap("src/app/ui/assets/Images/default_user.png")) self.pic_profile.setScaledContents(True) self.pic_profile.setObjectName("pic_profile") @@ -239,6 +278,14 @@ class Ui_EditPenyelenggara(object): self.label_deskripsi.setText(_translate("EditPenyelenggara", "Deskripsi")) self.button_change.setText(_translate("EditPenyelenggara", "Change")) + data = get_penyelenggara(self.conn, self.id_penyelenggara) + self.textEdit_nama_org.setText(data["nama_org"]) + self.textEdit_pj.setText(data["pj"]) + self.textEdit_no_wa.setText(data["no_wa"]) + self.textEdit_email.setText(data["email"]) + self.lineEdit_password.setText(data["password"]) + self.textEdit_deskripsi.setText(data["desc"]) + def okHandle(self): nama_org = self.textEdit_nama_org.toPlainText() if len(self.textEdit_nama_org.toPlainText()) > 0 else None pj = self.textEdit_pj.toPlainText() if len(self.textEdit_pj.toPlainText()) > 0 else None diff --git a/src/app/ui/edit_member.ui b/src/app/ui/edit_member.ui index 5f996f14ef48f8acdf00b0dd57aecb3cf2781486..201e12d54d5c5207fd87d2347fccb9251656b1d5 100644 --- a/src/app/ui/edit_member.ui +++ b/src/app/ui/edit_member.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>460</width> - <height>472</height> + <height>557</height> </rect> </property> <property name="windowTitle"> @@ -17,7 +17,7 @@ <property name="geometry"> <rect> <x>90</x> - <y>420</y> + <y>500</y> <width>341</width> <height>32</height> </rect> @@ -35,81 +35,120 @@ <x>20</x> <y>170</y> <width>421</width> - <height>231</height> + <height>301</height> </rect> </property> <layout class="QHBoxLayout" name="horizontalLayout" stretch="4,0"> <item> <layout class="QVBoxLayout" name="verticalLayout"> <item> - <widget class="QLabel" name="label"> + <widget class="QLabel" name="label_nama_depan"> <property name="text"> <string>Nama Depan</string> </property> </widget> </item> <item> - <widget class="QLabel" name="label_2"> + <widget class="QLabel" name="label_nama_belakang"> <property name="text"> <string>Nama Belakang</string> </property> </widget> </item> <item> - <widget class="QLabel" name="label_3"> + <widget class="QLabel" name="label_email"> <property name="text"> <string>Email</string> </property> </widget> </item> <item> - <widget class="QLabel" name="label_4"> + <widget class="QLabel" name="label_password"> <property name="text"> <string>Password</string> </property> </widget> </item> <item> - <widget class="QLabel" name="label_5"> + <widget class="QLabel" name="label_no_telp"> <property name="text"> <string>Nomor Telepon</string> </property> </widget> </item> <item> - <widget class="QLabel" name="label_6"> + <widget class="QLabel" name="label_deskripsi"> <property name="text"> <string>Deskripsi</string> </property> </widget> </item> + <item> + <widget class="QLabel" name="label_ketertarikan"> + <property name="text"> + <string>Ketertarikan</string> + </property> + </widget> + </item> </layout> </item> <item> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> - <widget class="QTextEdit" name="textEdit_6"/> + <widget class="QTextEdit" name="textEdit_nama_depan"/> + </item> + <item> + <widget class="QTextEdit" name="textEdit_nama_belakang"/> </item> <item> - <widget class="QTextEdit" name="textEdit"/> + <widget class="QTextEdit" name="textEdit_email"/> </item> <item> - <widget class="QTextEdit" name="textEdit_2"/> + <widget class="QLineEdit" name="lineEdit_password"/> </item> <item> - <widget class="QLineEdit" name="lineEdit"/> + <widget class="QTextEdit" name="textEdit_no_telp"/> </item> <item> - <widget class="QTextEdit" name="textEdit_4"/> + <widget class="QTextEdit" name="textEdit_deskripsi"/> </item> <item> - <widget class="QTextEdit" name="textEdit_5"/> + <layout class="QGridLayout" name="gridLayout_kategori"> + <item row="1" column="0"> + <widget class="QCheckBox" name="checkBox_Motivasi"> + <property name="text"> + <string>Motivasi</string> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QCheckBox" name="checkBox_teknologi"> + <property name="text"> + <string>Teknologi</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QCheckBox" name="checkBox_ekonomi"> + <property name="text"> + <string>Ekonomi</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QCheckBox" name="checkBox_kompetisi"> + <property name="text"> + <string>Kompetisi</string> + </property> + </widget> + </item> + </layout> </item> </layout> </item> </layout> </widget> - <widget class="QLabel" name="label_7"> + <widget class="QLabel" name="pic_profile"> <property name="geometry"> <rect> <x>170</x> @@ -128,7 +167,7 @@ <bool>true</bool> </property> </widget> - <widget class="QPushButton" name="pushButton"> + <widget class="QPushButton" name="button_change"> <property name="geometry"> <rect> <x>180</x>