36 lines
839 B
Python
36 lines
839 B
Python
from textual.app import App
|
|
|
|
from .db import db
|
|
from .kimaiapi import KimaiAPI
|
|
|
|
from .screens.hamster import HamsterScreen
|
|
from .screens.kimai import KimaiScreen
|
|
|
|
|
|
class HamsterToolsApp(App):
|
|
CSS_PATH = "app.tcss"
|
|
|
|
BINDINGS = [
|
|
("h", "switch_mode('hamster')", "Hamster"),
|
|
("k", "switch_mode('kimai')", "Kimai"),
|
|
("q", "quit", "Quit"),
|
|
]
|
|
|
|
def __init__(self, kimai_api=None):
|
|
self.add_mode("hamster", HamsterScreen())
|
|
self.add_mode("kimai", KimaiScreen())
|
|
# self.mode MODES = {
|
|
# "hamster": HamsterScreen(),
|
|
# "kimai": KimaiScreen(),
|
|
# }
|
|
self.api = kimai_api
|
|
|
|
super().__init__()
|
|
|
|
def on_mount(self) -> None:
|
|
self.switch_mode("hamster")
|
|
|
|
async def action_quit(self) -> None:
|
|
db.close()
|
|
self.exit()
|