lukas ab4dae55eb feat(filters): date-range filtering on PlayEventFilter.started/ended (#67)
Change PlayEventFilter.started/ended from StringCriterion to DateCriterion
so they support GREATER_THAN / LESS_THAN / BETWEEN, enabling
"finished in year Y" to be expressed through the filter system.

PlayEvent.started/ended are DateField columns, so the criteria apply with
bare field names (no __date lookup, unlike SessionFilter.timestamp_start
which is a datetime). This mirrors the existing PurchaseFilter DateField
precedent. Deserialization auto-switches via the field annotation and the
serialized JSON shape is unchanged, so the type change is backward-compatible.

Prerequisite for #65 Tier-2 stats-page filtered links. Part of #61.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 11:47:39 +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-06-19 11:28:16 +02:00
2024-08-08 14:48:20 +02:00
2026-06-19 12:37:25 +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
2024-08-11 17:24:26 +02:00
2026-06-09 12:47:44 +02:00
2026-06-02 15:07:53 +02:00
2026-06-19 12:36:40 +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 16 MiB
2026-05-12 16:36:46 +00:00
Languages
Python 76.1%
JavaScript 9.5%
TypeScript 9.3%
HTML 3.9%
CSS 0.4%
Other 0.8%