Preliminary clockify support

This commit is contained in:
3wc
2025-08-07 12:02:35 +01:00
parent db6d7ac640
commit fb49a24ae1
10 changed files with 273 additions and 56 deletions

View File

@ -1,10 +1,12 @@
from textual.app import App
from hamstertools import clockify
from .db import db
from .kimaiapi import KimaiAPI
from .screens.hamster import HamsterScreen
from .screens.kimai import KimaiScreen
from .screens.clockify.projects import ClockifyProjectScreen
class HamsterToolsApp(App):
@ -12,18 +14,19 @@ class HamsterToolsApp(App):
BINDINGS = [
("h", "switch_mode('hamster')", "Hamster"),
("k", "switch_mode('kimai')", "Kimai"),
("q", "quit", "Quit"),
]
def __init__(self, kimai_api=None):
def __init__(self, kimai_api=None, clockify_api=None):
self.add_mode("hamster", HamsterScreen())
self.add_mode("kimai", KimaiScreen())
# self.mode MODES = {
# "hamster": HamsterScreen(),
# "kimai": KimaiScreen(),
# }
self.api = kimai_api
if kimai_api is not None:
self.kimai_api = kimai_api
self.add_mode("kimai", KimaiScreen())
if clockify_api is not None:
self.clockify_api = clockify_api
self.add_mode("clockify", ClockifyProjectScreen())
super().__init__()
@ -33,3 +36,26 @@ class HamsterToolsApp(App):
async def action_quit(self) -> None:
db.close()
self.exit()
class HamsterToolsAppKimai(HamsterToolsApp):
BINDINGS = HamsterToolsApp.BINDINGS + [
("k", "switch_mode('kimai')", "Kimai"),
]
def __init__(self, kimai_api):
self.kimai_api = kimai_api
self.add_mode("kimai", KimaiScreen())
super().__init__()
class HamsterToolsAppClockify(HamsterToolsApp):
BINDINGS = HamsterToolsApp.BINDINGS + [
("c", "switch_mode('clockify_projects')", "Clockify"),
]
def __init__(self, clockify_api):
self.clockify_api = clockify_api
self.add_mode("clockify_projects", ClockifyProjectScreen())
super().__init__()