class TrondheimPage(Page): def __init__(self, master): Page.__init__(self) self.controller = TrondelagController() self.__set_layout() def __city_info(self, name=None, rank=0): city_data = self.controller.city_data(name=name, rank=rank) name = city_data['navn'] name_label = Label( self.frame, text=name, fg='white', bg='black', font=("Helvetica", 50), ) name_label.pack() infected = city_data['smittet'] dead = city_data['dode'] self.stats_label = Label(self.frame, text="{}/{}".format(infected, dead), fg='white', bg='black', font=("Helvetica", 100)) self.stats_label.place(relx=0.5, rely=0.5, anchor='center') self.stats_label.after( 300000, lambda: self.__update_info(name=name, rank=rank)) def __set_layout(self): self.__city_info('Trondheim') last_update = self.controller.last_updated() self.update_label = Label(self.frame, text=last_update.strftime("%H:%M:%S"), fg='white', bg='black', font=("Helvetica", 30)) self.update_label.pack(side=BOTTOM) def __update_info(self, name, rank): self.controller.update_model() city_data = self.controller.city_data(name=name, rank=rank) infected = city_data['smittet'] dead = city_data['dode'] self.stats_label.configure(text="{}/{}".format(infected, dead)) last_update = self.controller.last_updated() self.update_label.configure(text=last_update.strftime("%H:%M:%S")) self.stats_label.after( 300000, lambda: self.__update_info(name=name, rank=rank))
class TopCasesPage(Page): def __init__(self, master): Page.__init__(self) self.controller = TrondelagController() self.__set_layout() def __city_info(self, name=None, rank=0): city_data = self.controller.city_data(name=name, rank=rank) name = city_data['navn'] name_label = Label(self.frame, text=name) name_label.pack() infected = city_data['smittet'] dead = city_data['dode'] stats_label = Label(self.frame, text="{}/{}".format(infected, dead)) stats_label.pack() def __set_layout(self): header_label = Label(self.frame, text="COVID-19 Trøndelag") self.__city_info(rank=0) self.__city_info(rank=1) self.__city_info(rank=2) last_update = self.controller.last_updated() update_label = Label(self.frame, text=last_update.strftime("%b %d. %Y %H:%M:%S")) update_label.pack()
class COVIDTerminal: def __init__(self): self.controller = TrondelagController() def peek(self, rank: int = 3): for i in range(rank): city_data = self.controller.city_data(rank=i) print("\t", city_data['navn']) print("Smittede: {}".format(city_data['smittet'])) print("Døde: {}".format(city_data['dode'])) print("------------------------------") print("Sist oppdatert: {}".format( self.controller.last_updated().strftime("%d. %b %Y -- %H:%M:%S")))