Commit Graph

8 Commits

Author SHA1 Message Date
Matthieu B
d91f4dc431 chore(deps): bulk-bump python and npm deps from open dependabot PRs (#1279)
* chore(deps): bulk-bump python and npm deps from open dependabot PRs

Consolidates the 15 currently-open dependabot PRs into a single change so
the maintenance churn lands in one merge instead of fifteen.

Python (uv.lock):
- idna 3.11 -> 3.15 (#1267)
- urllib3 2.6.3 -> 2.7.0 (#1264)
- flask-wtf 1.2.2 -> 1.3.0, sqlalchemy 2.0.48 -> 2.0.50, wtforms 3.2.1 -> 3.2.2 (#1258)
- pyright 1.1.408 -> 1.1.409, pre-commit 4.5.1 -> 4.6.0, ruff 0.15.8 -> 0.15.14 (#1250)
- wlc 1.17.2 -> 2.0.0 (#1248)
- pytest 9.0.2 -> 9.0.3 (#1239)
- cryptography 46.0.6 -> 46.0.7 (#1235)
- cachetools 7.0.1 -> 7.0.5 (#1233)
- plexapi 4.18.0 -> 4.18.1 (#1232)
- requests 2.33.0 -> 2.33.1 (#1231)

npm (app/static):
- flowbite 4.0.1 -> 4.0.2, @tailwindcss/cli 4.2.2 -> 4.3.0, tailwindcss 4.2.2 -> 4.3.0 (#1265)
- tiny-markdown-editor 0.2.25 -> 0.2.27 (#1263)
- @alpinejs/collapse 3.15.9 -> 3.15.12 (#1256)
- alpinejs 3.15.10 -> 3.15.12 (#1255)
- htmx.org 2.0.8 -> 2.0.10 (#1245)

Verified: full pytest suite passes (504 passed, 1 skipped); ty diagnostic
count unchanged vs baseline.

* style: ruff auto-fix import order (I001)

Pre-existing import-sort issues surfaced by the lint CI job on this PR
(main pushes don't run the lint job so they went uncaught).
2026-05-30 14:02:23 +02:00
RicoUHD
4b0eca0d38 style(flask): use dynamic url_for query parameters and optimize context processor imports
- Refactored all cache-busting v arguments in base.html to pass directly through the Flask url_for Jinja function (v=app_version) rather than string concatenation.
- Moved the os import in context_processors.py to the top level scope to avoid redundant runtime overhead on every request.
2026-05-25 17:52:19 +02:00
RicoUHD
a33d79dd45 fix(assets): implement deterministic build lifecycle and dynamic cache busting
- Added dynamic ?v={{ app_version }} cache-busting query strings to all core stylesheet and script references in base.html.
- Created and registered the inject_app_version context processor in app/context_processors.py and app/__init__.py to inject the APP_VERSION environment variable into all templates dynamically.
- Refactored copy-assets.js to detect production context (NODE_ENV=production or DOCKER_BUILD=true) and fail loudly (process.exit(1)) if assets are missing, avoiding silent failures in the build pipeline.
- Set DOCKER_BUILD=true during the Dockerfile asset compilation step to enforce deterministic production build verification.
2026-05-25 17:33:29 +02:00
Matthieu B
73c29458fe fix: resolve all test failures, linting errors, and type errors
- Fix 55 test failures caused by missing request contexts and incorrect
  session_transaction() usage across 8 test files
- Fix ruff import sorting errors and unused imports
- Fix 122 type errors: rename method override parameters to match base
  classes, add None guards for fetchone()/datetime, widen dict type
  annotations, add type: ignore for SQLAlchemy stub limitations
- Add [tool.ty.rules] config to suppress unsupported-base warnings
- Fix _ variable shadowing gettext in wizard routes
- Add noqa: ARG002 for unused method arguments required by base class
2026-03-29 16:20:23 +02:00
Matthieu B
6395ce6263 fix: Handle both ImportError and AttributeError when checking Plus features availability 2025-10-18 17:11:01 +02:00
Matthieu B
a072bdf097 feat: add main side plus features 2025-10-09 12:12:02 +02:00
Matthieu B
01fb8d0fc1 fix: optimise server endpoints 2025-09-11 00:29:10 +02:00
Matthieu B
4889e25d31 Huge rewrite 2025-05-20 13:01:20 +01:00