API improvements
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
from textual.app import ComposeResult
|
||||
from textual.coordinate import Coordinate
|
||||
from textual.binding import Binding
|
||||
from textual.screen import Screen
|
||||
from textual.widgets import DataTable, TabbedContent, TabPane, Header, Footer
|
||||
@ -12,6 +13,9 @@ from ..db import (
|
||||
KimaiCustomer,
|
||||
KimaiActivity,
|
||||
)
|
||||
from ..kimaiapi import (
|
||||
Timesheet as KimaiAPITimesheet
|
||||
)
|
||||
|
||||
from .list import ListPane
|
||||
|
||||
@ -89,6 +93,7 @@ class KimaiActivityList(ListPane):
|
||||
("s", "sort", "Sort"),
|
||||
("r", "refresh", "Refresh"),
|
||||
("g", "get", "Get data"),
|
||||
("#", "count", "Count"),
|
||||
("/", "filter", "Search"),
|
||||
Binding(key="escape", action="cancelfilter", show=False),
|
||||
]
|
||||
@ -122,6 +127,7 @@ class KimaiActivityList(ListPane):
|
||||
activity.id,
|
||||
truncate(activity.name, 40),
|
||||
activity.visible,
|
||||
'?'
|
||||
]
|
||||
for activity in activities
|
||||
]
|
||||
@ -144,10 +150,23 @@ class KimaiActivityList(ListPane):
|
||||
"id",
|
||||
"name",
|
||||
"visible",
|
||||
"times",
|
||||
)
|
||||
self.sort = (self.columns[1], self.columns[3])
|
||||
self._refresh()
|
||||
|
||||
def action_count(self) -> None:
|
||||
row_idx: int = self.table.cursor_row
|
||||
row_cells = self.table.get_row_at(row_idx)
|
||||
|
||||
activity_id = row_cells[2]
|
||||
count = len(KimaiAPITimesheet.list_by(self.app.api, activity=activity_id))
|
||||
|
||||
self.table.update_cell_at(
|
||||
Coordinate(row_idx, 5),
|
||||
count
|
||||
)
|
||||
|
||||
|
||||
class KimaiScreen(Screen):
|
||||
BINDINGS = [
|
||||
|
Reference in New Issue
Block a user