Commit Graph

2453 Commits

Author SHA1 Message Date
Aditya Kumar Mishra 582013e51c
Feature: Auto-select items tab for final stock locations (#11766) (#11955)
* Enhance: Auto-select items tab for final stock locations/categories

* Fix biome formatting in PanelGroup.tsx

* Change default setting to False per review

* Refactor: Rename setting to DISPLAY_ITEMS_FINAL_LEVEL to apply generically to both locations and categories per review

---------

Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-05-17 19:06:00 +10:00
Oliver c09848422c
[UI] Panel indicator badges (#11956)
* Refactor panel indicator dots

- Allow indicator status to be fetched async

* Add indicator dot for attachments

* Support parameters panel

* Refactor

- Expose more types to @lib
- Define new PanelIndicatorType type
- Support old interface
2026-05-17 10:58:23 +10:00
Matthias Mair 038dcc9c74
remove unused statements (#11949) 2026-05-16 07:57:33 +10:00
Matthias Mair e3a22762e8
refactor(backend): various SAST fixes (#11952)
* optimize asserts

* ensure redirect is safe

* sanatize token in log
2026-05-16 07:53:37 +10:00
Joe Rogers 7655dc3819
Update schema to match server responses for SelectionList and TreePath (#11948)
* Annotate default list selection to allow nullable and ensure entry_count is never null

* Add icon (nullable) to TreePath schema

* Bump api version
2026-05-15 23:24:39 +10:00
Oliver d6f257dc58
Receive items requrires the "add" role - POST action (#11946) 2026-05-15 11:51:58 +10:00
Oliver c931ab6815
[bug] Bulk edit fix (#11945)
* Prevent editing of items which do not point directly to the part

* Allow table to define which records can be selected
2026-05-15 00:24:22 +10:00
Matthias Mair 701a788a6e
feat(frontend): custom model render registration (#11928)
* refactor RenderInstance

* add custom mode renderer

* add optional custom_model api form arg

* switch to fallback mechanism

* remove warning

* fix imports

* adress sonarque rules
2026-05-14 13:18:52 +10:00
Oliver 6e2a867c92
[bug] Fix for report generation context (#11941)
* Provide explicit user information to report context

* Pass user information through to offloaded task

* Pass user information back to the plugin

* Fix user passing

* Add more complex unit test for report printing

- Test debug ON / OFF
- Test merge ON / OFF
- Check generated data output

* Unit testing for label generation

* Further refactoring

- Remove "request" from printing context entirely

* Simplify argument drilling

* Robustify unit tests
2026-05-14 11:25:20 +10:00
Oliver 3d2577b411
[UI] Refactor order table filters (#11939)
* Refactor build order filters

- Common set of filters for build order views

* Refactor PurchaseOrder filters

* Update company table

* Refactor SalesOrder filters

* Refactor common filters

* Refactor ReturnOrder table filters
2026-05-13 20:24:40 +10:00
Oliver 573c82f98d
Refactor part table filters (#11938)
- Expose extended filters to the parameteric table
2026-05-13 18:08:28 +10:00
Oliver d0acbf1191
[UI] Adjust week start date (#11934)
* Adjust week start date

Co-authored-by: Copilot <copilot@github.com>

* Change to global setting

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-13 17:32:59 +10:00
Oliver 727ca62883
External order checks (#11935)
* Add new global settings

Co-authored-by: Copilot <copilot@github.com>

* Validation logic

Co-authored-by: Copilot <copilot@github.com>

* Remove one setting

- Already covered if build order requires validation

* Add unit test

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-13 15:16:34 +10:00
Oliver 5d72eb4f1d
[API] Role fix (#11932)
- Allow users to view BOM validation information with bom.view role
2026-05-12 14:39:40 +10:00
Matthias Mair 34a9f1e10c
feat(frontend): expose inline render helpers (#11917)
* expose RenderInlineModel

* expose Thumbnail

* add changelog / lib entry

* move thumbnail back; use context

* move to context

* reduce diff

* add better type

* reduce diff more
2026-05-12 13:46:58 +10:00
Matthias Mair 98f1ae53a3
bump urlib3 (#11925)
* chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /src/backend

Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.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.6.3...2.7.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.7.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>
2026-05-12 13:12:09 +10:00
Oliver b6a304e553
Block SO allocation until tests pass (#11915)
* Add new global setting

* Check item before allocating

* add unit test
2026-05-11 20:09:34 +10:00
github-actions[bot] 95fd997d9c
New Crowdin translations by GitHub Action (#11913)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-11 14:22:44 +10:00
Matthias Mair d29361fded
remove dead function InstanceFromUrl (#11918) 2026-05-11 11:51:20 +10:00
Oliver 35aa4d33d3
Maximum stock level (#11914)
* Add "maximum_stock" field

* Add API filter

* Update API version

* Update CHANGELOG

* Frontend updates

* Add dashboard widget

* docs

* Add API tests
2026-05-10 20:55:05 +10:00
Oliver bb2a72a6fb
Support physical units for BOM lines (#11631)
* Add new "raw_amount" field to BomItem model

* Batch process data migration

* Update migration

* Calculate 'quantity' from 'raw_amount' field

* Improve decimal formatting in migration

* Allow raw_amount in serializer

* Adjust frontend form

* API validation and unit tests

* Additional playwright tests

* Update API version and CHANGELOG

* Updated docs

* Fix docstring

* Better handling of empty values

* Tweak unit tests

* Tweak unit test

* Fix unit test

* Adjust form field text

* Adjust migration file

* Tweak playwright tests

* Fix unit test

* Adjust serializers / import-export / playwright

* Fix migration

* Fix validation

* Loosen comparison

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-05-10 15:32:34 +10:00
github-actions[bot] 29027c1cf2
New Crowdin translations by GitHub Action (#11904)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-10 14:23:21 +10:00
Matthias Mair b47091f388
chore(backend): bump dev tooling, switch to prek (#11905)
* update names

* update tooling

* update files to new style

* swich to prek

* remove autoupdate to make newbie PRs cleaner
2026-05-10 10:15:30 +10:00
Matthias Mair 69c11d106c
chore(backend): bump django-q2 (#11910)
* bump django-q2

* API bump
2026-05-10 09:12:01 +10:00
Oliver 9a2b82d582
Fix lazy loading of context modals (#11911) 2026-05-10 09:11:39 +10:00
Matthias Mair 1aed591c2f
chore(backend): bump django (#11907)
* bump django

* add  comment regarding GHSA-5h8x-9c6f-2j8m

---------

Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-05-10 08:39:00 +10:00
Matthias Mair 39b43288bb
fix test assertation (#11908)
follow up to https://github.com/inventree/InvenTree/pull/11896
2026-05-09 23:52:41 +10:00
Matthias Mair 61eb5e8d0f
frontend: more exposing for plugins (#11897)
* expose EditApiForm in context

* expose renderRemoteInstance in context

* expose useInstance in context

* export DetailDrawerComponent, useLocalLibState

* fix import/type

* add changelog entry
2026-05-09 23:14:36 +10:00
Oliver 04ef8a497a
Remove rollup-plugin-visualizer (#11903) 2026-05-09 15:04:46 +10:00
github-actions[bot] f5cd1b7b86
New Crowdin translations by GitHub Action (#11856)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-09 12:44:14 +10:00
Oliver 583c7ad5f2
[UI] Optimize bundle (#11896)
* lazy load global window modules

- Required for plugins
- Can be separated from the "main.tsx" code

Co-authored-by: Copilot <copilot@github.com>

* Defer modal loading

Co-authored-by: Copilot <copilot@github.com>

* Rollup visualiser tool

* Remove debug msg

* Rearrange to reduce deltas

* Refactor CodeEditor and PdfPreview

* Split NotesPanel

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-09 12:44:05 +10:00
Oliver 47f9dd9470
Remove unnecessary print statement (#11902) 2026-05-09 11:53:36 +10:00
dependabot[bot] 4461f1d3f1
chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /src/frontend (#11900)
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-09 10:37:42 +10:00
dependabot[bot] 6b069f66d0
chore(deps): bump axios from 1.15.0 to 1.15.2 in /src/frontend (#11890)
* chore(deps): bump axios from 1.15.0 to 1.15.2 in /src/frontend

Bumps [axios](https://github.com/axios/axios) from 1.15.0 to 1.15.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.15.0...v1.15.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.2
  dependency-type: direct:production
...

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

* fix type

---------

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-05-08 08:49:50 +10:00
Matthias Mair 44b31fc44a
fix(frontend): adjust media queries for newer postcss style (#11892) 2026-05-08 08:49:21 +10:00
Oliver cbf3fc9f57
[UI] Smaller text for PathColumn (#11888)
Reduce text size in tables
2026-05-08 08:47:20 +10:00
Matthias Mair 556de563e2
fix(backend): ensure version screeen runs without django present (#11887)
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-05-08 00:50:12 +10:00
Oliver 12d32b1d80
[UI] Adjust default dashboard (#11889)
- Only display "news" for superuser

Co-authored-by: Copilot <copilot@github.com>
2026-05-08 00:45:46 +10:00
dependabot[bot] 8f3b648e07
chore(deps): bump the dependencies group across 1 directory with 31 updates (#11844)
* chore(deps): bump the dependencies group across 1 directory with 31 updates

Bumps the dependencies group with 31 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [wheel](https://github.com/pypa/wheel) | `0.46.3` | `0.47.0` |
| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |
| [boto3](https://github.com/boto/boto3) | `1.42.90` | `1.42.96` |
| [botocore](https://github.com/boto/botocore) | `1.42.90` | `1.42.96` |
| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |
| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `47.0.0` |
| [django-anymail](https://github.com/anymail/django-anymail) | `14.0` | `15.0` |
| [dulwich](https://github.com/dulwich/dulwich) | `1.1.0` | `1.2.0` |
| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |
| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |
| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |
| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |
| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |
| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |
| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.1` |
| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b1` |
| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b1` |
| [packaging](https://github.com/pypa/packaging) | `26.1` | `26.2` |
| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |
| [s3transfer](https://github.com/boto/s3transfer) | `0.16.0` | `0.16.1` |
| [tzdata](https://github.com/python/tzdata) | `2026.1` | `2026.2` |
| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |
| [build](https://github.com/pypa/build) | `1.4.3` | `1.4.4` |
| [click](https://github.com/pallets/click) | `8.3.2` | `8.3.3` |
| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.2` | `6.0.3` |
| [django-stubs-ext](https://github.com/typeddjango/django-stubs) | `6.0.2` | `6.0.3` |
| [django-types](https://github.com/sbdchd/django-types) | `0.23.0` | `0.24.0` |
| [filelock](https://github.com/tox-dev/py-filelock) | `3.28.0` | `3.29.0` |
| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.5.1` | `4.6.0` |
| [types-psycopg2](https://github.com/python/typeshed) | `2.9.21.20260408` | `2.9.21.20260422` |



Updates `wheel` from 0.46.3 to 0.47.0
- [Release notes](https://github.com/pypa/wheel/releases)
- [Changelog](https://github.com/pypa/wheel/blob/main/docs/news.rst)
- [Commits](https://github.com/pypa/wheel/compare/0.46.3...0.47.0)

Updates `bleach` from 4.1.0 to 6.3.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0)

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

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

Updates `certifi` from 2026.2.25 to 2026.4.22
- [Commits](https://github.com/certifi/python-certifi/compare/2026.02.25...2026.04.22)

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

Updates `django-anymail` from 14.0 to 15.0
- [Release notes](https://github.com/anymail/django-anymail/releases)
- [Changelog](https://github.com/anymail/django-anymail/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/anymail/django-anymail/compare/v14.0...v15.0)

Updates `dulwich` from 1.1.0 to 1.2.0
- [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.1.0...dulwich-1.2.0)

Updates `idna` from 3.11 to 3.13
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.11...v3.13)

Updates `importlib-metadata` from 8.7.1 to 9.0.0
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0)

Updates `opentelemetry-exporter-otlp-proto-common` from 1.40.0 to 1.41.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.1)

Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.41.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.1)

Updates `opentelemetry-exporter-otlp-proto-http` from 1.40.0 to 1.41.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.1)

Updates `opentelemetry-instrumentation` from 0.61b0 to 0.62b1
- [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.61b0 to 0.62b1
- [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.40.0 to 1.41.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/v1.41.1/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.40.0...v1.41.1)

Updates `opentelemetry-semantic-conventions` from 0.61b0 to 0.62b1
- [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.61b0 to 0.62b1
- [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 `packaging` from 26.1 to 26.2
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/26.1...26.2)

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

Updates `s3transfer` from 0.16.0 to 0.16.1
- [Changelog](https://github.com/boto/s3transfer/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/s3transfer/compare/0.16.0...0.16.1)

Updates `tzdata` from 2026.1 to 2026.2
- [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.1...2026.2)

Updates `wrapt` from 1.17.3 to 2.1.2
- [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/1.17.3...2.1.2)

Updates `build` from 1.4.3 to 1.4.4
- [Release notes](https://github.com/pypa/build/releases)
- [Changelog](https://github.com/pypa/build/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/build/compare/1.4.3...1.4.4)

Updates `click` from 8.3.2 to 8.3.3
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/click/compare/8.3.2...8.3.3)

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

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

Updates `django-types` from 0.23.0 to 0.24.0
- [Changelog](https://github.com/sbdchd/django-types/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sbdchd/django-types/commits)

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

Updates `pre-commit` from 4.5.1 to 4.6.0
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v4.5.1...v4.6.0)

Updates `types-psycopg2` from 2.9.21.20260408 to 2.9.21.20260422
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: wheel
  dependency-version: 0.47.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: bleach
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.42.96
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.42.96
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: certifi
  dependency-version: 2026.4.22
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: cryptography
  dependency-version: 47.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: django-anymail
  dependency-version: '15.0'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: dulwich
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: idna
  dependency-version: '3.13'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: importlib-metadata
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-common
  dependency-version: 1.41.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-grpc
  dependency-version: 1.41.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-http
  dependency-version: 1.41.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation
  dependency-version: 0.62b1
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation-dbapi
  dependency-version: 0.62b1
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-proto
  dependency-version: 1.41.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-semantic-conventions
  dependency-version: 0.62b1
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-util-http
  dependency-version: 0.62b1
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: packaging
  dependency-version: '26.2'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: protobuf
  dependency-version: 7.34.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: s3transfer
  dependency-version: 0.16.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: tzdata
  dependency-version: '2026.2'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: wrapt
  dependency-version: 2.1.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: build
  dependency-version: 1.4.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: click
  dependency-version: 8.3.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-stubs
  dependency-version: 6.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-stubs-ext
  dependency-version: 6.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-types
  dependency-version: 0.24.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: filelock
  dependency-version: 3.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: pre-commit
  dependency-version: 4.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: types-psycopg2
  dependency-version: 2.9.21.20260422
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
...

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

* fix style

* align deps

* align dep

---------

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-05-08 00:43:06 +10:00
Oliver 3be740c019
[UI] Fix child builds panel (#11886)
* [UI] Fix child builds panel

- Adjust logic for displaying or hiding child build panel

Co-authored-by: Copilot <copilot@github.com>

* Add brief playwright test

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-08 00:02:11 +10:00
Oliver 5c65cf901f
Line number int (#11885)
* Add migration

Co-authored-by: Copilot <copilot@github.com>

* Update model on save

Co-authored-by: Copilot <copilot@github.com>

* Add API filter aliases

Co-authored-by: Copilot <copilot@github.com>

* Improved query for data migration

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-07 22:48:47 +10:00
Oliver e16eb4a94d
Supplier part form (#11884)
* Fix SupplierPart sub-form

Co-authored-by: Copilot <copilot@github.com>

* Fix details panel for SupplierPart page

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-07 22:48:44 +10:00
Matthias Mair 610e275ca0
Lock notes on orders if they are completed (#11880)
* Lock notes on orders if they are completed
Fixes #11879

* also check setting

* use statuscode object

* remove build lock
2026-05-06 22:25:14 +10:00
Oliver 81fbf52c60
Delete output check (#11881)
* Allow deletion of serialized build output

- If calling "delete_output" on a BuildOrder
- Only will delete an in_production output
- Ignore the global setting in this case

Co-authored-by: Copilot <copilot@github.com>

* Add unit test

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-06 16:14:49 +10:00
Oliver aae97eeb40
[UI] Fix for parameter form (#11875)
- Ensure string field is properly selected
2026-05-05 19:31:59 +10:00
Oliver 6f1d40d546
[UI] Add Admin button for SalesOrderShipment (#11874)
Co-authored-by: Copilot <copilot@github.com>
2026-05-05 18:25:58 +10:00
Oliver 5c4c583e8e
[UI] Adjust stock column for virtual parts (#11873)
- Display "virtual part" instead

Co-authored-by: Copilot <copilot@github.com>
2026-05-05 14:47:08 +10:00
Oliver 18e3c5a0e9
Prevent delete serialized stock (#11872)
* Add setting to prevent deletion of serialized stock

Co-authored-by: Copilot <copilot@github.com>

* Add unit test

Co-authored-by: Copilot <copilot@github.com>

* Update CHANGELOG

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-05 10:43:02 +10:00
Oliver 3c3964062f
UI tweak (#11871)
* [UI] Small visual tweaks for plugin settings panel

Co-authored-by: Copilot <copilot@github.com>

* Refactor common code

Co-authored-by: Copilot <copilot@github.com>

* Reduce code duplication

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-05 10:15:04 +10:00
Oliver 24f8c2bbb4
Ensure DB settings are strings (#11866)
- Null values are NOT allowed!
2026-05-04 14:40:59 +00:00
Oliver 0c9cb5e4a4
[refactor] bulk operation batch size (#11864)
* Fetch models properly during migration

* Specify batch_size when performing bulk_update operations

* Enforce batch_size for bulk_create operations

* Fix typo

* Revert typo fix

- Changes API schema
2026-05-05 00:31:37 +10:00
Oliver 00d6f1c3ab
[feature] Bulk replace (#11861)
* Allow bulk replace of BOM items

* Add "locked" filter for UsedIn table

* Add playwright tests

* docs

* Bump API version

* Update CHANGELOG

* Update api_version.py

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-05-04 23:13:23 +10:00
Oliver 2a5925f4f7
[UI] BOM pricing fix (#11860)
* Ensure BOM pricing is fetched

* Enable IPN sorting for "used-in" table

* Update playwright tests
2026-05-04 21:15:32 +10:00
Miklós Márton cc60692388
Implement Latest parts dashboard widget (#11540)
* Implement Latest parts dashboard widget

* Removed unused variables

* Fix StylishText include
2026-05-04 20:25:48 +10:00
Oliver 79521f974f
[UI] Adjust form properties (#11855)
- Remove certain properties from downstream components
- Reduces unnecessary console errors
2026-05-03 19:37:23 +10:00
Oliver 12c060c7d1
[UI] Remove debug message (#11854) 2026-05-03 19:23:33 +10:00
github-actions[bot] 62b06502a8
New Crowdin translations by GitHub Action (#11828)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-03 18:13:18 +10:00
Oliver 24ce51c5ca
[UI] BOM compare (#11853)
* Refactor existing components

* Select assembly for comparison

* Rough BOM comparison table

* Select  display mode

* Layout tweaks

* Reset secondary part when drawer is closed

* Responsive grids

* Documentation

* Update CHANGELOG.md

* Add playwright tests

* Update wording

* Allow specification of secondary part with URL search params

* Update URL params when value changes

* Clearer display using icons

* Improve diff  layout

* Adjust playwright tests
2026-05-03 12:18:44 +10:00
Oliver f0edb002d0
Fix build order annotation (#11848)
- Closes https://github.com/inventree/InvenTree/issues/11830
2026-05-02 10:04:48 +10:00
Oliver 76407d71b8
[UI] Fix ReturnOrder table (#11845)
* [UI] Fix ReturnOrder table

- Closes https://github.com/inventree/InvenTree/issues/11833

* Add playwright test
2026-05-02 10:04:41 +10:00
Oliver c4a395ac0c
[UI] Adjust frontend deps (#11840)
* Frontend deps

- Follow-up to https://github.com/inventree/InvenTree/pull/11831
- Pin vite version to 8.0.5

* Revert vite to 6.4.2

Co-authored-by: Copilot <copilot@github.com>

* Fix dependency warnings

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-02 07:19:00 +10:00
Oliver 6bbc511028
Ensure correct migration order (#11842)
- Ref: https://github.com/inventree/InvenTree/actions/runs/25208393963/job/73913547867?pr=11840
2026-05-01 22:30:38 +10:00
Oliver 679665d491
Adjust text color for stock column (#11841)
- Muted color output
- Fixes https://github.com/inventree/InvenTree/issues/11835

Co-authored-by: Copilot <copilot@github.com>
2026-05-01 17:06:36 +10:00
Oliver 35bbecf4b0
Fix minor typo (#11839) 2026-05-01 15:29:27 +10:00
Matthias Mair 6f56d44287
feat(frontend): lib make Detaildrawer available (#11827)
* feat(frontend): lib make Detaildrawer available

Co-authored-by: Copilot <copilot@github.com>

* move StylishText to lib

Co-authored-by: Copilot <copilot@github.com>

* add changelog entry

Co-authored-by: Copilot <copilot@github.com>

* fix import path

---------

Co-authored-by: Copilot <copilot@github.com>
2026-05-01 14:49:43 +10:00
Matthias Mair 76da739c48
bump vite, lodash, postcss (#11831)
Co-authored-by: Copilot <copilot@github.com>
2026-05-01 14:02:51 +10:00
tigger2000ttfn d603358205
Fix: preserve existing widget sizes when adding a dashboard widget (#11834)
* Fix: preserve existing widget sizes when adding a dashboard widget

When adding a new widget from the drawer, addWidget called
updateLayoutForWidget with overrideSize=true on every existing layout
key. That flag forces w/h on every layout entry to the widget's
minWidth/minHeight, which silently reset all user-customised widget
sizes back to their minimums.

Pass overrideSize=false instead. Existing widgets retain their layout
entries (and therefore their user-set sizes); the newly added widget
has no entry yet, so react-grid-layout auto-places it at default size.

Adds a Playwright regression test that resizes a widget, adds a second
widget, and asserts the first widget's height is preserved.

* Make widget-resize regression test reliable

Replace the previous drag-based test with a deterministic check that
manipulates the persisted layout directly. The resize handles only
exist when isResizable={editing} is true, so the previous test's
attempt to grab .react-resizable-handle returned null in CI.

The new test inflates the first widget's layout entry in
localStorage, reloads to rehydrate zustand, then adds a second widget
via the menu and asserts the first widget retained its enlarged
dimensions. This directly exercises the addWidget code path without
needing edit mode or mouse simulation.

* Apply biome formatting

* Patch backend profile to inflate widget; fix unused non-null assertion

Updating localStorage was wiped out by observeProfile() on reload, so
inflate the widget on the backend user profile instead.

---------

Co-authored-by: tigger2000ttfn <tigger2000ttfn@users.noreply.github.com>
2026-05-01 13:58:54 +10:00
Oliver 2b6952eabd
BOM Ruleset (#11825)
* Add BOM role

* Adjust UI permissions

* Adjust docs

* Add data migratoin

* Specify role for BOM validation

* Tweak old migrati

* Fix role_required

* Update API version and CHANGELOG

Co-authored-by: Copilot <copilot@github.com>

* Update unit tests

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-28 12:29:57 +10:00
Matthias Mair 6e4ffcb6d2
also expose TableState (#11826) 2026-04-28 11:04:49 +10:00
github-actions[bot] bf3ac8eba0
New Crowdin translations by GitHub Action (#11791)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-28 10:30:00 +10:00
Oliver aeeca49a8f
[setup] Database config (#11813)
* Adjust config template file

* Check UPPERCASE value as backup

* fix typing issue

* ignore ty issues for now

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
Co-authored-by: Copilot <copilot@github.com>
2026-04-28 08:20:49 +10:00
Oliver afa3807978
Adjust BomSubassemblyTable (#11819)
- Fixes for height of sub-table
2026-04-27 20:14:52 +10:00
Oliver 65b2283c7f
Stock convert (#11818)
* [UI] Reimplement "convert stock" action

* Add playwright tests
2026-04-27 19:59:30 +10:00
Oliver 9958f4a247
[UI] Invalid BOM warning (#11817)
* [UI] Invalid BOM warning

* Add similar warning to BOM table

* Adjust bom subassembly table
2026-04-27 18:17:49 +10:00
Oliver 27ebfeba1c
[UI] Smooth image loading (#11815)
* Smooth image loading

* Add "thumbnail" prop

* Hide thumbnail once loaded
2026-04-27 18:17:25 +10:00
Oliver 9763ce01ae
[bug] Make "issued_by" field read-only (#11816)
* Fix "issued_by" for BuildOrder model

- Automatically capture user information
- Mark field as read-only
- Remove from frontend forms

* Add "created_by" property

* Update unit test

* Update API and CHANGELOG

* Further adjustments to unit tests
2026-04-27 17:35:28 +10:00
Matthias Mair e3a2a02857
bump deps (#11812)
* fix pip

* bump uv

---------

Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-04-27 09:04:38 +10:00
dependabot[bot] 22bcb6ed3e
chore(deps): bump the dependencies group across 2 directories with 25 updates (#11797)
* chore(deps): bump the dependencies group across 2 directories with 25 updates

Bumps the dependencies group with 1 update in the /docs directory: [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings).
Bumps the dependencies group with 24 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |
| [boto3](https://github.com/boto/boto3) | `1.42.87` | `1.42.90` |
| [botocore](https://github.com/boto/botocore) | `1.42.87` | `1.42.90` |
| [fido2](https://github.com/Yubico/python-fido2) | `2.1.1` | `2.2.0` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |
| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.0` |
| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.0` |
| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.0` |
| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b0` |
| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b0` |
| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.0` |
| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b0` |
| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b0` |
| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |
| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |
| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.57.0` | `2.58.0` |
| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |
| [zipp](https://github.com/jaraco/zipp) | `3.23.0` | `3.23.1` |
| [build](https://github.com/pypa/build) | `1.4.2` | `1.4.3` |
| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.2` | `3.28.0` |
| [identify](https://github.com/pre-commit/identify) | `2.6.18` | `2.6.19` |
| [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed) | `4.3.0` | `4.4.0` |
| [rich](https://github.com/Textualize/rich) | `14.3.3` | `15.0.0` |
| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.1` | `21.2.4` |



Updates `mkdocstrings` from 1.0.3 to 1.0.4
- [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases)
- [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/1.0.3...1.0.4)

Updates `bleach` from 4.1.0 to 6.3.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0)

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

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

Updates `fido2` from 2.1.1 to 2.2.0
- [Release notes](https://github.com/Yubico/python-fido2/releases)
- [Changelog](https://github.com/Yubico/python-fido2/blob/main/NEWS)
- [Commits](https://github.com/Yubico/python-fido2/compare/2.1.1...2.2.0)

Updates `importlib-metadata` from 8.7.1 to 9.0.0
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0)

Updates `opentelemetry-exporter-otlp-proto-common` from 1.40.0 to 1.41.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.40.0...v1.41.0)

Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.41.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.40.0...v1.41.0)

Updates `opentelemetry-exporter-otlp-proto-http` from 1.40.0 to 1.41.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.40.0...v1.41.0)

Updates `opentelemetry-instrumentation` from 0.61b0 to 0.62b0
- [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.61b0 to 0.62b0
- [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.40.0 to 1.41.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.40.0...v1.41.0)

Updates `opentelemetry-semantic-conventions` from 0.61b0 to 0.62b0
- [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.61b0 to 0.62b0
- [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 `packaging` from 26.0 to 26.1
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/26.0...26.1)

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

Updates `sentry-sdk` from 2.57.0 to 2.58.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.57.0...2.58.0)

Updates `wrapt` from 1.17.3 to 2.1.2
- [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/1.17.3...2.1.2)

Updates `zipp` from 3.23.0 to 3.23.1
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.23.0...v3.23.1)

Updates `build` from 1.4.2 to 1.4.3
- [Release notes](https://github.com/pypa/build/releases)
- [Changelog](https://github.com/pypa/build/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/build/compare/1.4.2...1.4.3)

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

Updates `identify` from 2.6.18 to 2.6.19
- [Commits](https://github.com/pre-commit/identify/compare/v2.6.18...v2.6.19)

Updates `pytest-codspeed` from 4.3.0 to 4.4.0
- [Release notes](https://github.com/CodSpeedHQ/pytest-codspeed/releases)
- [Changelog](https://github.com/CodSpeedHQ/pytest-codspeed/blob/master/CHANGELOG.md)
- [Commits](https://github.com/CodSpeedHQ/pytest-codspeed/compare/v4.3.0...v4.4.0)

Updates `rich` from 14.3.3 to 15.0.0
- [Release notes](https://github.com/Textualize/rich/releases)
- [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Textualize/rich/compare/v14.3.3...v15.0.0)

Updates `virtualenv` from 21.2.1 to 21.2.4
- [Release notes](https://github.com/pypa/virtualenv/releases)
- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pypa/virtualenv/compare/21.2.1...21.2.4)

---
updated-dependencies:
- dependency-name: mkdocstrings
  dependency-version: 1.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: bleach
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.42.90
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.42.90
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: fido2
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: importlib-metadata
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-common
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-grpc
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-http
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation
  dependency-version: 0.62b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation-dbapi
  dependency-version: 0.62b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-proto
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-semantic-conventions
  dependency-version: 0.62b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-util-http
  dependency-version: 0.62b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: packaging
  dependency-version: '26.1'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: protobuf
  dependency-version: 7.34.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: sentry-sdk
  dependency-version: 2.58.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: wrapt
  dependency-version: 2.1.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: zipp
  dependency-version: 3.23.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: build
  dependency-version: 1.4.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: filelock
  dependency-version: 3.28.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: identify
  dependency-version: 2.6.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pytest-codspeed
  dependency-version: 4.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: rich
  dependency-version: 15.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: virtualenv
  dependency-version: 21.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  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-04-27 08:13:34 +10:00
Oliver f271725def
[UI] BOM row expand (#11809)
* Add subassembly expansion

Co-authored-by: Copilot <copilot@github.com>

* Enable multi-level subassembly display

Co-authored-by: Copilot <copilot@github.com>

* Adjust padding

* Adds user setting to enable / disable subassembly view

Co-authored-by: Copilot <copilot@github.com>

* Add icon

* Additional playwright tests

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-26 16:32:58 +10:00
Oliver b8f13b8aa9
[UI] Adjust system settings (#11808)
* Adjust system settings

- Rearrange settings to match major menu groups
- Split long settings panels into separate lists

Co-authored-by: Copilot <copilot@github.com>

* Adjust playwright tests

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-26 15:46:05 +10:00
Oliver 594b6e09b3
Fix refresh action for test result table (#11807) 2026-04-26 12:49:32 +10:00
Oliver ffe6c13edf
[UI] BOM Editing (#10210)
* Support minimum column width

* Adjust DescriptionColumn and StatusColumn

* Column refactoring

* Refactor PartColumn

* Refactor LineItemsProgerssColumn

* Tweaks

* Ensure "can_build" value is not negative

* Render row expansion icon

* Add subassembly table for BOM

* Add controls for BOM editing

* Fix row click context

* Improve rendering for BOM sub-rows

* Hide BOM actions unless editing

* Disable row expansion for now

* Revert gitleaks changes

* Remove gitleaks tags

* Remove dead code

* Remove commented code

* Adjust playwright tests

Co-authored-by: Copilot <copilot@github.com>

* Update docs

Co-authored-by: Copilot <copilot@github.com>

* Further playwright fixes

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-26 12:49:21 +10:00
Oliver f9cda95427
Adjust order quantity based on pack size (#11800)
- Closes https://github.com/inventree/InvenTree/issues/10946

Co-authored-by: Copilot <copilot@github.com>
2026-04-26 10:23:07 +10:00
Oliver 75942fbedf
Fix for category template creation (#11803)
- Prevent duplicate parameters
- Closes https://github.com/inventree/InvenTree/issues/11798

Co-authored-by: Copilot <copilot@github.com>
2026-04-26 09:32:46 +10:00
Oliver e684e002f7
[UI] Hide top level tree panels (#11799)
* Hide "top level stock location" panel

Co-authored-by: Copilot <copilot@github.com>

* Hide "top level part category"

Co-authored-by: Copilot <copilot@github.com>

* Adjust playwright tests

* Improve robustness of test

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-04-26 07:16:06 +10:00
Oliver fef0fdf99b
Simplify BOM table rendering (#11795) 2026-04-24 10:52:27 +10:00
Oliver 03508cd15b
Boundary updates (#11794)
* Boundary updates

* Add error code
2026-04-24 10:52:17 +10:00
Oliver e43d619d69
[UI] Create manufacturer part (#11792)
- Create new manufacturer part from supplier part form
- Closes https://github.com/inventree/InvenTree/issues/10924
2026-04-24 09:41:24 +10:00
Oliver 389e49c218
Fix typecast for db settings (#11790)
- Follow-up to https://github.com/inventree/InvenTree/pull/11674
2026-04-24 09:14:55 +10:00
Matthias Mair de3266cdf6
refactor(frontend): make plugin support for panels more generic (#11787)
* feat(frontend): add more generic plugin support on PanelGroup

* refactor exsisting use cases

* add plugin panel support to StockLocation
closes https://github.com/inventree/InvenTree/issues/11782

* stop re-using model field

* re-order types

* add panel support for core

* change keys

see https://github.com/inventree/InvenTree/pull/11787#discussion_r3127410867
2026-04-24 08:34:21 +10:00
github-actions[bot] 21d5edb56a
New Crowdin translations by GitHub Action (#11780)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-24 08:12:46 +10:00
Oliver 757597c55d
[UI] More sub-forms (#11785)
* Fix ApiFormFIeldType docstring

* Case fix

* Add sub-forms for company creation

* Tweak component def

* Add new company for manufacturer-part and supplier-part

* Create new parameter template directly from parameter view

* Add tooltip

* Add playwright tests

* Consolidate translation

* Revert to left side

* Fix title case

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-04-23 12:54:44 +10:00
Oliver b686cc1327
Model permission tweaks (#11788)
* Model permission tweaks

* Update CHANGELOG

* Update plugin docs

* Add warning
2026-04-23 11:25:43 +10:00
Matthias Mair 91977bd070
feat(frontend): add inline component addition to bom dialog (#11781)
* feat(frontend): add inline component addition to BOM dialog

closes https://github.com/invenhost/InvenTree/issues/311

* adapt to new var name
2026-04-23 09:27:50 +10:00
dependabot[bot] 8830d506b9
chore(deps): bump lxml from 6.0.3 to 6.1.0 in /src/backend (#11779)
* chore(deps): bump lxml from 6.0.3 to 6.1.0 in /src/backend

Bumps [lxml](https://github.com/lxml/lxml) from 6.0.3 to 6.1.0.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.3...lxml-6.1.0)

---
updated-dependencies:
- dependency-name: lxml
  dependency-version: 6.1.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>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-04-23 07:36:02 +10:00
Oliver a94798daaa
[bug] BOM validation fixes (#11783)
* Ensure a new BOM item triggers check_bom_valid

* Ensure BOM validation is properly recomputed on a BOM item update

* Add unit tests

* Tweak unit tests

* Update 'clear_bom' method
2026-04-22 22:44:48 +10:00
Matthias Mair d8cd1849ba
feat(frontend): add inline create modal to PurchaseOrderLineItem dialog (#11778)
* feat(frontend): add inline create modal to PurchaseOrderLineItem dialog

fixes https://github.com/invenhost/InvenTree/issues/299

* add changelog

* implement suggested fix

Co-authored-by: Oliver <oliver.henry.walters@gmail.com>

---------

Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-04-22 16:53:31 +10:00
Matthias Mair 6cb0cfbfcc
feat(frontend): warn if notes are dirty (#11772)
* feat(frontend): warn if notes are dirty

closes https://github.com/invenhost/InvenTree/issues/301

* fix type

* fix small style issues

* add changelog entry

* stop closing tab
2026-04-22 09:11:27 +10:00
github-actions[bot] d837c8a910
New Crowdin translations by GitHub Action (#11750)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-21 15:48:56 +10:00
Oliver d81a87225c
Ensure configuration settings are documented (#11674)
* Export configuration keys to JSON

* Support rendering of config options in docs

* Check for missing config settings

* Simplify macro

* Initial tests

* Fix collisions

* Updates

* Ensure values are stringified

* Ensure null values are exported correctly

* Refactor database config

- Observability on the config settings

* More docs updates

* Updates

* Add observability of cache settings

* More updates

* Observability

* Set env config for RTD

* Revert RTD config file

- Handled by ENV VAR on RTD account

* Visibility on background worker settings

* Tweaks

* Tweaks

* Split tracing settings out into separate file

- Improved discovery
- declutter settings.py

* Cleanup LDAP settings

* Social providers docs

* More updates

* Refactor ldap setup into own module

* Tweaks

* Formatting tweaks

* Tweak logic

* Fix INVENTREE_SESSION_COOKIE_SECURE setting

* Fix wrapping

* Add custom default
2026-04-21 12:23:53 +10:00
Matthias Mair 3c9b014939
add frontend cookie removal of mfa trust (#11768) 2026-04-21 10:26:39 +10:00
dependabot[bot] a0431b32d6
chore(deps): bump follow-redirects in /src/frontend (#11749)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.11 to 1.16.0.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.11...v1.16.0)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-version: 1.16.0
  dependency-type: indirect
...

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-04-20 09:17:26 +10:00
dependabot[bot] 87326ebb52
chore(deps): bump the dependencies group across 1 directory with 25 updates (#11763)
* chore(deps): bump the dependencies group across 1 directory with 25 updates

Bumps the dependencies group with 25 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [invoke](https://github.com/pyinvoke/invoke) | `2.2.1` | `3.0.3` |
| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |
| [boto3](https://github.com/boto/boto3) | `1.42.82` | `1.42.87` |
| [botocore](https://github.com/boto/botocore) | `1.42.82` | `1.42.87` |
| [django-dbbackup](https://github.com/Archmonger/django-dbbackup) | `5.2.0` | `5.3.0` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |
| [lxml](https://github.com/lxml/lxml) | `6.0.2` | `6.0.3` |
| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.0` |
| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.0` |
| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.0` |
| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b0` |
| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b0` |
| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.41.0` |
| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.62b0` |
| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.62b0` |
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.9.6` |
| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |
| [python-fsutil](https://github.com/fabiocaccamo/python-fsutil) | `0.16.0` | `0.16.1` |
| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.14.3` | `3.14.5` |
| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |
| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |
| [python-discovery](https://github.com/tox-dev/python-discovery) | `1.2.1` | `1.2.2` |
| [types-psycopg2](https://github.com/python/typeshed) | `2.9.21.20260223` | `2.9.21.20260408` |
| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260408` |
| [virtualenv](https://github.com/pypa/virtualenv) | `21.2.0` | `21.2.1` |



Updates `invoke` from 2.2.1 to 3.0.3
- [Commits](https://github.com/pyinvoke/invoke/compare/2.2.1...3.0.3)

Updates `bleach` from 4.1.0 to 6.3.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0)

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

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

Updates `django-dbbackup` from 5.2.0 to 5.3.0
- [Release notes](https://github.com/Archmonger/django-dbbackup/releases)
- [Changelog](https://github.com/Archmonger/django-dbbackup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Archmonger/django-dbbackup/compare/5.2.0...5.3.0)

Updates `importlib-metadata` from 8.7.1 to 9.0.0
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0)

Updates `lxml` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-6.0.2...lxml-6.0.3)

Updates `opentelemetry-exporter-otlp-proto-common` from 1.40.0 to 1.41.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.40.0...v1.41.0)

Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.40.0 to 1.41.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.40.0...v1.41.0)

Updates `opentelemetry-exporter-otlp-proto-http` from 1.40.0 to 1.41.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.40.0...v1.41.0)

Updates `opentelemetry-instrumentation` from 0.61b0 to 0.62b0
- [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.61b0 to 0.62b0
- [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.40.0 to 1.41.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.40.0...v1.41.0)

Updates `opentelemetry-semantic-conventions` from 0.61b0 to 0.62b0
- [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.61b0 to 0.62b0
- [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.9.4 to 4.9.6
- [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.9.4...4.9.6)

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

Updates `python-fsutil` from 0.16.0 to 0.16.1
- [Release notes](https://github.com/fabiocaccamo/python-fsutil/releases)
- [Changelog](https://github.com/fabiocaccamo/python-fsutil/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fabiocaccamo/python-fsutil/compare/0.16.0...0.16.1)

Updates `rapidfuzz` from 3.14.3 to 3.14.5
- [Release notes](https://github.com/rapidfuzz/RapidFuzz/releases)
- [Changelog](https://github.com/rapidfuzz/RapidFuzz/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/rapidfuzz/RapidFuzz/compare/v3.14.3...v3.14.5)

Updates `wrapt` from 1.17.3 to 2.1.2
- [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/1.17.3...2.1.2)

Updates `click` from 8.3.1 to 8.3.2
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/click/compare/8.3.1...8.3.2)

Updates `python-discovery` from 1.2.1 to 1.2.2
- [Release notes](https://github.com/tox-dev/python-discovery/releases)
- [Commits](https://github.com/tox-dev/python-discovery/compare/1.2.1...1.2.2)

Updates `types-psycopg2` from 2.9.21.20260223 to 2.9.21.20260408
- [Commits](https://github.com/python/typeshed/commits)

Updates `types-pyyaml` from 6.0.12.20250915 to 6.0.12.20260408
- [Commits](https://github.com/python/typeshed/commits)

Updates `virtualenv` from 21.2.0 to 21.2.1
- [Release notes](https://github.com/pypa/virtualenv/releases)
- [Changelog](https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pypa/virtualenv/compare/21.2.0...21.2.1)

---
updated-dependencies:
- dependency-name: invoke
  dependency-version: 3.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: bleach
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.42.87
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.42.87
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-dbbackup
  dependency-version: 5.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: importlib-metadata
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: lxml
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-common
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-grpc
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-http
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation
  dependency-version: 0.62b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation-dbapi
  dependency-version: 0.62b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-proto
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-semantic-conventions
  dependency-version: 0.62b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-util-http
  dependency-version: 0.62b0
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: platformdirs
  dependency-version: 4.9.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: protobuf
  dependency-version: 7.34.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: python-fsutil
  dependency-version: 0.16.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: rapidfuzz
  dependency-version: 3.14.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: wrapt
  dependency-version: 2.1.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: click
  dependency-version: 8.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: python-discovery
  dependency-version: 1.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: types-psycopg2
  dependency-version: 2.9.21.20260408
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: types-pyyaml
  dependency-version: 6.0.12.20260408
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: virtualenv
  dependency-version: 21.2.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
...

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

* fix style

* reduce diff

---------

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-04-20 09:17:00 +10:00
dependabot[bot] e6802beb07
chore(deps): bump pypdf from 6.10.0 to 6.10.2 in /src/backend (#11759)
* chore(deps): bump pypdf from 6.10.0 to 6.10.2 in /src/backend

Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.10.0 to 6.10.2.
- [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.10.0...6.10.2)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.10.2
  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-04-20 09:16:30 +10:00
dependabot[bot] 9324f7c9bb
chore(deps): bump dompurify from 3.3.3 to 3.4.0 in /src/frontend (#11756)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.3 to 3.4.0.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.3...3.4.0)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-18 10:57:46 +10:00
dependabot[bot] 068f05e58a
chore(deps-dev): bump pytest from 9.0.2 to 9.0.3 in /src/backend (#11743)
* chore(deps-dev): bump pytest from 9.0.2 to 9.0.3 in /src/backend

Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.3
  dependency-type: direct:development
...

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-04-15 09:11:30 +10:00
Oliver cead09bcd8
Fix for SVG sanitizing (#11742)
- Clear our non-breaking-space characters
- These can break SVG rendering in the browser
- Ref: https://github.com/inventree/InvenTree/pull/11655
2026-04-14 12:48:15 +10:00
github-actions[bot] a3584bd452
New Crowdin translations by GitHub Action (#11730)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-14 10:56:46 +10:00
Oliver 1e968a533d
Bump UI to 0.11.2 (#11738)
- Expose additional type hints
2026-04-13 22:26:33 +10:00
Oliver 23f43ffd33
[plugin] Render tables (#11733)
* Move useFilterSet state to the @lib

* Refactor useTable hook into @lib

* Refactor string helper functions

* Refactor constructFormUrl func

* Refactor Boundary component

* Refactor StoredTableState

* More refactoring

* Refactor CopyButton and CopyableCell

* Pass table render func to plugins

* Provide internal wrapper function, while allowing the "api" and "navigate" functions to be provided by the caller

* Adds <InvenTreeTable /> component which is exposed to plugins

* Update frontend versioning

* Update docs

* Handle condition where UI does not provide table rendering function

* Move queryFilters out of custom state

* Fix exported type

* Extract searchParams

- Cannot be used outside of router component
- Only provide when the table is generated internally

* Bump UI version

* Fix for right-click context menu

- Function needs to be defined with the context menu provider
2026-04-13 20:36:29 +10:00
Matthias Mair 27ce60dea3
!refactor(backend): remove API quirks (#11723)
* move action to post endpoint

* use default return code

* remove custom permissions on notifications endpoint

* add api bump

* update link

* fix assertation

* fix test to use post - this was refactored
2026-04-13 10:31:08 +10:00
Dään fc06aa354a
Add redis database index support (#11732) 2026-04-13 09:19:34 +10:00
Oliver 40b67f5f12
[API] Filter refactor (#11073)
* Lazy evaluation of optional serializer fields

- Add OptionalField dataclass
- Pass serializer class and kwargs separately

* Refactor BuildLineSerializer class

* Simplify gathering

* Refactor BuildSerializer

* Refactor other Build serializers

* Refactor Part serializers

* Refactoring more serializers to use OptionalField

* More refactoring

* Cleanup for mixin class

* Ensure any optional fields we added in are not missed

* Fixes

* Rehydrate optional fields for metadata

* Add TreePathSerializer class

* Further improvements:

- Handle case where optional field shadows model property
- Consider read_only and write_only fields

* Adjust unit tests

* Fix for "build_relational_field"

- Handle case where optional field shadows model relation

* Fix case where multiple fields can share same filter

* additional unit tests

* Bump API version

* Remove top-level detection

- Request object is only available for the top-level serializer anyway

* Cache serializer to prevent multiple __init__ calls

* Revert caching change

- Breaks search results

* Simplify field removal

* Adjust unit test

* Remove docstring comment which is no longer true

* Ensure read-only fields are skipped for data import

* Use SAFE_METHODS

* Do not convert to lowercase

* Updated docstring

* Remove FilterableSerializerField mixin

- Annotation now performed using OptionalField
- Code can be greatly simplified

* Ensure all fields are returned when generating schema

* Fix order of operations

* Add assertion to unit test

* fix style

* Fix api_version

* Remove duplicate API entries

* Remove duplicate API entries

* Fix formatting in api_version.py

* Tweak ManufacturerPart serializer

* Revert formatting change

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-04-12 10:50:29 +10:00
github-actions[bot] 5aaf1cfcab
New Crowdin translations by GitHub Action (#11695)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-11 21:31:37 +10:00
Oliver 1411673b21
Bump version to 1.4.0 dev (#11725) 2026-04-11 20:20:57 +10:00
Matthias Mair 366d4c398c
refactor(backend): move various endpoints to modelviewsets (#11617)
* move to router based path building

* fix url names

* fix import

* fix test helper

* fix test

* more test fixes

* fix api response

* remove url patch

* bump api version

* reduce diff

* Fix version tag

* fix schema generation errors

* adjust texts

* fix tests

* add test for notification behavior / readakk

* add todo for wrong endpoint

* rename

* adjust docstring

* fix outstanding permission todo - this pattern should be changed in the API
2026-04-11 17:37:16 +10:00
Oliver fffc55c764
Catch keyboard interrupts (#11720) 2026-04-11 13:46:55 +10:00
Oliver 3bd304bb4d
Cache schema checks (#11721)
- The isGeneratingSchema command is potentially expensive
- Cache the result (per thread)
2026-04-11 13:46:40 +10:00
Oliver 4581799d0b
Linkify search results (#11719)
* Linkify search results

- Closes https://github.com/inventree/InvenTree/issues/11717

* Divide search results
2026-04-11 13:23:05 +10:00
Oliver 62588a62a3
Additional report tags (#11718)
* Add some more convenience functions for report helpers

* Add "reverse" tag

* Add unit tests

* Add lstrip and rstrip

* Fix unit tests
2026-04-11 12:03:58 +10:00
Oliver a05d01b759
[UI] Fix superuser banner (#11716)
- Allow it to be dismissed again
2026-04-11 10:48:39 +10:00
dependabot[bot] fcdba5d76a
chore(deps): bump axios from 1.13.6 to 1.15.0 in /src/frontend (#11708)
Bumps [axios](https://github.com/axios/axios) from 1.13.6 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.6...v1.15.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-11 09:51:23 +10:00
dependabot[bot] 84f3fcf32e
chore(deps): bump pypdf from 6.9.2 to 6.10.0 in /src/backend (#11715)
* chore(deps): bump pypdf from 6.9.2 to 6.10.0 in /src/backend

Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.9.2 to 6.10.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.9.2...6.10.0)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.10.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-04-11 09:50:33 +10:00
dependabot[bot] 8e1e5b73ff
chore(deps): bump the dependencies group across 3 directories with 19 updates (#11714)
* chore(deps): bump the dependencies group across 3 directories with 19 updates

Bumps the dependencies group with 1 update in the /contrib/dev_reqs directory: [requests](https://github.com/psf/requests).
Bumps the dependencies group with 2 updates in the /docs directory: [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin) and [mkdocs-redirects](https://github.com/ProperDocs/properdocs-redirects).
Bumps the dependencies group with 17 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |
| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |
| [blessed](https://github.com/jquast/blessed) | `1.34.0` | `1.38.0` |
| [boto3](https://github.com/boto/boto3) | `1.42.77` | `1.42.82` |
| [botocore](https://github.com/boto/botocore) | `1.42.77` | `1.42.82` |
| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |
| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.73.1` | `1.74.0` |
| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |
| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |
| [pip-licenses](https://github.com/raimon49/pip-licenses) | `5.5.1` | `5.5.5` |
| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |
| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.56.0` | `2.57.0` |
| [tzdata](https://github.com/python/tzdata) | `2025.3` | `2026.1` |
| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |
| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.1` | `6.0.2` |
| [django-stubs-ext](https://github.com/typeddjango/django-stubs) | `6.0.1` | `6.0.2` |



Updates `requests` from 2.33.0 to 2.33.1
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.33.0...v2.33.1)

Updates `mkdocs-include-markdown-plugin` from 7.2.1 to 7.2.2
- [Release notes](https://github.com/mondeja/mkdocs-include-markdown-plugin/releases)
- [Commits](https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v7.2.1...v7.2.2)

Updates `mkdocs-redirects` from 1.2.2 to 1.2.3
- [Release notes](https://github.com/ProperDocs/properdocs-redirects/releases)
- [Commits](https://github.com/ProperDocs/properdocs-redirects/compare/v1.2.2...v1.2.3)

Updates `requests` from 2.33.0 to 2.33.1
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.33.0...v2.33.1)

Updates `bleach` from 4.1.0 to 6.3.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0)

Updates `blessed` from 1.34.0 to 1.38.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.34...1.38)

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

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

Updates `charset-normalizer` from 3.4.6 to 3.4.7
- [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.4.6...3.4.7)

Updates `googleapis-common-protos` from 1.73.1 to 1.74.0
- [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.73.1...googleapis-common-protos-v1.74.0)

Updates `grpcio` from 1.78.0 to 1.80.0
- [Release notes](https://github.com/grpc/grpc/releases)
- [Commits](https://github.com/grpc/grpc/compare/v1.78.0...v1.80.0)

Updates `importlib-metadata` from 8.7.1 to 9.0.0
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0)

Updates `pillow` from 12.1.1 to 12.2.0
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/12.1.1...12.2.0)

Updates `pip-licenses` from 5.5.1 to 5.5.5
- [Release notes](https://github.com/raimon49/pip-licenses/releases)
- [Changelog](https://github.com/raimon49/pip-licenses/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raimon49/pip-licenses/compare/v-5.5.1...v-5.5.5)

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

Updates `sentry-sdk` from 2.56.0 to 2.57.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.56.0...2.57.0)

Updates `tzdata` from 2025.3 to 2026.1
- [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/2025.3...2026.1)

Updates `wrapt` from 1.17.3 to 2.1.2
- [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/1.17.3...2.1.2)

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

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

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.33.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: mkdocs-include-markdown-plugin
  dependency-version: 7.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: mkdocs-redirects
  dependency-version: 1.2.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: requests
  dependency-version: 2.33.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: bleach
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: blessed
  dependency-version: 1.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.42.82
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.42.82
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: charset-normalizer
  dependency-version: 3.4.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: googleapis-common-protos
  dependency-version: 1.74.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: grpcio
  dependency-version: 1.80.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: importlib-metadata
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: pillow
  dependency-version: 12.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: pip-licenses
  dependency-version: 5.5.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: protobuf
  dependency-version: 7.34.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: sentry-sdk
  dependency-version: 2.57.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: tzdata
  dependency-version: '2026.1'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: wrapt
  dependency-version: 2.1.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: django-stubs
  dependency-version: 6.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-stubs-ext
  dependency-version: 6.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  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-04-11 09:49:53 +10:00
Oliver e6e775c1c0
Tweak admin for SelectionList model (#11712) 2026-04-10 14:33:22 +10:00
gunstr 16310617be
Worker debugging (#11677)
* Add debugging info for background workers to the devcontainer docs

* Add debugging info the the EventMixin docs

* Add an option to set sync=True to launch.json
2026-04-10 11:38:35 +10:00
Oliver 01bb113396
[UI] Adjust "superuser warning" banner (#11696)
* Fix typo

- evelevated -> elevated

* Add playwright test

* Add new control settings
2026-04-10 11:37:37 +10:00
Oliver 9965ebcfa1
Selection lists updates (#11705)
* Add search capability to selection list entry endpoint

* Use API lookup for selection entries

* Add renderer func

* Allow API filtering

* Fetch selectionentry data related to the selected data item

* remove now unneeded entry

* add missing modelinfo

* fix ref

* add api bump

* Provide optional single fetch function to API forms

- Useful if we need to perform a custom API call for initial data

* django-admin support for SelectionList

* Docstring improvements

* Apply 'active' filter

* Tweak api version entry

* Playwright tests

* Tweak docs wording

* Fix incorrect docstring

* Adjust playwright tests

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-04-10 09:22:12 +10:00
Oliver 6701f4085d
Improvements for data import (#11710)
- Do not double migrate if no plugin data imported
- Prevent settings write on a settings read
2026-04-10 09:21:57 +10:00
Oliver 1aa1296be8
Additional shipment helpers for order models (#11711) 2026-04-10 09:21:43 +10:00
Oliver 4b3b03ed4b
Invoke verbosity (#11706)
* Reduce verbosity of invoke tasks

- Suppress some django messages which are not useful to most users
- Verbosity can be added with --verbose flag

* Further improvements

* Better messaging

* Extra options

* No!
2026-04-10 07:58:53 +10:00
dependabot[bot] 8d24abcb2a
chore(deps): bump cryptography from 46.0.6 to 46.0.7 in /src/backend (#11701)
* chore(deps): bump cryptography from 46.0.6 to 46.0.7 in /src/backend

Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.6 to 46.0.7.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.6...46.0.7)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.7
  dependency-type: direct:production
...

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

* bump the rest

---------

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-04-10 07:20:24 +10:00
Oliver 9ce5f27375
Template Updates (#11702)
* Display filename pattern in template tables

* Add user update tracking to template models

* Update API / serializers

* Capture user information via API

* Display update information in tables

* Bump API version and CHANGELOG.md

* Prevent double increment of revision

* Fix
2026-04-09 16:10:23 +10:00
dependabot[bot] 2466059e4e
chore(deps-dev): bump vite from 7.1.11 to 7.3.2 in /src/frontend (#11679)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.11 to 7.3.2.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.3.2/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.3.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.3.2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
Co-authored-by: Matthias Mair <code@mjmair.com>
2026-04-09 08:34:55 +10:00
Matthias Mair ff2c3c7592
bump backend pkg (#11699)
* bump django

* bump jwcrypto
2026-04-09 08:34:30 +10:00
Oliver cc77d1d5e6
[UI] Pass custom fields through to the importer session (#11688)
* [UI] Pass custom fields through to the importer session

* Support custom model rendering within the data import wizard

* Update CHANGELOG.md

* Update UI version
2026-04-08 23:50:16 +10:00
Oliver b9a66da833
Fix storage helpers (#11697)
* Fix storage helpers

- Remove os.path reliance
- Move to standard django accessors

* Refactor rebuild_thumbnails
2026-04-08 22:54:42 +10:00
github-actions[bot] 91bf7619dc
New Crowdin translations by GitHub Action (#11675)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-08 21:46:56 +10:00
Oliver 343f0975b6
Export fix (#11693)
* Fix for ManufacturerPartList

- Support data export via API

* Add playwright tests

* Bump API version
2026-04-08 19:16:31 +10:00
Oliver 360beeaf52
Table icon fix (#11694) 2026-04-08 19:16:10 +10:00
dependabot[bot] fea08653c0
chore(deps): bump the dependencies group across 1 directory with 9 updates (#11671)
* chore(deps): bump the dependencies group across 1 directory with 9 updates

Bumps the dependencies group with 9 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [gunicorn](https://github.com/benoitc/gunicorn) | `25.2.0` | `25.3.0` |
| [bleach](https://github.com/mozilla/bleach) | `4.1.0` | `6.3.0` |
| [boto3](https://github.com/boto/boto3) | `1.42.76` | `1.42.77` |
| [botocore](https://github.com/boto/botocore) | `1.42.76` | `1.42.77` |
| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.73.0` | `1.73.1` |
| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |
| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.34.1` |
| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |
| [python-discovery](https://github.com/tox-dev/python-discovery) | `1.2.0` | `1.2.1` |



Updates `gunicorn` from 25.2.0 to 25.3.0
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/25.2.0...25.3.0)

Updates `bleach` from 4.1.0 to 6.3.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v4.1.0...v6.3.0)

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

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

Updates `googleapis-common-protos` from 1.73.0 to 1.73.1
- [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.73.0...googleapis-common-protos-v1.73.1)

Updates `importlib-metadata` from 8.7.1 to 9.0.0
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.7.1...v9.0.0)

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

Updates `wrapt` from 1.17.3 to 2.1.2
- [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/1.17.3...2.1.2)

Updates `python-discovery` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/tox-dev/python-discovery/releases)
- [Commits](https://github.com/tox-dev/python-discovery/compare/1.2.0...1.2.1)

---
updated-dependencies:
- dependency-name: gunicorn
  dependency-version: 25.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: bleach
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.42.77
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.42.77
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: googleapis-common-protos
  dependency-version: 1.73.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: importlib-metadata
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: protobuf
  dependency-version: 7.34.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: wrapt
  dependency-version: 2.1.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: python-discovery
  dependency-version: 1.2.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
...

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

* fix style

* 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-04-08 17:28:59 +10:00
Oliver 71373e3c19
Order line number (#11692)
* Add "line number" field for external orders

* Updated serializers

* Add columns to UI tables

* Update form fields

* Adds API ordering

* Bump API version

* Update CHANGELOG.md
2026-04-08 15:36:08 +10:00
Oliver 4d2ed8fcba
Update parameter report helper (#11690)
* Update parameter report helper

- Fallback to case insensitive lookup

* Add default value in case parameter is not found

* Add new report helper func
2026-04-08 14:14:44 +10:00
Oliver 2753a437cc
Fix spelling error in api_version.py (#11689) 2026-04-08 09:24:42 +10:00
Oliver 76b5cfcca2
Merge commit from fork
* Ensure the MeUserSerializer correctly marks fields as read-only

* Bump API version

* Add unit tests for the "me" endpoint

* Additional unit tests

* Add OPTIONS test
2026-04-08 08:19:39 +10:00
Nozomu Sasaki (Paul) 427a323914
Merge commit from fork
* fix(security): use SandboxedEnvironment for PART_NAME_FORMAT rendering

- Switch jinja2.Environment to jinja2.sandbox.SandboxedEnvironment in
  part/helpers.py to prevent SSTI via template tags in PART_NAME_FORMAT.
- Set pk=1 on the dummy Part instance in the validator to ensure
  conditional expressions like {% if part.pk %} are properly evaluated
  during validation, closing the sandbox bypass vector.

Fixes GHSA-84jh-x777-8pqq

* Style fixes

---------

Co-authored-by: Paul <morimori-dev@github.com>
Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
2026-04-08 08:17:36 +10:00
Oliver b8ec300fbf
Merge commit from fork
* Add note to plugin docs.

* Adjust logic for PluginListTable

* Add superuser scope to PluginInstall API endpoint

* Update unit test for API endpoint

* Explicitly set PLUGINS_INSTALL_DISABLED if PLUGINS_ENABLED = False

* Check for superuser permission in installer.py

* Additional user checks

* Sanitize package name to protect against OS command injection
2026-04-08 08:16:07 +10:00
Matthias Mair 9c0cb34106
Merge commit from fork
* fix behaviour

* style fixes

---------

Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
2026-04-08 08:13:39 +10:00
Oliver 68031d504f
Merge commit from fork
* Fix SSRF in remote image download

Add IP address validation to prevent Server-Side Request Forgery
when downloading images from remote URLs. The resolved IP is now
checked against private, loopback, link-local, and reserved ranges
before connecting.

Redirects are followed manually (up to 5 hops) with SSRF validation
at each step, preventing redirect-based bypass of URL format checks.

* Style fix

---------

Co-authored-by: tikket1 <chrisveres1@gmail.com>
2026-04-08 08:11:18 +10:00
Oliver 437dddc75f
[UI] Import context (#11685)
* Refactor ImporterDrawer

- Use a single, globally accessible object
- Provide global state management

* Expose global importer state to the plugin interface

* Improve registration of data import serializers

* Update frontend version / docs

* Bump API version
2026-04-08 06:01:00 +10:00