Esempio n. 1
0
def main():
    """Main del proyecto. Aquí se inicializan los objetos principales, comienza todo el código.
    """
    client_id = 2  #ID del cliente en Laravel Passport. Por defecto es 2, y no debería cambiarse.

    #Secreto del cliente. Debe ser generado por Laravel Passport en la API.
    client_secret = ""

    try:
        main_app = QtSingleApplication(client_secret, sys.argv)
        if main_app.isRunning():
            sys.exit(0)
        QCoreApplication.setApplicationName("CAPOUNET Sync")
        QCoreApplication.setOrganizationName("CAPOUNET")
        QCoreApplication.setOrganizationDomain("capounet.unet.edu.ve")

        Settings.load_settings(client_id, client_secret)
        main_app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
        main_app.setWindowIcon(Settings.app_icon)

        return_code = 1
        while return_code:
            return_code = 2
            if not Settings.is_init():
                Settings.delete_settings()
                return_code = AccessDialog.obtain_configuration()
                if return_code == 1:
                    return_code = OptionsDialog.open_dialog()

            if return_code >= 1:
                main_window = MainWindow()
                sync_thread = SyncThread(main_window)
                sync_thread.start()
                if return_code == 1:
                    main_window.show()
                return_code = main_app.exec_()
                sync_thread.stop_sync()
                main_window.close()
                sync_thread.join()
                if return_code:
                    Settings.delete_settings()
                    Settings.load_settings(client_id, client_secret)

        sys.exit(0)

    except NameError:
        print("Nombre del error:", sys.exc_info()[1])
    except SystemExit:
        print("Cerrando la ventana...")
Esempio n. 2
0
class driver:
    def __init__(self):
        self.app = QApplication(sys.argv)
        self.DBconnection = None
        self.user = None
        self.login = None
        self.mw = None
        self.stylesheet = """
        QMainWindow{
            background-color: #97CBE1;
        }
        QLabel{
            color: #031523;
        }
        QLineEdit{
            background-color: #C4F3C4;
        }
        QPushButton{
            background-color: #031523;
            color: white;
        }
        QPixMap{
            box-shadow: 10px 10px 5px #B8F9C3;
        }
        """
        self.app.setStyleSheet(self.stylesheet)

    def createDBConnect(self, host='laspjot.cc3mhnvgoaaz.us-east-2.rds.amazonaws.com', database='proj', user='******', password='******'):
        if self.DBconnection == None:
            try:
                self.DBconnection = DBconnect(host, database, user, password)
            except:
                print("Cannot connect to DB.")
                self.closeApp()
        else:
            print("DB connection already exists")



    def openLoginWindow(self):
        self.login = LogInWindow(self, self.DBconnection)
        self.login.li_widget.newuser.clicked.connect(self.makeNewUser)
        self.login.user_found.connect(self.openMainWindow)
        self.login.show()  # self.login.exec()
        #self.user = self.login.getUser()
        # Get email and password from logIn and set class variables

    def makeNewUser(self):
        webbrowser.open('https://ghar-property-manager.herokuapp.com/signup')

    def getApp(self):
        return self.app

    def openMainWindow(self, userID):
        if self.login != None:
            self.login.close()
        self.user = Landlord(userID, self.DBconnection)  # create landlord in mw
        self.mw = MainWindow(self.user, self.DBconnection)
        #slots
        self.mw.signOut.triggered.connect(self.logOut) #logout when "sign out" is clicked in mw's menu bar

        self.mw.openInBrowser.triggered.connect(self.openSite)
        self.mw.mainWidget.propertiesWidget.closeOut.clicked.connect(self.mw.close)
        self.mw.mainWidget.propertiesWidget.goToSite.clicked.connect(self.openSite)
        self.mw.show()

    def openSite(self):
        """
        Opens the GHAR homepage
        :return:
        """
        webbrowser.open('https://ghar-property-manager.herokuapp.com/home')

    def logOut(self):
        self.user = None
        self.mw.close()
        self.mw = None
        self.openLoginWindow()

    def runApp(self):
        self.app.exec()
        if self.DBconnection != None:
            self.DBconnection.closeConnection()