@@ 56,6 56,27 @@ class TicketScreen(Adw.NavigationPage):
if action == "remove":
self.ticket.delete()
self.activate_action("win.home", None)
+ def show_toast(self, title):
+ toast = Adw.Toast()
+ toast.set_title(title)
+ toast.set_timeout(2)
+ self.overlay.add_toast(toast)
+
+ def fetch(self):
+ GLib.idle_add(self.show_toast, _("Fetching ticket information"))
+ self.task_fetch()
+
+ def task_fetch(self):
+ tnumber = self.ticket.ticket_number
+ tsurname = self.ticket.last_name
+ ticket = Ticket.from_network(tnumber, tsurname)
+ if ticket is None:
+ GLib.idle_add(self.show_toast, _("Couldn't refresh ticket. Try again later"))
+ else:
+ self.ticket = ticket
+ self.ticket.save()
+ GLib.idle_add(self.show_toast, _("Done"))
+ GLib.idle_add(self.update)
def generate_code(self):
barcode = self.ticket.barcode