Esempio n. 1
0
class Register(QWidget):
    def __init__(self, mydb_helper):
        QWidget.__init__(self)
        self.ui = Ui_Register()
        self.ui.setupUi(self)
        self.setWindowTitle("Register")
        self.mydb_helper = mydb_helper

    def regi_submit(self):
        name = self.ui.name_line.text()
        phone = self.ui.phone_line.text()
        user_type = self.ui.user_type.currentText()
        sex = "M" if self.ui.male.isChecked(
        ) else "F" if self.ui.female.isChecked() else None
        if name and phone and user_type and sex:
            reader = Reader(name, sex, user_type, phone)
            self.mydb_helper.db_register(reader)
            self.close()
        else:
            self.ui.message_box.insert("null line exist!")
 def regwin(self):
     from register import Ui_Register
     self.window = QtWidgets.QDialog()
     self.ui = Ui_Register()
     self.ui.setupR(self.window)
     self.window.show()
Esempio n. 3
0
 def open_register(self):
     from register import Ui_Register
     self.window = QtWidgets.QMainWindow()
     self.ui = Ui_Register()
     self.ui.setupUi(self.window)
     self.window.show()
Esempio n. 4
0
class Ui_Reviewform(object):
    def setupUi(self, Reviewform, movie_title):
        Reviewform.setObjectName("Reviewform")
        Reviewform.resize(670, 600)
        self.centralwidget = QtWidgets.QWidget(Reviewform)
        self.centralwidget.setObjectName("centralwidget")

        type_text = QtCore.QRegExp("[a-zA-Z0-9_]*")
        tText = QtGui.QRegExpValidator(type_text)

        self.textId = QtWidgets.QLineEdit(self.centralwidget)
        self.textId.setGeometry(QtCore.QRect(80, 110, 221, 41))
        self.textId.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.textId.setObjectName("textId")
        self.textId.setPlaceholderText("กรุณากรอกID")
        self.textId.setValidator(tText)

        self.textPass = QtWidgets.QLineEdit(self.centralwidget)
        self.textPass.setGeometry(QtCore.QRect(420, 110, 221, 41))
        self.textPass.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.textPass.setObjectName("textPass")
        self.textPass.setPlaceholderText("กรุณากรอกPassword")
        self.textPass.setValidator(tText)
        self.textPass.setEchoMode(QtWidgets.QLineEdit.Password)

        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(430, 270, 121, 31))
        self.label_3.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.label_3.setObjectName("label_3")

        self.doubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget)
        self.doubleSpinBox.setGeometry(QtCore.QRect(430, 310, 121, 31))
        self.doubleSpinBox.setStyleSheet("font: 14pt \"MS Shell Dlg 2\";")
        self.doubleSpinBox.setObjectName("doubleSpinBox")
        self.doubleSpinBox.setMinimum(0)
        self.doubleSpinBox.setMaximum(10)
        self.doubleSpinBox.setDecimals(1)
        self.doubleSpinBox.setSingleStep(0.1)
        self.doubleSpinBox.setValue(0)

        self.pushButton_regis = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_regis.setGeometry(QtCore.QRect(220, 180, 161, 41))
        self.pushButton_regis.setStyleSheet("font: 18pt \"MS Shell Dlg 2\";")
        self.pushButton_regis.setObjectName("pushButton_regis")
        self.pushButton_regis.clicked.connect(self.open_register)

        self.label_Id = QtWidgets.QLabel(self.centralwidget)
        self.label_Id.setGeometry(QtCore.QRect(40, 110, 41, 31))
        self.label_Id.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.label_Id.setObjectName("label_Id")

        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(30, 270, 321, 31))
        self.label_2.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.label_2.setObjectName("label_2")

        self.moviename = QtWidgets.QLabel(self.centralwidget)
        self.moviename.setGeometry(QtCore.QRect(30, 310, 350, 50))
        self.moviename.setStyleSheet("font: 12pt \"MS Shell Dlg 2\";")
        self.moviename.setObjectName("moviename")
        self.moviename.setText(movie_title)
        self.moviename.setWordWrap(True)

        #send to db
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(430, 460, 141, 41))
        self.pushButton.setStyleSheet("font: 18pt \"MS Shell Dlg 2\";")
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.check_review)

        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(240, 20, 191, 41))
        self.label.setStyleSheet("font: 24pt \"MS Shell Dlg 2\";")
        self.label.setObjectName("label")

        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(70, 190, 141, 31))
        self.label_4.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.label_4.setObjectName("label_4")

        self.label_Pass = QtWidgets.QLabel(self.centralwidget)
        self.label_Pass.setGeometry(QtCore.QRect(320, 110, 91, 31))
        self.label_Pass.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.label_Pass.setObjectName("label_Pass")

        self.textComment = QtWidgets.QTextEdit(self.centralwidget)
        self.textComment.setGeometry(QtCore.QRect(30, 370, 321, 161))
        self.textComment.setStyleSheet("font: 16pt \"MS Shell Dlg 2\";")
        self.textComment.setObjectName("textComment")
        self.textComment.setPlaceholderText("กรอก คําวิจารณ์...")

        Reviewform.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(Reviewform)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 670, 21))
        self.menubar.setObjectName("menubar")
        Reviewform.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(Reviewform)
        self.statusbar.setObjectName("statusbar")
        Reviewform.setStatusBar(self.statusbar)

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

        #color
        Reviewform.setWindowIcon(QtGui.QIcon('./image/icon.png'))

    def retranslateUi(self, Reviewform):
        _translate = QtCore.QCoreApplication.translate
        Reviewform.setWindowTitle(_translate("Reviewform", "Reviews"))
        self.label_3.setText(_translate("Reviewform", "คะแนนที่ให้"))
        self.pushButton_regis.setText(_translate("Reviewform", "สมัครสมาชิก"))
        self.label_Id.setText(_translate("Reviewform", "ID"))
        self.label_2.setText(
            _translate("Reviewform", "ความรู้สึกที่มีต่อภาพยนตร์ เรื่อง"))
        self.pushButton.setText(_translate("Reviewform", "ส่ง"))
        self.label.setText(_translate("Reviewform", "Review Form"))
        self.label_4.setText(_translate("Reviewform", "ยังไม่เป็นสมาชิก ?"))
        self.label_Pass.setText(_translate("Reviewform", "Password"))

    def open_register(self):
        from register import Ui_Register
        self.window = QtWidgets.QMainWindow()
        self.ui = Ui_Register()
        self.ui.setupUi(self.window)
        self.window.show()

    def check_review(self):
        movie_title = self.moviename.text()
        self.event_review(movie_title)

    def event_review(self, movie_title):
        #check login
        id = self.textId.text().strip()
        password = self.textPass.text().strip()

        #review
        comment = self.textComment.toPlainText().strip()
        score = self.doubleSpinBox.value()

        conn = pymongo.MongoClient("localhost", 27017)
        db = conn.get_database("movies")
        cursor = db.users.find({"id": id})
        count = cursor.count()
        for e in cursor:
            nickname = e['nickname']
            passwordcollection = e['password']

        #not check score
        if id == "" or password == "" or comment == "":
            msg = QtWidgets.QMessageBox()
            msg.setIcon(QtWidgets.QMessageBox.Information)
            msg.setText("{0}".format("กรุณากรอกข้อมูลให้ครบ"))
            msg.setWindowTitle("Check Review")
            msg.exec_()
        else:
            if count != 0:
                if password == passwordcollection:
                    scoreformat = "{0:.1f}".format(score)
                    userdata = {
                        "original_title": movie_title,
                        "comment": comment,
                        "score": float(scoreformat),
                        "id": id,
                        "nickname": nickname
                    }
                    db.review.insert_one(userdata)

                    msg = QtWidgets.QMessageBox()
                    msg.setIcon(QtWidgets.QMessageBox.Information)
                    msg.setText("{0}".format("เพิ่มรีวิวสำเร็จ"))
                    msg.setWindowTitle("Success Review")
                    msg.exec_()

                    #self.open_moviedatawindow(movie_title)

                    self.textId.setText("")
                    self.textPass.setText("")
                    self.textComment.setText("")
                    self.doubleSpinBox.setValue(0)

                else:
                    msg = QtWidgets.QMessageBox()
                    msg.setIcon(QtWidgets.QMessageBox.Information)
                    msg.setText("{0}".format("กรอก Password ผิด"))
                    msg.setWindowTitle("Check Password")
                    msg.exec_()
            else:
                msg = QtWidgets.QMessageBox()
                msg.setIcon(QtWidgets.QMessageBox.Information)
                msg.setText("{0}".format("ไม่มี ID นี้ในระบบ"))
                msg.setWindowTitle("Check ID")
                msg.exec_()

    def open_moviedatawindow(self, movie_title):
        from moviedata import Ui_moviedataWindow as ui_moviedata
        self.window = QtWidgets.QMainWindow()
        self.ui = ui_moviedata()
        self.ui.setupUi(self.window, movie_title)
        self.window.show()

    def go_back(self):
        movie_title = self.moviename.text()
        self.open_moviedatawindow(movie_title)
Esempio n. 5
0
class Ui_Login(object):
    def __init__(self):
        super(Ui_Login, self).__init__()
        self.user_gui = None
        self.response_currency = requests.get('https://api.exchangeratesapi.io/latest?base=PLN')

        # dane do logowania do bazy danych
        self.db_host = 'packy.db.elephantsql.com'
        self.db_user = '******'
        self.db_name = 'htcazxfd'
        self.db_port = 5432
        self.db_psswd = 'UE5AaV5whqnbKyD5jL9MusNCvV1yaX7T'
        self.conn = None

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(387, 223)
        self.window = MainWindow
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.username = QtWidgets.QLabel(self.centralwidget)
        self.username.setGeometry(QtCore.QRect(40, 40, 141, 17))
        self.username.setObjectName("username")
        self.result = QtWidgets.QLabel(self.centralwidget)
        self.result.setGeometry(QtCore.QRect(40, 120, 141, 17))
        self.result.setObjectName("result")
        self.password = QtWidgets.QLabel(self.centralwidget)
        self.password.setEnabled(True)
        self.password.setGeometry(QtCore.QRect(40, 70, 67, 17))
        self.password.setObjectName("password")
        self.username_input = QtWidgets.QLineEdit(self.centralwidget)
        self.username_input.setGeometry(QtCore.QRect(190, 40, 150, 25))
        self.username_input.setFrame(True)
        self.username_input.setObjectName("username_input")
        self.password_input = QtWidgets.QLineEdit(self.centralwidget)
        self.password_input.setGeometry(QtCore.QRect(190, 70, 150, 25))
        self.password_input.setObjectName("password_input")
        self.password_input.setEchoMode(QtWidgets.QLineEdit.Password)
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(200, 120, 89, 25))
        self.pushButton.setObjectName("pushButton")
        self.register_button = QtWidgets.QPushButton(self.centralwidget)
        self.register_button.setGeometry(QtCore.QRect(40, 120, 111, 25))
        self.register_button.setObjectName("register_button")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 387, 22))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

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

        self.pushButton.clicked.connect(self.clicked_log_in)
        self.register_button.clicked.connect(self.register_new_user)

    def download_currencies(self):
        if self.response_currency.status_code == 200:
            try:
                self.conn = pg2.connect(host=self.db_host, database=self.db_name, user=self.db_user, password=self.db_psswd,
                                        port=self.db_port)
                c = self.conn.cursor()
                c.execute("""
                        SELECT *
                        FROM currencies_download_date
                        WHERE date_of_download = CURRENT_DATE;
                """)
                date_of_update = c.fetchone()
                c.close()
                self.conn.commit()
                if date_of_update is None:
                    insert_values = ''
                    sorted_dict = sorted(self.response_currency.json()['rates'].items(), key=lambda x: x[0])
                    for currency, value in sorted_dict:
                        insert_values += "UPDATE currencies SET value_in_pln = {} WHERE name = '{}'; ".format(value, currency)

                    date_of_download = self.response_currency.json()['date']

                    c = self.conn.cursor()
                    c.execute("""
                            {}
                            INSERT INTO currencies_download_date (date_of_download)
                            VALUES ('{}');
                    """.format(insert_values, date_of_download))
                    c.close()
                    self.conn.commit()
                    self.conn.close()
            except pg2.errors.RaiseException:
                self.something_is_wrong()
        else:
            self.download_currencies_error()

    def download_currencies_error(self):
        self.conn = pg2.connect(host=self.db_host, database=self.db_name, user=self.db_user, password=self.db_psswd,
                                port=self.db_port)
        c = self.conn.cursor()
        c.execute("""
                SELECT date_of_download
                FROM currencies_download_date
                HAVING date_id = max(date_id);
        """)
        date_of_update = c.fetchone()
        c.close()
        self.conn.commit()
        self.conn.close()
        msg = QMessageBox()
        msg.setWindowTitle("Błąd")
        msg.setText("Błąd pobierania walut z ECB. Twoja biblioteka będzie korzystać z przeliczników walut z dnia {}".format(date_of_update))
        msg.setIcon(QMessageBox.Critical)
        msg.setStandardButtons(QMessageBox.Ok)

        x = msg.exec_()

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Logowanie do biblioteki cyfrowej"))
        self.username.setText(_translate("MainWindow", "Nazwa użytkownika:"))
        self.password.setText(_translate("MainWindow", "Hasło:"))
        self.pushButton.setText(_translate("MainWindow", "Zaloguj"))
        self.register_button.setText(_translate("MainWindow", "Zarejestruj"))

    def clicked_log_in(self):
        _translate = QtCore.QCoreApplication.translate
        username = self.username_input.text()
        password = self.password_input.text()
        try:
            self.conn = pg2.connect(host=self.db_host, database=self.db_name, user=self.db_user, password=self.db_psswd,
                                    port=self.db_port)
            c = self.conn.cursor()
            c.execute("SELECT user_id FROM users WHERE username = '******' AND psswd = '{}';".format(username, password))
            go = c.fetchone()
            if go is None:
                self.result.setText(_translate("MainWindow", "Błąd logowania!"))
            else:
                self.result.setText(_translate("MainWindow", "Zalogowano!"))
                self.open_user_gui(go[0])
            c.close()
            self.conn.commit()
            self.conn.close()
            self.username_input.setText(_translate('MainWindow', ''))
            self.password_input.setText(_translate('MainWindow', ''))
        except pg2.errors.RaiseException:
            self.something_is_wrong()

    def open_user_gui(self, user_id):
        self.download_currencies()
        self.window_user_gui = QtWidgets.QMainWindow()
        self.user_gui = Ui_UserGui(user_id)
        self.user_gui.setupUi(self.window_user_gui)
        self.window_user_gui.show()
        self.window.close()

    def register_new_user(self):
        self.window_register = QtWidgets.QMainWindow()
        self.register_gui = Ui_Register()
        self.register_gui.setupUi(self.window_register)
        self.window_register.show()
        self.window.close()

    @staticmethod
    def something_is_wrong():
        msg = QMessageBox()
        msg.setWindowTitle("Błąd")
        msg.setText("Coś poszło nie tak :(")
        msg.setIcon(QMessageBox.Critical)
        msg.setStandardButtons(QMessageBox.Abort)

        x = msg.exec_()
Esempio n. 6
0
 def register_new_user(self):
     self.window_register = QtWidgets.QMainWindow()
     self.register_gui = Ui_Register()
     self.register_gui.setupUi(self.window_register)
     self.window_register.show()
     self.window.close()
 def openwindow(self):
     self.T_login = QtWidgets.QMainWindow()
     self.ui = Ui_Register()
     self.ui.setup3(self.T_login)
     self.T_login.show()
Esempio n. 8
0
 def __init__(self, mydb_helper):
     QWidget.__init__(self)
     self.ui = Ui_Register()
     self.ui.setupUi(self)
     self.setWindowTitle("Register")
     self.mydb_helper = mydb_helper