Commit Graph
1675 Commits
Author SHA1 Message Date
a5ea65aa45 fix(report): support S3 cloud media storage for report and label template loading (#12426) (#12943)
* fix(report): support S3 cloud media storage for report and label template loading (#12426)

- Prevent TemplateDoesNotExist when using cloud storage backends (e.g. S3 via django-storages)
- Update TemplateUploadMixin.template_name to return relative storage path when local file does not exist on disk
- Implement ReportTemplateBase.get_template_content() to load content from storage backend and resolve bucket/location prefix mismatches
- Add fallback in ReportTemplateBase.render_as_string() to render from storage content when template loader lookup fails
- Register InvenTreeStorageTemplateLoader to allow template snippets to resolve directly from default_storage
- Add unit tests in S3ReportTemplateTest covering prefix resolution, remote rendering, and storage template loading

* fix style

* remove weasyprint unavailable hacks

this is unrealstic in a full enviroment; the only reason for this is some very constraint sandbox - which is not our run enviroment

* fix import

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-10-14 10:02:04 +11:00
Oliver 29eb9632ac Prevent deletion of line items which have received stock (#13004)
* Prevent deletion of line items which have received stock

* Revert docstring changes
2026-10-14 10:00:51 +11:00
Oliver 445fa3e125 Check user permissions before locating stock (#13000)
* Check user permissions before locating stock

* Update unit test
2026-10-13 22:59:17 +11:00
Oliver c3917c343b Fix 'get_required_quantity' method (#13002)
- Ensure a Decimal is returned in all cases
- Fix type hinting
- Updated unit tests
2026-10-13 22:37:09 +11:00
Oliver 788b291a21 Plugin reload limitations (#13007)
* Improve auto-reload of plugin

Ensure entire module is reloaded

* Add regression tests

* Updated docs

* Detect plugin reload loop - and report error
2026-10-13 20:46:02 +11:00
Oliver 34ea373d88 Improve status code comparison (#13006)
Fixes bug caused by override of BaseEnum.__new__ which broke comparison of status code values
2026-10-13 20:45:44 +11:00
Matthias Mair 7e89e93252 feat(backend): mark setting when changed via API (#12982)
* mark setting when changed via API

might be helpful for https://github.com/inventree/InvenTree/issues/12767

* add migration

* fix migration

* use atomic instead

* move atomic

* move the transaction safety to be migration specific

* reduce diff

* make write safe

* remove migration_safe_query again

* use a simpler approach in the squashed migration

* try using a manager

* add update / updated_by to api

* update generic settings api to handle updated_by field
2026-10-13 20:44:58 +11:00
Oliver 76a21b7899 Fix MPTT check for BOM validity (#13008)
Use refreshed DB values rather than validating against in-memory values
2026-10-13 20:44:27 +11:00
Oliver fa04bcc455 Fix consume_build_stock (#13003)
Fixes concurrent or repeated calls to consume_build_stock, making this method idempotent

Also adds regression testing
2026-10-13 16:58:25 +11:00
e0f3d293d3 chore(deps): bump the dependencies group across 2 directories with 21 updates (#12984)
* chore(deps): bump the dependencies group across 2 directories with 21 updates

Bumps the dependencies group with 2 updates in the /contrib/dev_reqs directory: [uv](https://github.com/astral-sh/uv) and [pip](https://github.com/pypa/pip).
Bumps the dependencies group with 19 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [boto3](https://github.com/boto/boto3) | `1.43.102` | `1.43.107` |
| [botocore](https://github.com/boto/botocore) | `1.43.102` | `1.43.107` |
| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.5.1` | `3.5.2` |
| [cryptography](https://github.com/pyca/cryptography) | `50.0.1` | `50.0.2` |
| [fonttools](https://github.com/fonttools/fonttools) | `4.66.0` | `4.66.1` |
| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.4` | `1.75.5` |
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.14` | `4.12.2` |
| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.5` | `2.49.0` |
| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.15.0` | `2.15.1` |
| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.3` | `1.2.4` |
| [python-ipware](https://github.com/un33k/python-ipware) | `4.1.0` | `4.1.1` |
| [scim2-models](https://github.com/python-scim/scim2-models) | `0.6.12` | `0.10.2` |
| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.70.0` | `2.71.0` |
| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.4.1` | `2.5.0` |
| [coverage](https://github.com/coveragepy/coveragepy) | `7.16.1` | `7.16.2` |
| [isort](https://github.com/PyCQA/isort) | `9.0.1` | `9.0.2` |
| [prek](https://github.com/j178/prek) | `0.5.3` | `0.5.4` |
| [scim2-client](https://github.com/python-scim/scim2-client) | `0.7.5` | `0.11.2` |
| [scim2-tester](https://github.com/python-scim/scim2-tester) | `0.2.8` | `0.5.0` |



Updates `uv` from 0.12.19 to 0.12.22
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/0.12.22/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.12.19...0.12.22)

Updates `pip` from 26.2.1 to 
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/commits)

Updates `boto3` from 1.43.102 to 1.43.107
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.43.102...1.43.107)

Updates `botocore` from 1.43.102 to 1.43.107
- [Commits](https://github.com/boto/botocore/compare/1.43.102...1.43.107)

Updates `charset-normalizer` from 3.5.1 to 3.5.2
- [Release notes](https://github.com/jawah/charset_normalizer/releases)
- [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jawah/charset_normalizer/compare/3.5.1...3.5.2)

Updates `cryptography` from 50.0.1 to 50.0.2
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/50.0.1...50.0.2)

Updates `fonttools` from 4.66.0 to 4.66.1
- [Release notes](https://github.com/fonttools/fonttools/releases)
- [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst)
- [Commits](https://github.com/fonttools/fonttools/compare/4.66.0...4.66.1)

Updates `googleapis-common-protos` from 1.75.4 to 1.75.5
- [Release notes](https://github.com/googleapis/google-cloud-python/releases)
- [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.75.4...googleapis-common-protos-v1.75.5)

Updates `platformdirs` from 4.11.14 to 4.12.2
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/platformdirs/compare/4.11.14...4.12.2)

Updates `pydantic-core` from 2.46.5 to 2.49.0
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/core-v2.46.5...core-v2.49.0)

Updates `pyjwt` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.15.0...2.15.1)

Updates `python-dotenv` from 1.2.3 to 1.2.4
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.2.3...v1.2.4)

Updates `python-ipware` from 4.1.0 to 4.1.1
- [Release notes](https://github.com/un33k/python-ipware/releases)
- [Changelog](https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md)
- [Commits](https://github.com/un33k/python-ipware/compare/v4.1.0...v4.1.1)

Updates `scim2-models` from 0.6.12 to 0.10.2
- [Release notes](https://github.com/python-scim/scim2-models/releases)
- [Changelog](https://github.com/python-scim/scim2-models/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-models/compare/0.6.12...0.10.2)

Updates `sentry-sdk` from 2.70.0 to 2.71.0
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.70.0...2.71.0)

Updates `wrapt` from 2.4.1 to 2.5.0
- [Release notes](https://github.com/GrahamDumpleton/wrapt/releases)
- [Changelog](https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst)
- [Commits](https://github.com/GrahamDumpleton/wrapt/compare/2.4.1...2.5.0)

Updates `coverage` from 7.16.1 to 7.16.2
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.16.1...7.16.2)

Updates `isort` from 9.0.1 to 9.0.2
- [Release notes](https://github.com/PyCQA/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/PyCQA/isort/compare/9.0.1...9.0.2)

Updates `prek` from 0.5.3 to 0.5.4
- [Release notes](https://github.com/j178/prek/releases)
- [Changelog](https://github.com/j178/prek/blob/master/CHANGELOG.md)
- [Commits](https://github.com/j178/prek/compare/v0.5.3...v0.5.4)

Updates `scim2-client` from 0.7.5 to 0.11.2
- [Release notes](https://github.com/python-scim/scim2-client/releases)
- [Changelog](https://github.com/python-scim/scim2-client/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-client/compare/0.7.5...0.11.2)

Updates `scim2-tester` from 0.2.8 to 0.5.0
- [Release notes](https://github.com/python-scim/scim2-tester/releases)
- [Changelog](https://github.com/python-scim/scim2-tester/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-tester/compare/0.2.8...0.5.0)

---
updated-dependencies:
- dependency-name: uv
  dependency-version: 0.12.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pip
  dependency-version:
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.43.107
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.43.107
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: charset-normalizer
  dependency-version: 3.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: cryptography
  dependency-version: 50.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: fonttools
  dependency-version: 4.66.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: googleapis-common-protos
  dependency-version: 1.75.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: platformdirs
  dependency-version: 4.12.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: pydantic-core
  dependency-version: 2.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: pyjwt
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: python-dotenv
  dependency-version: 1.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: python-ipware
  dependency-version: 4.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: scim2-models
  dependency-version: 0.10.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: sentry-sdk
  dependency-version: 2.71.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: wrapt
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: coverage
  dependency-version: 7.16.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: isort
  dependency-version: 9.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: prek
  dependency-version: 0.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: scim2-client
  dependency-version: 0.11.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: scim2-tester
  dependency-version: 0.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix style

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-10-13 14:01:53 +11:00
ea043f50b0 Fix missing call to str.strip() in get_next_reference (#12966)
The missing call would throw a TypeError, but that was later on swallowed, so the code would fall back to `reference_int` and never used the configured reference pattern

Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-10-13 13:40:53 +11:00
Oliver cdaf6e3aa6 More robust HTML sanitizing in reports (#12997) 2026-10-13 13:40:31 +11:00
Oliver bdcba5cbb9 Use django function for secret_key generation (#12999) 2026-10-13 13:15:06 +11:00
MHandMatthias Mair 2341d5ff44 Add missing timeout to Slack notification plugin (#12990)
Co-authored-by: Matthias Mair <code@mjmair.com>
2026-10-13 10:11:56 +11:00
Matthias Mair 104adebbf4 fix style nitpicks (#12995)
* disable restriction (for now)

* reduce duplication

* remove duplication in scim view

* fix diff

* fix reassign

* remove statment that is always wrong

* log with full context

* allign order to anguage defaults

* adress shelldre:S7688
2026-10-13 10:02:02 +11:00
Matthias Mair 600dc1a75b feat(frontend): optional nav tree sidebyside (#12974)
* disable restriction (for now)

* add option for a permanent navigation tree

* revert unintended change

* adjust search text to be less confusing when pinned
2026-10-13 09:26:57 +11:00
Bhumin PaladiyaandMatthias Mair db90e48a7d Fix admin search and autocomplete for Owner model (#12987)
Owner uses a GenericForeignKey to User or Group where 'name' is a method rather than a database field. Standard Django admin search caused FieldError when autocomplete looked up the responsible field. Implemented custom get_search_results on OwnerAdmin to properly filter User and Group instances and map them to Owner records.

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-10-13 09:09:07 +11:00
Joe RogersandMatthias Mair cbcb81f3d7 Add missing schema nullable tags (#12986)
* Synchronize detail field nullable state with model user fields

* Make me-user roles field nullable/non-required

* Make client-secret nullable

* Update api version

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-10-13 09:08:07 +11:00
Matthias Mair 3e367df724 reduce ci time (#12985)
* we are currently locking on olugin lease for 2 mins per ci setup; not good

* fix syntax

* move setting

* fix assign syntax

* reduce noice while setting up
2026-10-12 19:09:20 +11:00
Matthias Mair ead118cec5 chore(backend): bump scim lib version (#12991)
* bump scim version

* fix test; no httpx anymore
2026-10-12 13:20:52 +11:00
github-actions[bot] fcd8af4283 New Crowdin translations by GitHub Action (#12942)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-10 05:57:44 +12:00
ceccf768c3 Fix data import with S3 storage backend (#12973)
* Fix data import with S3 storage backend

Fixes #11117

* Fix formatting

* fix formatting

---------

Co-authored-by: mg <mg@layerx-defence.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-10-09 19:52:18 +12:00
Matthias Mair 5a2d223cd0 use mixin instead of repeating patterns (#12977) 2026-10-08 20:26:25 +12:00
dependabot[bot]andMatthias Mair df579c094b chore(deps): bump the dependencies group across 2 directories with 28 updates (#12968)
* chore(deps): bump the dependencies group across 2 directories with 28 updates

Bumps the dependencies group with 3 updates in the /contrib/dev_reqs directory: [uv](https://github.com/astral-sh/uv), [jc](https://github.com/kellyjonbrazil/jc) and [pip](https://github.com/pypa/pip).
Bumps the dependencies group with 25 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [boto3](https://github.com/boto/boto3) | `1.43.97` | `1.43.102` |
| [botocore](https://github.com/boto/botocore) | `1.43.97` | `1.43.102` |
| [django-ipware](https://github.com/un33k/django-ipware) | `7.0.1` | `8.0.0` |
| [django-js-asset](https://github.com/feincms/django-js-asset) | `4.1.0` | `4.2.0` |
| [fonttools](https://github.com/fonttools/fonttools) | `4.65.0` | `4.66.0` |
| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.3` | `1.75.4` |
| [markdown](https://github.com/Python-Markdown/markdown) | `3.10.3` | `3.11` |
| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |
| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |
| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |
| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.65b0` | `0.66b0` |
| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.65b0` | `0.66b0` |
| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` |
| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.65b0` | `0.66b0` |
| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.65b0` | `0.66b0` |
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.10` | `4.11.14` |
| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.5` | `2.49.0` |
| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.14.0` | `2.15.0` |
| [python-ipware](https://github.com/un33k/python-ipware) | `3.0.0` | `4.1.0` |
| [scim2-models](https://github.com/python-scim/scim2-models) | `0.6.12` | `0.8.1` |
| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.69.2` | `2.70.0` |
| [wcwidth](https://github.com/jquast/wcwidth) | `0.8.4` | `0.9.1` |
| [django-test-migrations](https://github.com/wemake-services/django-test-migrations) | `1.6.0` | `1.7.0` |
| [scim2-client](https://github.com/python-scim/scim2-client) | `0.7.5` | `0.9.0` |
| [scim2-tester](https://github.com/python-scim/scim2-tester) | `0.2.8` | `0.4.0` |



Updates `uv` from 0.12.16 to 0.12.19
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.12.16...0.12.19)

Updates `jc` from 1.25.7 to 1.26.0
- [Release notes](https://github.com/kellyjonbrazil/jc/releases)
- [Changelog](https://github.com/kellyjonbrazil/jc/blob/master/CHANGELOG)
- [Commits](https://github.com/kellyjonbrazil/jc/compare/v1.25.7...v1.26.0)

Updates `pip` from 26.2.1 to 
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/commits)

Updates `boto3` from 1.43.97 to 1.43.102
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.43.97...1.43.102)

Updates `botocore` from 1.43.97 to 1.43.102
- [Commits](https://github.com/boto/botocore/compare/1.43.97...1.43.102)

Updates `django-ipware` from 7.0.1 to 8.0.0
- [Release notes](https://github.com/un33k/django-ipware/releases)
- [Changelog](https://github.com/un33k/django-ipware/blob/master/CHANGELOG.md)
- [Commits](https://github.com/un33k/django-ipware/compare/v7.0.1...v8.0.0)

Updates `django-js-asset` from 4.1.0 to 4.2.0
- [Changelog](https://github.com/feincms/django-js-asset/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/feincms/django-js-asset/compare/4.1...4.2)

Updates `fonttools` from 4.65.0 to 4.66.0
- [Release notes](https://github.com/fonttools/fonttools/releases)
- [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst)
- [Commits](https://github.com/fonttools/fonttools/compare/4.65.0...4.66.0)

Updates `googleapis-common-protos` from 1.75.3 to 1.75.4
- [Release notes](https://github.com/googleapis/google-cloud-python/releases)
- [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.75.3...googleapis-common-protos-v1.75.4)

Updates `markdown` from 3.10.3 to 3.11
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.10.3...3.11.0)

Updates `opentelemetry-exporter-otlp-proto-common` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.44.0...v1.45.0)

Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.44.0...v1.45.0)

Updates `opentelemetry-exporter-otlp-proto-http` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.44.0...v1.45.0)

Updates `opentelemetry-instrumentation` from 0.65b0 to 0.66b0
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `opentelemetry-instrumentation-dbapi` from 0.65b0 to 0.66b0
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `opentelemetry-proto` from 1.44.0 to 1.45.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.44.0...v1.45.0)

Updates `opentelemetry-semantic-conventions` from 0.65b0 to 0.66b0
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/commits)

Updates `opentelemetry-util-http` from 0.65b0 to 0.66b0
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `platformdirs` from 4.11.10 to 4.11.14
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/platformdirs/compare/4.11.10...4.11.14)

Updates `pydantic-core` from 2.46.5 to 2.49.0
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/commits)

Updates `pyjwt` from 2.14.0 to 2.15.0
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0)

Updates `python-ipware` from 3.0.0 to 4.1.0
- [Release notes](https://github.com/un33k/python-ipware/releases)
- [Changelog](https://github.com/un33k/python-ipware/blob/main/CHANGELOG.md)
- [Commits](https://github.com/un33k/python-ipware/compare/v3.0.0...v4.1.0)

Updates `scim2-models` from 0.6.12 to 0.8.1
- [Release notes](https://github.com/python-scim/scim2-models/releases)
- [Changelog](https://github.com/python-scim/scim2-models/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-models/compare/0.6.12...0.8.1)

Updates `sentry-sdk` from 2.69.2 to 2.70.0
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.69.2...2.70.0)

Updates `wcwidth` from 0.8.4 to 0.9.1
- [Release notes](https://github.com/jquast/wcwidth/releases)
- [Changelog](https://github.com/jquast/wcwidth/blob/master/docs/history.rst)
- [Commits](https://github.com/jquast/wcwidth/compare/0.8.4...0.9.1)

Updates `django-test-migrations` from 1.6.0 to 1.7.0
- [Release notes](https://github.com/wemake-services/django-test-migrations/releases)
- [Changelog](https://github.com/wemake-services/django-test-migrations/blob/master/CHANGELOG.md)
- [Commits](https://github.com/wemake-services/django-test-migrations/compare/1.6.0...1.7.0)

Updates `scim2-client` from 0.7.5 to 0.9.0
- [Release notes](https://github.com/python-scim/scim2-client/releases)
- [Changelog](https://github.com/python-scim/scim2-client/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-client/compare/0.7.5...0.9.0)

Updates `scim2-tester` from 0.2.8 to 0.4.0
- [Release notes](https://github.com/python-scim/scim2-tester/releases)
- [Changelog](https://github.com/python-scim/scim2-tester/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-tester/compare/0.2.8...0.4.0)

---
updated-dependencies:
- dependency-name: uv
  dependency-version: 0.12.19
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: jc
  dependency-version: 1.26.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: pip
  dependency-version:
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.43.102
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.43.102
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-ipware
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: django-js-asset
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: fonttools
  dependency-version: 4.66.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: googleapis-common-protos
  dependency-version: 1.75.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: markdown
  dependency-version: '3.11'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-common
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-grpc
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-http
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation
  dependency-version: 0.66b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation-dbapi
  dependency-version: 0.66b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-proto
  dependency-version: 1.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-semantic-conventions
  dependency-version: 0.66b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-util-http
  dependency-version: 0.66b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: platformdirs
  dependency-version: 4.11.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pydantic-core
  dependency-version: 2.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: pyjwt
  dependency-version: 2.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: python-ipware
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: scim2-models
  dependency-version: 0.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: sentry-sdk
  dependency-version: 2.70.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: wcwidth
  dependency-version: 0.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: django-test-migrations
  dependency-version: 1.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: scim2-client
  dependency-version: 0.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: scim2-tester
  dependency-version: 0.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix style

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
2026-10-08 20:24:07 +12:00
Matthias Mair 800cbe0d30 fix fronten tests failing (#12976) 2026-10-07 23:04:38 +02:00
Fran Quinto 575fbdc907 Fix user creation with group_ids via API (#12965)
* Fix user creation with group_ids via API

Creating a user via POST /api/user/ with the 'group_ids' field raised
TypeError: User() got unexpected keyword arguments: 'group_ids'.
The write-only 'group_ids' field was only handled on update.

- Declare 'group_ids' in SKIP_CREATE_FIELDS so it is not passed to the model
- Assign the groups after the user instance is created
- Add API test covering user creation with and without groups

* Bump API version
2026-10-05 11:33:07 +12:00
dependabot[bot]andMatthias Mair c1270fd842 chore(deps): bump pyjwt from 2.14.0 to 2.15.0 in /src/backend (#12959)
* chore(deps): bump pyjwt from 2.14.0 to 2.15.0 in /src/backend

Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.14.0...2.15.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-version: 2.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix style

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
2026-10-03 07:53:02 +12:00
dependabot[bot]andMatthias Mair 058fa167b1 chore(deps): bump oauthlib from 3.3.1 to 4.0.0 in /src/backend (#12957)
* chore(deps): bump oauthlib from 3.3.1 to 4.0.0 in /src/backend

Bumps [oauthlib](https://github.com/oauthlib/oauthlib) from 3.3.1 to 4.0.0.
- [Release notes](https://github.com/oauthlib/oauthlib/releases)
- [Changelog](https://github.com/oauthlib/oauthlib/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/oauthlib/oauthlib/compare/v3.3.1...v4.0.0)

---
updated-dependencies:
- dependency-name: oauthlib
  dependency-version: 4.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* bump allauth tool

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
2026-10-03 07:52:15 +12:00
Joe RogersandMatthias Mair 9188800dc7 Fix transitions query schema to indicate it returns a list (#12967)
* Fix transitions query schema to indicate it returns a list

* Update api version

* Update api_version.py

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-10-03 07:35:50 +12:00
Matthias Mair 9478c25a70 feat(backend): Add generic API helper for transitions (#12693)
* add generic api helper

* align name better

* fix name change

* allign returncodes and internal names

* fix serializer class assumptions

* remove now unneeded serializers

* fix parameter mixin handeling

* fix context parsing

* bump API version

* add transition overview

* fix serializer augumentation

* remove dead code

* change path prefix back

* extend test for introspection

* add legacy warning again

* check permissions for introspection endpoint (allowed indirect discovery of state)

* add sample

* helpers for complex and well described endpoints

* add more testing for state features shipped with common

* fix tests

* remove problematic many2many that does not work without database model

* remove samples; will be submitted as a larger sample app

* Update api_helpers.py
2026-09-29 21:26:53 +10:00
xyz-is-bestandMatthias Mair 65349eeefb fix(notifications): translate notification emails and messages into recipient user locale (#11408) (#12944)
* fix(notifications): translate notification emails and messages into recipient user locale (#11408)

* add a codespell ignore for the translated assertation

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-09-29 10:57:41 +10:00
dependabot[bot]andMatthias Mair 7642d409b6 chore(deps): bump the dependencies group across 3 directories with 25 updates (#12933)
* chore(deps): bump the dependencies group across 3 directories with 25 updates

Bumps the dependencies group with 2 updates in the /contrib/dev_reqs directory: [uv](https://github.com/astral-sh/uv) and [pip](https://github.com/pypa/pip).
Bumps the dependencies group with 1 update in the /docs directory: [mkdocs-git-revision-date-localized-plugin](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin).
Bumps the dependencies group with 22 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [blessed](https://github.com/jquast/blessed) | `1.49.0` | `1.50.0` |
| [boto3](https://github.com/boto/boto3) | `1.43.92` | `1.43.97` |
| [botocore](https://github.com/boto/botocore) | `1.43.92` | `1.43.97` |
| [django-stubs-ext](https://github.com/typeddjango/django-stubs) | `6.1.0` | `6.1.1` |
| [dulwich](https://github.com/dulwich/dulwich) | `1.2.14` | `1.2.15` |
| [grpcio](https://github.com/grpc/grpc) | `1.83.1` | `1.84.0` |
| [idna](https://github.com/kjd/idna) | `3.19` | `3.20` |
| [jwcrypto](https://github.com/latchset/jwcrypto) | `1.6.0` | `1.6.1` |
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.8` | `4.11.10` |
| [protobuf](https://github.com/protocolbuffers/protobuf) | `7.36.1` | `7.36.2` |
| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.5` | `2.49.0` |
| [pypdf](https://github.com/py-pdf/pypdf) | `6.18.1` | `6.19.0` |
| [scim2-models](https://github.com/python-scim/scim2-models) | `0.6.12` | `0.7.0` |
| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.69.1` | `2.69.2` |
| [tzdata](https://github.com/python/tzdata) | `2026.3` | `2026.4` |
| [urllib3](https://github.com/urllib3/urllib3) | `2.7.0` | `2.8.0` |
| [wcwidth](https://github.com/jquast/wcwidth) | `0.8.3` | `0.8.4` |
| [coverage](https://github.com/coveragepy/coveragepy) | `7.16.0` | `7.16.1` |
| [django-silk](https://github.com/jazzband/django-silk) | `5.5.2` | `5.6.0` |
| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.1.0` | `6.1.1` |
| [prek](https://github.com/j178/prek) | `0.5.2` | `0.5.3` |
| [pyproject-hooks](https://github.com/pypa/pyproject-hooks) | `1.2.0` | `1.3.3` |



Updates `uv` from 0.12.13 to 0.12.16
- [Release notes](https://github.com/astral-sh/uv/releases)
- [Changelog](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/uv/compare/0.12.13...0.12.16)

Updates `pip` from 26.2.1 to 
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/commits)

Updates `mkdocs-git-revision-date-localized-plugin` from 1.5.4 to 1.6.0
- [Release notes](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases)
- [Commits](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.5.4...v1.6.0)

Updates `blessed` from 1.49.0 to 1.50.0
- [Release notes](https://github.com/jquast/blessed/releases)
- [Changelog](https://github.com/jquast/blessed/blob/master/docs/history.rst)
- [Commits](https://github.com/jquast/blessed/compare/1.49...1.50)

Updates `boto3` from 1.43.92 to 1.43.97
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.43.92...1.43.97)

Updates `botocore` from 1.43.92 to 1.43.97
- [Commits](https://github.com/boto/botocore/compare/1.43.92...1.43.97)

Updates `django-stubs-ext` from 6.1.0 to 6.1.1
- [Release notes](https://github.com/typeddjango/django-stubs/releases)
- [Commits](https://github.com/typeddjango/django-stubs/compare/6.1.0...6.1.1)

Updates `dulwich` from 1.2.14 to 1.2.15
- [Release notes](https://github.com/dulwich/dulwich/releases)
- [Changelog](https://github.com/jelmer/dulwich/blob/main/NEWS)
- [Commits](https://github.com/dulwich/dulwich/compare/dulwich-1.2.14...dulwich-1.2.15)

Updates `grpcio` from 1.83.1 to 1.84.0
- [Release notes](https://github.com/grpc/grpc/releases)
- [Commits](https://github.com/grpc/grpc/compare/v1.83.1...v1.84.0)

Updates `idna` from 3.19 to 3.20
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)
- [Commits](https://github.com/kjd/idna/compare/v3.19...v3.20)

Updates `jwcrypto` from 1.6.0 to 1.6.1
- [Release notes](https://github.com/latchset/jwcrypto/releases)
- [Commits](https://github.com/latchset/jwcrypto/compare/v1.6.0...v1.6.1)

Updates `platformdirs` from 4.11.8 to 4.11.10
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/platformdirs/compare/4.11.8...4.11.10)

Updates `protobuf` from 7.36.1 to 7.36.2
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Commits](https://github.com/protocolbuffers/protobuf/commits)

Updates `pydantic-core` from 2.46.5 to 2.49.0
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/commits)

Updates `pypdf` from 6.18.1 to 6.19.0
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.18.1...6.19.0)

Updates `scim2-models` from 0.6.12 to 0.7.0
- [Release notes](https://github.com/python-scim/scim2-models/releases)
- [Changelog](https://github.com/python-scim/scim2-models/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-models/compare/0.6.12...0.7.0)

Updates `sentry-sdk` from 2.69.1 to 2.69.2
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.69.1...2.69.2)

Updates `tzdata` from 2026.3 to 2026.4
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](https://github.com/python/tzdata/compare/2026.3...2026.4)

Updates `urllib3` from 2.7.0 to 2.8.0
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.7.0...2.8.0)

Updates `wcwidth` from 0.8.3 to 0.8.4
- [Release notes](https://github.com/jquast/wcwidth/releases)
- [Changelog](https://github.com/jquast/wcwidth/blob/master/docs/history.rst)
- [Commits](https://github.com/jquast/wcwidth/compare/0.8.3...0.8.4)

Updates `coverage` from 7.16.0 to 7.16.1
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.16.0...7.16.1)

Updates `django-silk` from 5.5.2 to 5.6.0
- [Release notes](https://github.com/jazzband/django-silk/releases)
- [Changelog](https://github.com/jazzband/django-silk/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jazzband/django-silk/compare/5.5.2...5.6.0)

Updates `django-stubs` from 6.1.0 to 6.1.1
- [Release notes](https://github.com/typeddjango/django-stubs/releases)
- [Commits](https://github.com/typeddjango/django-stubs/compare/6.1.0...6.1.1)

Updates `prek` from 0.5.2 to 0.5.3
- [Release notes](https://github.com/j178/prek/releases)
- [Changelog](https://github.com/j178/prek/blob/master/CHANGELOG.md)
- [Commits](https://github.com/j178/prek/compare/v0.5.2...v0.5.3)

Updates `pyproject-hooks` from 1.2.0 to 1.3.3
- [Changelog](https://github.com/pypa/pyproject-hooks/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pypa/pyproject-hooks/compare/v1.2.0...v1.3.3)

---
updated-dependencies:
- dependency-name: uv
  dependency-version: 0.12.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pip
  dependency-version:
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: mkdocs-git-revision-date-localized-plugin
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: blessed
  dependency-version: 1.50.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.43.97
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.43.97
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-stubs-ext
  dependency-version: 6.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: dulwich
  dependency-version: 1.2.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: grpcio
  dependency-version: 1.84.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: idna
  dependency-version: '3.20'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: jwcrypto
  dependency-version: 1.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: platformdirs
  dependency-version: 4.11.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: protobuf
  dependency-version: 7.36.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pydantic-core
  dependency-version: 2.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: pypdf
  dependency-version: 6.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: scim2-models
  dependency-version: 0.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: sentry-sdk
  dependency-version: 2.69.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: tzdata
  dependency-version: '2026.4'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: urllib3
  dependency-version: 2.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: wcwidth
  dependency-version: 0.8.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: coverage
  dependency-version: 7.16.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-silk
  dependency-version: 5.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: django-stubs
  dependency-version: 6.1.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: prek
  dependency-version: 0.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pyproject-hooks
  dependency-version: 1.3.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix style

* lower stub

* bump stub

* fix type interpolation issues

* use ty ignore

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
2026-09-29 10:52:39 +10:00
github-actions[bot] c2b7f71f2f New Crowdin translations by GitHub Action (#12941)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-28 13:04:17 +10:00
Petr Ledvina 967f7a55d1 Add raise_error template tag (#12940) 2026-09-28 07:04:49 +10:00
Petr Ledvina 5d0c4d9646 Use one-shot tasks for label print batches (#12939)
* Disable retries for label print batch tasks

* Remove label failure retry guard for one-shot jobs
2026-09-28 07:02:24 +10:00
github-actions[bot] d3c23f37ca New Crowdin translations by GitHub Action (#12909)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-27 14:14:58 +10:00
d33d77d679 feat: add plugin support for custom page integration (#12900)
* Added plugin UI route functionality.

* Updated Sample UI plugin with route example.

* Added UI route tests.

* Plugin name added to UI Route URL.

* Updated docs.

* Docs fix.

* Updated sample_route text.

* Update src/backend/InvenTree/plugin/base/ui/mixins.py

Co-authored-by: Matthias Mair <code@mjmair.com>

* Fixed nav dynamic link highlighting.

* Added changelog entry.

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-09-27 08:13:54 +10:00
Oliver ba848a83aa Disable retry for label printing (#12937)
prevents multiple label copies sent to machine - e.g. if timeout occurs on first attempt
2026-09-26 17:18:07 +10:00
Fran QuintoandOliver 600c2cc053 Add Catalan language support (#12926)
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-09-26 14:29:44 +10:00
Oliver 979ddb3f06 Default receive location (#12911)
* Add global setting

* docs

* Dynamically set API field default

* UI elements

* regression testing

* Add CHANGELOG entry

* Fix unit test
2026-09-26 11:39:44 +10:00
Oliver 862c934e0d Background Task Features (#12913)
* Add option to disable retry for background tasks

* Add specific regression testing to ensure the task is only pushed once

* Allow specification of "timeout" attribute

* Add regression tests

* Report failure of single-shot tasks

* Address remaining issues

* Additional regression tests

* Adjust headroom

* additional regression testing
2026-09-26 10:24:10 +10:00
Oliver 94f1f1e17e Fix floating point comparisons for parameter values (#12927)
- Closes https://github.com/inventree/InvenTree/issues/12923
- Allow tolerant comparisons for floating point values
- Additional unit tests
2026-09-25 10:03:21 +10:00
Oliver a92f97347a [API] Use InvenTreeDecimalField for minimum_stock and maximum_stock (#12928)
- Fixes https://github.com/inventree/InvenTree/issues/12925
2026-09-25 09:41:57 +10:00
Oliver c4c493d3fd Global batch code (#12912)
* Add top-level batch code when receiving items

* Add API test

* Bump API version
2026-09-24 07:32:12 +10:00
Oliver a4518fb52b Allocate mixin (#12914)
* Create AllocateMixin plugin mixin class

* Add documentation

* Add hook-in points for the new code

* Add unit tests

* Add CHANGELOG entry

* Add loose typing
2026-09-23 06:39:26 +10:00
Petr Ledvina 5edf72e084 Preserve validation details when rendering labels (#12874)
* Preserve label rendering validation errors

* Preserve label validation diagnostics before output deletion

Keep logging validation errors in both rendering wrappers before re-raising the original exception. LabelTemplate.print deletes failed DataOutput records, so the error log preserves the diagnostic after the result is removed.

Update the mocked tests to require logging while retaining the original validation details.

* Apply Ruff preview formatting to label rendering tests
2026-09-22 22:12:47 +10:00
Petr Ledvina 9daf4f8efe Preserve label printing failures and skip failed job redelivery (#12872)
Retain DataOutput records with the original printing error and mark jobs
failed when their plugin is unavailable. Keep exception propagation and
skip failed outputs on redelivery to avoid printing partial batches again.

Cover direct and worker exceptions, unavailable plugins, failed-job
redelivery, and missing or completed outputs.
2026-09-22 21:57:45 +10:00
Oliver 499c4d5b56 Additional regression tests for note support in reports (#12910) 2026-09-22 12:55:06 +10:00
Oliver c392b9cf03 Selection list fix (#12908)
* Enable filtering / searching / sorting on the SelectionListList API endpoint

* Add regression tests

* Bump API version
2026-09-22 11:19:21 +10:00
github-actions[bot] 0a09fd582c New Crowdin translations by GitHub Action (#12895)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-22 09:51:26 +10:00