update: updated erorr handling and display
This commit is contained in:
parent
e8a1658d43
commit
84071e9554
1 changed files with 17 additions and 7 deletions
|
|
@ -1379,6 +1379,7 @@ class Worker(QObject):
|
||||||
profile_observer.subscribe(
|
profile_observer.subscribe(
|
||||||
'enabled', lambda event: self.handle_profile_status(event.subject, True))
|
'enabled', lambda event: self.handle_profile_status(event.subject, True))
|
||||||
self.profile_type = None
|
self.profile_type = None
|
||||||
|
self._ticket_error_emitted = False
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.profile = ProfileController.get(int(self.profile_data['id']))
|
self.profile = ProfileController.get(int(self.profile_data['id']))
|
||||||
|
|
@ -1391,6 +1392,8 @@ class Worker(QObject):
|
||||||
self.profile_data['billing_code'] = ticket_billing_code
|
self.profile_data['billing_code'] = ticket_billing_code
|
||||||
elif 'billing_code' not in self.profile_data and self.profile is not None:
|
elif 'billing_code' not in self.profile_data and self.profile is not None:
|
||||||
ticket_billing_code = self._maybe_auto_use_ticket()
|
ticket_billing_code = self._maybe_auto_use_ticket()
|
||||||
|
if ticket_billing_code is None and self._ticket_error_emitted:
|
||||||
|
return
|
||||||
if ticket_billing_code:
|
if ticket_billing_code:
|
||||||
self.profile_data['billing_code'] = ticket_billing_code
|
self.profile_data['billing_code'] = ticket_billing_code
|
||||||
|
|
||||||
|
|
@ -1486,13 +1489,18 @@ class Worker(QObject):
|
||||||
which_ticket, error_msg = do_we_use_a_random_ticket(ticket_observer)
|
which_ticket, error_msg = do_we_use_a_random_ticket(ticket_observer)
|
||||||
except Exception:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
if which_ticket is None or which_ticket == 'error' or error_msg:
|
if error_msg:
|
||||||
|
self._ticket_error_emitted = True
|
||||||
|
self.change_page.emit(f'Ticket use failed: {error_msg}', True)
|
||||||
|
return None
|
||||||
|
if which_ticket is None or which_ticket == 'error':
|
||||||
return None
|
return None
|
||||||
return self._consume_ticket(which_ticket, None)
|
return self._consume_ticket(which_ticket, None)
|
||||||
|
|
||||||
def _consume_ticket(self, which_ticket, which_location):
|
def _consume_ticket(self, which_ticket, which_location):
|
||||||
candidates = self._location_candidates(preferred=which_location)
|
candidates = self._location_candidates(preferred=which_location)
|
||||||
if not candidates:
|
if not candidates:
|
||||||
|
self._ticket_error_emitted = True
|
||||||
self.change_page.emit('Could not determine profile location for ticket use.', True)
|
self.change_page.emit('Could not determine profile location for ticket use.', True)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
@ -1514,9 +1522,11 @@ class Worker(QObject):
|
||||||
msg = outcome.get('message', 'failed')
|
msg = outcome.get('message', 'failed')
|
||||||
last_msg = msg
|
last_msg = msg
|
||||||
if msg != 'invalid_location':
|
if msg != 'invalid_location':
|
||||||
|
self._ticket_error_emitted = True
|
||||||
self.change_page.emit(f'Ticket use failed: {msg}', True)
|
self.change_page.emit(f'Ticket use failed: {msg}', True)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
self._ticket_error_emitted = True
|
||||||
self.change_page.emit(f'Ticket use failed: {last_msg or "no valid location"}', True)
|
self.change_page.emit(f'Ticket use failed: {last_msg or "no valid location"}', True)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
@ -8467,7 +8477,7 @@ class IdPage(Page):
|
||||||
self.single_title.setStyleSheet(column_title_style)
|
self.single_title.setStyleSheet(column_title_style)
|
||||||
self.single_title.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
self.single_title.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
||||||
|
|
||||||
self.single_button = QPushButton("New Billing ID", self)
|
self.single_button = QPushButton("One Profile Only", self)
|
||||||
self.single_button.setGeometry(40, 220, 200, 100)
|
self.single_button.setGeometry(40, 220, 200, 100)
|
||||||
self.single_button.setStyleSheet(column_button_style)
|
self.single_button.setStyleSheet(column_button_style)
|
||||||
self.single_button.clicked.connect(self.go_single_profile)
|
self.single_button.clicked.connect(self.go_single_profile)
|
||||||
|
|
@ -8489,13 +8499,13 @@ class IdPage(Page):
|
||||||
self.multiple_button.clicked.connect(self.go_multiple_profiles)
|
self.multiple_button.clicked.connect(self.go_multiple_profiles)
|
||||||
|
|
||||||
self.multiple_desc = QLabel(
|
self.multiple_desc = QLabel(
|
||||||
f"Buy a bundle of {HOW_MANY_PROFILES_DEFAULT} tickets upfront.", self)
|
f"Buy a bundle of {HOW_MANY_PROFILES_DEFAULT} tickets at once, which are cryptographically seperated from each other.", self)
|
||||||
self.multiple_desc.setGeometry(285, 335, 240, 40)
|
self.multiple_desc.setGeometry(285, 335, 240, 80)
|
||||||
self.multiple_desc.setStyleSheet(column_desc_style)
|
self.multiple_desc.setStyleSheet(column_desc_style)
|
||||||
self.multiple_desc.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
self.multiple_desc.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
||||||
self.multiple_desc.setWordWrap(True)
|
self.multiple_desc.setWordWrap(True)
|
||||||
|
|
||||||
self.title = QLabel("Entry Id", self)
|
self.title = QLabel("Use Existing", self)
|
||||||
self.title.setGeometry(QtCore.QRect(555, 50, 230, 40))
|
self.title.setGeometry(QtCore.QRect(555, 50, 230, 40))
|
||||||
self.title.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
self.title.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
|
||||||
self.title.setStyleSheet(column_title_style)
|
self.title.setStyleSheet(column_title_style)
|
||||||
|
|
@ -10362,7 +10372,7 @@ class PlanPickerPage(Page):
|
||||||
months = plan_data.get('months', '?')
|
months = plan_data.get('months', '?')
|
||||||
days = plan_data.get('days', '?')
|
days = plan_data.get('days', '?')
|
||||||
profiles = plan_data.get('profiles', '?')
|
profiles = plan_data.get('profiles', '?')
|
||||||
label = f" Plan {plan_key} | €{cost} | {months}m {days}d left | {profiles} profiles"
|
label = f" Plan {plan_key} | €{cost} | {months}months {days}d left | {profiles} profiles"
|
||||||
item = QListWidgetItem(label)
|
item = QListWidgetItem(label)
|
||||||
item.setData(QtCore.Qt.ItemDataRole.UserRole, plan_key)
|
item.setData(QtCore.Qt.ItemDataRole.UserRole, plan_key)
|
||||||
self.plan_list.addItem(item)
|
self.plan_list.addItem(item)
|
||||||
|
|
@ -10569,7 +10579,7 @@ class TicketPrepPage(Page):
|
||||||
|
|
||||||
def on_error(self, msg):
|
def on_error(self, msg):
|
||||||
self.terminal.append(f"EXCEPTION: {msg}")
|
self.terminal.append(f"EXCEPTION: {msg}")
|
||||||
self.status_label.setText(f"Error: {msg}")
|
self.status_label.setText(f"An unkown error occured")
|
||||||
|
|
||||||
def on_continue(self):
|
def on_continue(self):
|
||||||
menu_page = self.page_stack.findChild(MenuPage)
|
menu_page = self.page_stack.findChild(MenuPage)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue