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

@ -0,0 +1,24 @@
from textual.app import ComposeResult
from textual.containers import VerticalScroll
from textual.screen import Screen
from textual.widgets import DataTable, Header, Footer
from hamstertools.db import ClockifyProject
class ClockifyProjectScreen(Screen):
"""Screen for listing Clockify projects"""
BINDINGS = [("q", "quit", "Quit")]
def compose(self) -> ComposeResult:
yield Header()
yield VerticalScroll(DataTable())
yield Footer()
def on_mount(self) -> None:
table = self.query_one(DataTable)
table.add_columns("ID", "Name", "Workspace ID")
for project in ClockifyProject.select():
table.add_row(project.clockify_id, project.name, project.workspace_id)