lukas 1c5bff8651 Fold the six filter bars into a BaseComponent hierarchy
The *FilterBar family (FilterBar / SessionFilterBar / PurchaseFilterBar /
DeviceFilterBar / PlatformFilterBar / PlayEventFilterBar) previously shared
the collapsible chrome through a free `_filter_bar(fields, ...)` helper that
each function called at the end. Replace that with a `_FilterBarBase`
BaseComponent: it owns the chrome render() and declares `media =
_FILTER_BAR_MEDIA`, and each bar is now a subclass implementing
`build_fields()`.

The per-entity field-building bodies move verbatim into module-level
`_<entity>_fields(existing, ...)` functions that each subclass delegates to,
so the large bodies are untouched (no reindentation) and the diff stays
reviewable. Media still bubbles: BaseComponent.collect_media() merges the
bar's own filter_bar.js with the search_select.js / range_slider.js /
date_range_picker.js declared by the contained widgets.

Call sites are unchanged — `FilterBar(filter_json=..., preset_list_url=...)`
now instantiates a Node instead of calling a function, and both `str(bar)`
and `collect_media(bar)` behave as before.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 14:46:16 +02:00
2024-11-09 11:56:20 +01:00
2023-01-16 19:46:15 +01:00
2025-03-22 20:58:30 +01:00
2026-05-12 16:29:34 +00:00
2023-11-16 16:30:17 +01:00
2026-05-12 16:29:34 +00:00
2024-08-08 14:48:20 +02:00
2026-06-09 08:47:20 +02:00
2026-05-12 16:29:34 +00:00
2026-05-12 16:29:34 +00:00
2026-05-12 18:36:46 +02:00
2024-11-09 11:56:20 +01:00
2023-01-20 17:15:53 +01:00
2026-05-12 18:36:46 +02:00
2026-05-12 16:29:34 +00:00
2026-06-12 22:45:25 +02:00
2024-08-11 17:24:26 +02:00
2026-02-17 22:14:16 +01:00
2026-06-09 12:47:44 +02:00
2026-06-02 15:07:53 +02:00
2026-06-09 12:47:44 +02:00

Timetracker

A simple game catalogue and play session tracker.

Development

The project uses uv to manage Python versions and dependencies. Simply run:

make init

This installs the correct Python version, syncs all dependencies, and installs npm packages. Afterwards, you can start the development server using make dev.

S
Description
No description provided
Readme 15 MiB
2026-05-12 16:36:46 +00:00
Languages
Python 62.4%
JavaScript 17.5%
CSS 14.9%
HTML 3.8%
TypeScript 0.6%
Other 0.7%