From 36411c99a70987254873171c2cf6349b39fff7cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Tue, 12 May 2026 18:35:53 +0200 Subject: [PATCH] Version 1.7.0 ## 1.7.0 / 2026-05-12 ### New * Add toast notification system with HTMX middleware integration * Add component system (Cotton-based): button, modal, table_row, search_field, gamelink * Add needs_price_update field to Purchase model for reliable price change detection * Add confirmation dialog before deleting a game * Add game status information documentation (STATUSES.md) * Allow directly updating device in session list via inline selector * Migrate from Poetry to uv for Python dependency management * Scope URLs to the games namespace * Start session template shared between add and edit views ### Improved * Major style overhaul: CSS variables, improved dark mode, Flowbite 4.x upgrade * Improve game status evaluation and add abandon prompt on refund * Robustify Docker container and fix default database location * Make component rendering deterministic for improved caching * Component caching: deterministic randomid generation * Component test suite with 1000+ lines of tests * Make tests more robust with django-pytest * Update NameWithIcon component: testable, fixed platform extraction bug * Pin Caddy version and improve make dev-prod * Add .env.example documenting environment variables * Unify A() component with explicit url_name vs href parameters ### Fixed * Fix refund confirmation not working * Fix stats view missing first and last game values * Fix A() component silent fallback on URL typos * Fix secondary submit buttons not working * Fix button not passing attributes * Fix default mutable arguments in component functions * Fix extra submit button when adding purchase * Fix pointer cursor on search field button ### Removed * Remove GraphQL API ### Dependencies * Update django-ninja to 1.6.2 --- .github/workflows/build-docker.yml | 2 +- CHANGELOG.md | 43 +++++++++++++++++++++++++++--- Dockerfile | 2 +- pyproject.toml | 2 +- 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index 03dfc73..b33abe8 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -33,7 +33,7 @@ jobs: - uses: actions/checkout@v4 - name: Set Version - run: echo "VERSION_NUMBER=1.6.1" >> $GITHUB_ENV + run: echo "VERSION_NUMBER=1.7.0" >> $GITHUB_ENV - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index dfaa79d..9c1c6af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,44 @@ -## Unreleased +## 1.7.0 / 2026-05-12 + +### New +* Add toast notification system with HTMX middleware integration +* Add component system (Cotton-based): button, modal, table_row, search_field, gamelink +* Add needs_price_update field to Purchase model for reliable price change detection +* Add confirmation dialog before deleting a game +* Add game status information documentation (STATUSES.md) +* Allow directly updating device in session list via inline selector +* Migrate from Poetry to uv for Python dependency management +* Scope URLs to the games namespace +* Start session template shared between add and edit views ### Improved -* Add a prompt to set game to Abandoned upon refund +* Major style overhaul: CSS variables, improved dark mode, Flowbite 4.x upgrade +* Improve game status evaluation and add abandon prompt on refund +* Robustify Docker container and fix default database location +* Make component rendering deterministic for improved caching +* Component caching: deterministic randomid generation +* Component test suite with 1000+ lines of tests +* Make tests more robust with django-pytest +* Update NameWithIcon component: testable, fixed platform extraction bug +* Pin Caddy version and improve make dev-prod +* Add .env.example documenting environment variables +* Unify A() component with explicit url_name vs href parameters + +### Fixed +* Fix refund confirmation not working +* Fix stats view missing first and last game values +* Fix A() component silent fallback on URL typos +* Fix secondary submit buttons not working +* Fix button not passing attributes +* Fix default mutable arguments in component functions +* Fix extra submit button when adding purchase +* Fix pointer cursor on search field button + +### Removed +* Remove GraphQL API + +### Dependencies +* Update django-ninja to 1.6.2 ## 1.6.1 / 2026-01-30 11:48+01:00 @@ -161,7 +198,7 @@ * Use the same form when editing a session as when adding a session * Change recent session view to current year instead of last 30 days * Add a hacky way not to reload a page when starting or ending a session (https://git.kucharczyk.xyz/lukas/timetracker/issues/52) -* Improve session list (https://git.kucharczyk.xyz/lukas/timetracker/issues/53) +* Improve session listing (https://git.kucharczyk.xyz/lukas/timetracker/issues/53) ### Fixes diff --git a/Dockerfile b/Dockerfile index 6f66af5..03277ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,7 +49,7 @@ COPY --chown=timetracker:timetracker supervisor.conf /etc/supervisor/conf.d/supe COPY --chown=timetracker:timetracker entrypoint.sh / RUN chmod +x /entrypoint.sh -ENV VERSION_NUMBER=1.6.1 +ENV VERSION_NUMBER=1.7.0 EXPOSE 8000 ENTRYPOINT ["/entrypoint.sh"] diff --git a/pyproject.toml b/pyproject.toml index e8de444..1e5c434 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "timetracker" -version = "1.6.1" +version = "1.7.0" description = "A simple time tracker." authors = [{ name = "Lukáš Kucharczyk", email = "lukas@kucharczyk.xyz" }] requires-python = ">=3.13,<4"