lukas
eae020fd34
Add component tests
2026-05-12 09:43:45 +02:00
lukas
1f4dd60c54
Fix default mutable arguments
...
`attributes: list[HTMLAttribute] = []` and `children: list[HTMLTag] | HTMLTag = []` are a classic Python gotcha — the default is shared across all callers and could silently corrupt state if ever mutated in place. Changed 8 functions (`Component`, `Popover`, `A`, `Button`, `Div`, `Input`, `Form`, `Icon`) to use the `None` sentinel pattern, preventing future bugs and eliminating linter warnings.
2026-05-12 09:39:43 +02:00
lukas
656a96f55c
Fix A() component
...
Replaced single `url` parameter with explicit `url_name` (URL pattern name resolved via `reverse()`) and `href` (literal path). Fixes:
- Silent fallback (typos like `"ad_puchase"` silently became broken links) → now raises `NoReverseMatch` at render time
- `type(url) is str` gate → removed (implicit dual-mode eliminated entirely)
- Callable parameter (`url: Callable`) dead code → removed
- Implicit dual-mode (`url="name"` vs `url=reverse("name")`) → `url_name` vs `href` are now mutually exclusive params
- Inconsistent type annotation mixing `Callable` with string default → cleaned up
- Added `ValueError` when both `url_name` and `href` are provided
- Updated all 10 call sites across 6 view files and internal callers (`LinkedPurchase()`, `NameWithIcon()`)
2026-05-12 09:01:05 +02:00
lukas
8c3e819a5f
Consistent component return type
2026-05-12 08:43:39 +02:00
lukas
ebef0bba87
Make randomid deterministic to improve caching
2026-05-12 08:27:11 +02:00
lukas
140f3d2bd6
Add caching tests
2026-05-12 08:21:48 +02:00
lukas
245a4f5b3e
Add component improvement doc
2026-05-12 08:10:46 +02:00
lukas
cd9f0b4111
Caching 1/?
2026-05-12 08:10:33 +02:00
lukas
f82c61ef1e
Add toast notification system
...
Django CI/CD / test (push) Successful in 35s
Django CI/CD / build-and-push (push) Successful in 54s
Add more toast types
2026-05-11 20:22:23 +02:00
lukas
0986e59fe7
Improve styles
Django CI/CD / test (push) Successful in 30s
Django CI/CD / build-and-push (push) Successful in 1m4s
2026-02-18 23:30:30 +01:00
lukas
996c0107c9
Housekeeping
...
* Updated flowbite to 4.x
* Start revamping styles
* Remove unused GraphQL code
* Make some templates more robuts
2026-02-17 22:14:16 +01:00
lukas
4e3a5ef682
Make buttons use pointer cursor
2026-01-30 11:45:42 +01:00
lukas
016f307240
Upgrade to Tailwind v4
2026-01-29 13:17:04 +01:00
lukas
06096d471e
Improve dark/light mode
2026-01-27 19:28:05 +01:00
lukas
b29e4edd72
Continue making use of improved duration handling
Django CI/CD / test (push) Successful in 1m5s
Django CI/CD / build-and-push (push) Successful in 2m22s
2025-03-25 23:38:04 +01:00
lukas
89de85c00d
Introduce game status, playevents
Django CI/CD / test (push) Successful in 1m10s
Django CI/CD / build-and-push (push) Successful in 2m21s
2025-03-22 20:59:23 +01:00
lukas
843eed64d6
Add search field to game list
Django CI/CD / test (push) Successful in 1m7s
Django CI/CD / build-and-push (push) Successful in 2m1s
2025-02-10 18:20:46 +01:00
lukas
2ab497fd54
Also theme password fields
2025-02-07 20:20:33 +01:00
lukas
34148466c7
Improve forms
Django CI/CD / test (push) Successful in 1m17s
Django CI/CD / build-and-push (push) Successful in 2m10s
2025-02-04 20:09:25 +01:00
lukas
637e3e6493
Specifying name on NameWithIcon now works
2025-02-01 10:01:56 +01:00
lukas
6bd8271291
Remove Edition
Django CI/CD / test (push) Failing after 54s
Django CI/CD / build-and-push (push) Has been skipped
2025-01-29 22:05:06 +01:00
lukas
e571feadef
Add platform to Game
2025-01-29 18:42:13 +01:00
lukas
ba6028e43d
Add emulated property to sessions
Django CI/CD / test (push) Successful in 1m16s
Django CI/CD / build-and-push (push) Has been cancelled
2025-01-29 13:43:35 +01:00
lukas
c2853a3ecc
purchases can now refer to multiple editions
...
Django CI/CD / test (push) Successful in 1m3s
Django CI/CD / build-and-push (push) Successful in 2m36s
allows purchases to be for more than one game
2025-01-08 21:00:19 +01:00
lukas
fc0d8db8e8
consistently format prices everywhere
Django CI/CD / test (push) Successful in 1m7s
Django CI/CD / build-and-push (push) Successful in 2m10s
2024-11-15 22:53:07 +01:00
lukas
6b7a96dc06
make PopoverTruncated customizable
2024-11-13 21:28:17 +01:00
lukas
5c5fd5f26a
truncate: strip trailing whitespace
2024-11-13 21:07:26 +01:00
lukas
7181b6472c
fix mistakenly hardcoded value in truncate()
2024-11-13 21:06:52 +01:00
lukas
a3ed93c154
handle non-existent icons
Django CI/CD / test (push) Successful in 1m15s
Django CI/CD / build-and-push (push) Has been cancelled
2024-11-09 21:30:13 +00:00
lukas
f8d621e710
fix stat dropdown
Django CI/CD / test (push) Successful in 1m16s
Django CI/CD / build-and-push (push) Successful in 2m7s
2024-10-16 18:31:12 +02:00
lukas
0759ad0804
make purchase price a float
2024-10-16 17:45:23 +02:00
lukas
b0b1bb2d42
add icon field to platform, use everywhere
2024-10-16 17:45:23 +02:00
lukas
c40764a02f
fix bug in Component
...
A leftover from when there was only the A component function,
this bug was not found earlier because we used
templates instead of tags most of the time.
2024-09-14 10:40:03 +02:00
lukas
58cfaca1a9
add table header actions
Django CI/CD / test (push) Successful in 1m3s
Django CI/CD / build-and-push (push) Successful in 2m23s
2024-09-08 21:03:37 +02:00
lukas
5eee7176d4
add streak-releted basic functionality
2024-09-04 21:58:56 +02:00
lukas
98c9c1faee
move time-related functionality out of views.general
Django CI/CD / test (push) Successful in 58s
Django CI/CD / build-and-push (push) Successful in 1m52s
2024-09-04 21:55:22 +02:00
lukas
4358708262
add links to add a new X to: game, edition, purchase, session, device, platform
Django CI/CD / test (push) Successful in 55s
Django CI/CD / build-and-push (push) Successful in 1m57s
2024-09-03 15:48:58 +02:00
lukas
e067e65bce
linkify game, edition, purchase, session references
...
Django CI/CD / test (push) Successful in 1m0s
Django CI/CD / build-and-push (push) Has been cancelled
also add link styles for links in a table row
2024-09-02 20:04:21 +02:00
lukas
b8258e2937
replace slippers with django-cotton
...
Django CI/CD / test (push) Successful in 59s
Django CI/CD / build-and-push (push) Successful in 2m4s
main reason: slippers cannot pass request via context inside its
components, making it annoying to use template takes that take request.
more reasons: not actively worked on, no named slots, having to define
components in components.yaml + new components do not get registered
without restarting server
2024-09-02 17:43:41 +02:00
lukas
3099f02145
list editions
2024-08-11 20:21:27 +02:00
lukas
d84b67c460
improve pagination
2024-08-09 11:47:10 +02:00
lukas
25deac6ea9
add more types
2024-08-08 21:19:43 +02:00
lukas
3de40ccad3
create purchase list without paging
2024-08-08 20:17:43 +02:00
lukas
e19caf47bf
Make game overview more appealing
Django CI/CD / build-and-push (push) Blocked by required conditions
Django CI/CD / test (push) Has been cancelled
2024-07-09 23:03:03 +02:00
lukas
72998ffc02
Fix incorrect font name
2024-07-09 20:38:03 +02:00
lukas
ba44814474
Improve game links
Django CI/CD / test (push) Successful in 1m6s
Django CI/CD / build-and-push (push) Successful in 1m56s
2024-07-09 19:40:47 +02:00
lukas
44c70a5ee7
Formatting
Django CI/CD / test (push) Successful in 1m21s
Django CI/CD / build-and-push (push) Successful in 1m57s
2024-06-03 18:19:11 +02:00
lukas
dc1a9d5c4f
Make sure attribute chains are evaluated safely
2024-05-30 14:26:38 +02:00
lukas
d02a60675f
Render notes as Markdown
Django CI/CD / test (push) Failing after 1m5s
Django CI/CD / build-and-push (push) Has been skipped
2024-02-09 21:37:39 +01:00
lukas
9fccdfbff0
Make links colorful
2023-11-20 23:07:11 +01:00