Skip to content
This repository was archived by the owner on Jul 9, 2024. It is now read-only.

Commit

Permalink
bugfix notifications not working in GUI (#487)
Browse files Browse the repository at this point in the history
marcorombach authored Jun 16, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 9e1f5f0 commit 669ff51
Showing 2 changed files with 11 additions and 6 deletions.
2 changes: 2 additions & 0 deletions gui.py
Original file line number Diff line number Diff line change
@@ -261,8 +261,10 @@ def __start_terminsuche(self, kontaktdaten: dict, zeitrahmen: dict):

check_delay = self.i_interval.value()
codes = kontaktdaten["codes"]
notifications = kontaktdaten.get("notifications", {})
terminsuche_prozess = multiprocessing.Process(target=QtTerminsuche.start_suche, name=f"{codes[0]}-{self.prozesse_counter}", daemon=True, kwargs={
"kontaktdaten": kontaktdaten,
"notifications": notifications,
"zeitrahmen": zeitrahmen,
"ROOT_PATH": PATH,
"check_delay": check_delay})
15 changes: 9 additions & 6 deletions tools/gui/qtterminsuche.py
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ class Worker(QObject):
fertig = pyqtSignal()
fehlschlag = pyqtSignal(Exception)

def __init__(self, kontaktdaten: dict, zeitrahmen: dict, ROOT_PATH: str, check_delay: int):
def __init__(self, kontaktdaten: dict, notifications: dict, zeitrahmen: dict, ROOT_PATH: str, check_delay: int):
"""
Args:
kontaktdaten (dict): kontakdaten aus kontaktdaten.json
@@ -47,6 +47,7 @@ def __init__(self, kontaktdaten: dict, zeitrahmen: dict, ROOT_PATH: str, check_d
super().__init__()

self.kontaktdaten = kontaktdaten
self.notifications = notifications
self.zeitrahmen = zeitrahmen
self.ROOT_PATH = ROOT_PATH
self.check_delay = check_delay
@@ -62,7 +63,8 @@ def suchen(self):

try:
ImpfterminService.terminsuche(codes=codes, plz_impfzentren=plz_impfzentren, kontakt=kontakt,
PATH=self.ROOT_PATH, check_delay=self.check_delay, zeitrahmen=self.zeitrahmen)
notifications=self.notifications, PATH=self.ROOT_PATH,
check_delay=self.check_delay, zeitrahmen=self.zeitrahmen)

self.fertig.emit()

@@ -87,7 +89,7 @@ class QtTerminsuche(QtWidgets.QMainWindow):
### QTextEdit (readonly) ###
# console_text_edit

def __init__(self, kontaktdaten: dict, zeitrahmen: dict, ROOT_PATH: str, check_delay: int, pfad_fenster_layout=os.path.join(PATH, "terminsuche.ui")):
def __init__(self, kontaktdaten: dict, notifications: dict, zeitrahmen: dict, ROOT_PATH: str, check_delay: int, pfad_fenster_layout=os.path.join(PATH, "terminsuche.ui")):

super().__init__()

@@ -99,6 +101,7 @@ def __init__(self, kontaktdaten: dict, zeitrahmen: dict, ROOT_PATH: str, check_d

# Attribute erstellen
self.kontaktdaten = kontaktdaten
self.notifications = notifications
self.zeitrahmen = zeitrahmen
self.ROOT_PATH = ROOT_PATH
self.check_delay = check_delay
@@ -120,7 +123,7 @@ def __init__(self, kontaktdaten: dict, zeitrahmen: dict, ROOT_PATH: str, check_d
self.thread.start()

@staticmethod
def start_suche(kontaktdaten: dict, zeitrahmen: dict, ROOT_PATH: str, check_delay: int):
def start_suche(kontaktdaten: dict, notifications: dict, zeitrahmen: dict, ROOT_PATH: str, check_delay: int):
"""
Startet die Suche in einem eigenen Fenster mit Umlenkung der Konsolenausgabe in das Fenster
@@ -132,7 +135,7 @@ def start_suche(kontaktdaten: dict, zeitrahmen: dict, ROOT_PATH: str, check_dela
"""
app = QtWidgets.QApplication(list())
app.setAttribute(QtCore.Qt.AA_X11InitThreads)
window = QtTerminsuche(kontaktdaten, zeitrahmen, ROOT_PATH, check_delay)
window = QtTerminsuche(kontaktdaten, notifications, zeitrahmen, ROOT_PATH, check_delay)
app.exec_()

def setup_infos(self):
@@ -150,7 +153,7 @@ def setup_thread(self):
"""

self.thread = QThread(parent=self)
self.worker = Worker(self.kontaktdaten, self.zeitrahmen, self.ROOT_PATH, self.check_delay)
self.worker = Worker(self.kontaktdaten, self.notifications, self.zeitrahmen, self.ROOT_PATH, self.check_delay)

# Worker und Thread verbinden
self.worker.moveToThread(self.thread)

0 comments on commit 669ff51

Please sign in to comment.