2023-11-03 00:13:54 +00:00
|
|
|
from textual.app import App
|
2023-10-29 23:12:39 +00:00
|
|
|
|
2023-11-03 00:13:54 +00:00
|
|
|
from .db import db
|
2023-10-29 21:49:26 +00:00
|
|
|
|
2023-11-03 00:13:54 +00:00
|
|
|
from .screens.hamster import CategoryListScreen, ActivityListScreen
|
|
|
|
from .screens.kimai import KimaiProjectListScreen
|
2023-10-27 21:00:03 +00:00
|
|
|
|
|
|
|
|
2023-10-27 01:26:15 +00:00
|
|
|
class HamsterToolsApp(App):
|
2023-10-27 15:40:25 +00:00
|
|
|
CSS_PATH = "app.tcss"
|
2023-10-27 01:26:15 +00:00
|
|
|
BINDINGS = [
|
|
|
|
("a", "switch_mode('activities')", "Activities"),
|
|
|
|
("c", "switch_mode('categories')", "Categories"),
|
2023-10-27 21:00:03 +00:00
|
|
|
("k", "switch_mode('kimai')", "Kimai"),
|
2023-10-27 01:26:15 +00:00
|
|
|
("q", "quit", "Quit"),
|
|
|
|
]
|
2023-10-27 03:04:30 +00:00
|
|
|
|
|
|
|
def __init__(self):
|
2023-10-27 23:42:30 +00:00
|
|
|
db.init("hamster-testing.db")
|
2023-10-27 01:26:15 +00:00
|
|
|
|
|
|
|
self.MODES = {
|
2023-10-29 21:49:26 +00:00
|
|
|
"categories": CategoryListScreen(),
|
|
|
|
"activities": ActivityListScreen(),
|
|
|
|
"kimai": KimaiProjectListScreen(),
|
2023-10-27 01:26:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
super().__init__()
|
|
|
|
|
|
|
|
def on_mount(self) -> None:
|
|
|
|
self.switch_mode("activities")
|
|
|
|
|
|
|
|
def action_quit(self) -> None:
|
2023-10-27 23:42:30 +00:00
|
|
|
db.close()
|
2023-10-29 22:28:01 +00:00
|
|
|
self.exit()
|