Preliminary clockify support
This commit is contained in:
@ -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__()
|
||||
|
Reference in New Issue
Block a user