Improved UI for notifications and billing feedback. Invoices now show connecting on repeat. And popups can be enabled by core push notification.

This commit is contained in:
SimplifiedPrivacy 2026-10-21 13:39:20 -04:00
parent 707935f80f
commit d1dfa788db
5 changed files with 22 additions and 2 deletions

View file

@ -50,7 +50,7 @@ def dispatch_individual(profile_id: int, ui_caller: Callable) -> Result:
else:
error_msg = "There's an error in the dispatch_individual function"
logger.error(f"This shouldn't be going off. {error_msg}")
return Result(valid=False, error_type=ResultError.NAVIGATE_TO, navigate_to="home", message=error_msg)
return Result(valid=False, error_type=ResultError.NAVIGATE_TO, navigate_to="menu", message=error_msg)
else:
# Starting fresh. Pick a billing type:
return navigate_to_new_sub_page()

View file

@ -13,6 +13,7 @@ from core.services.prepare_tickets.ticket_tracker import get_all_unused_tickets
from core.utils.type_checker import type_checker
from core.models.Result import Result, ResultError
from core.errors.logger import logger
from core.observers.Notifications import Notifications, EventType
# gui
from gui.v2.infrastructure.action_registry import register_action
@ -80,6 +81,8 @@ def dispatch_ticketing(profile_id: int, passed_ui_caller: Callable) -> Result:
def start_ticket(ui_caller: Callable) -> Result:
logger.info("started ticketing billing state")
notification = "Started Ticket Billing"
Notifications.emit(EventType.STATUS_UPDATE, notification)
return take_action(
action=start_new_payment_cycle,
category=PaymentCategory.TICKET,
@ -148,6 +151,8 @@ class TicketUser():
def begin_thread(self):
"""Step 1, begin a background thread with use"""
notification = "Using Ticket.."
Notifications.emit(EventType.STATUS_UPDATE, notification)
take_action(
action=use_ticket,
ui_caller=self.apply_code,

View file

@ -1,5 +1,9 @@
from gui.v2.ui.popups.error_popup import ErrorPopup
from gui.v2.infrastructure.ThreadSafetyTool import ThreadSafetyTool
mainthread = ThreadSafetyTool()
import os
from typing import Any
from PyQt6.QtWidgets import QWidget, QLabel, QPushButton
@ -110,7 +114,7 @@ class Page(QWidget):
pass
button.clicked.connect(handler)
@mainthread
def show_a_popup(self, message: str, title: str = "Error"):
"""Display a popup with an error"""
error_popup = ErrorPopup(

View file

@ -825,6 +825,7 @@ class MenuPage(Page):
Notifications.subscribe(EventType.SYSTEM_ENABLE, self.turn_on_system_visuals)
Notifications.subscribe(EventType.SYSTEM_DISABLE, self.turn_off_system_visuals)
Notifications.subscribe(EventType.RESUME_ACTIONS, self.trigger_action_button_visuals)
Notifications.subscribe(EventType.SHOW_POPUP, self.show_a_popup)
take_action(
action=evaluate_state_on_startup,

View file

@ -176,6 +176,14 @@ class PaymentDetailsPage(Page):
main_layout.addLayout(action_bar)
self.button_reverse.clicked.connect(self.reverse)
def clear_pre_existing_invoice(self):
text = "connecting.."
self.fields["billing_code"].setText(text)
self.fields["duration"].setText(text)
self.fields["amount"].setText(text)
self.fields["address"].setText(text)
self.fields["currency"].setText(text)
def begin_invoice(self):
""" "Fetches an Invoice from GUI's actions modules"""
self.update_status.update_status("Getting Invoice...")
@ -193,6 +201,8 @@ class PaymentDetailsPage(Page):
self.custom_window.navigator.navigate("currency_selection")
return # error is already displayed in subfunction.
self.clear_pre_existing_invoice()
# launches background thread tasks:
error_msg = gui_starts_invoice(
invoice_ui_caller=self.receive_invoice,