14 Commits

Author SHA1 Message Date
c1230c0c86 new page and nav system
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-04-03 21:03:52 +03:00
65e029a417 separate css into separate file
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-04-02 23:20:44 +03:00
f820e86277 steam sync
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2026-04-02 21:11:54 +03:00
457b8c8443 added user profile page
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2026-04-02 20:06:38 +03:00
b723214c86 Add completion animation and ding sound on Done button
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Intercepts the Done form submit, plays a two-note ding via Web Audio
API (no audio file), animates the card with a white glow + scale, then
submits after 680ms. Only fires for completion, not abandon or delete.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 23:59:09 +03:00
b289e7c7fe Refactor item form visibility to data-attribute driven JS
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Replace hardcoded id-based section lookup with declarative rules:
- data-show-category="games|books|films" on sections
- data-hide-status="unending" on individual fields

JS now has a single updateVisibility() that evaluates attributes.
Adding new conditions only requires touching HTML, not JS.

Also hides Progress and Total Hours for unending items.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 23:55:47 +03:00
2e0ca22dd9 Fix unending: shelf status, not category
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Unending belongs in STATUS_CHOICES alongside completed/abandoned.
Adds an Unending shelf tab and an ∞ button on active game cards.
Reverts the incorrect category addition from the previous commit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 23:32:09 +03:00
b765067c5b Add unending category for session-based games
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
For games like Dota 2 that have no completion state — shows hours
played on the card, reuses the games fields in the form (hours played
/ total hours), and gets its own cyan badge. No DB column change,
only choices metadata update.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 23:25:41 +03:00
da11a056ed Add completed/abandoned shelves with status transitions
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Items can be moved to Completed or Abandoned via card buttons.
Only active items appear in the default/category tabs; completed and
abandoned items are visible only in their respective shelf tabs.
Restore button moves items back to active.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 23:19:10 +03:00
ffcd8c40b4 Add HowLongToBeat estimates to game cards
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
- Fetch HLTB main/extra/completionist hours when a game item is saved
- Re-fetch only when name or category changes on edit
- Steam imports also fetch HLTB for each selected game
- Cards show compact HLTB row: "HLTB: 40h · +extra 60h · 100% 100h"
- Edit form shows HLTB breakdown as a hint next to Total hours field

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:04:36 +03:00
a4c31bf40b Add Steam library import via OpenID
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Steam OpenID flow: user authenticates with Steam, we get their Steam ID
- Server-side API key fetches their owned games with playtime
- Import page shows full library, marks already-imported games
- Imported games land in backlog as GAMES items with hours_played set
- STEAM_API_KEY env var plumbed into both prod and dev containers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:38:28 +03:00
8f34d9388f Fix logout 405: use POST form instead of GET link
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Django 5+ LogoutView rejects GET requests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:23:32 +03:00
80f5335886 add sign up process for backlogger
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2026-03-31 21:45:29 +03:00
a8ab5f6ce1 Add backlogger app at /backlogger/ with login protection
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Django app with Item model (games/books/films/other categories), CRUD
views, and login-required access. Login page at /accounts/login/ uses
custom dark-themed template consistent with the site design.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 22:18:32 +03:00