Commit Graph
1513 Commits
Author SHA1 Message Date
Oliver 901dc024c0 [bug] Fix for plugin fetching (#12590)
- Prevent operation on stale plugin
2026-08-09 08:19:01 +10:00
Oliver 61fe3c9ce5 [bug] Fix PartStocktakeSerializer (#12587)
Closes https://github.com/inventree/InvenTree/issues/12555
2026-08-09 07:26:37 +10:00
OliverandMatthias Mair 94024ad23e [bug] Validate location when completing build outputs (#12570)
* [bug] Validate location when completing build outputs

- Cannot be structural

* Fix unit test

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-08-08 23:27:53 +10:00
Oliver c0ed42549f [API] Restrict barcode scan history (#12569)
- A non-staff user can only view their own results
2026-08-08 21:56:47 +10:00
Oliver 28fea388f6 [bug] Handle deleted Part (#12578) 2026-08-08 21:56:25 +10:00
Oliver 6cdc21c308 [sentry] Do not report MethodNotAllowed (#12584) 2026-08-08 20:51:21 +10:00
Oliver 21819ebc78 Fix flaky test on sqlite (#12582) 2026-08-08 20:27:50 +10:00
Oliver 5c798f4237 [bug] Fix part duplicate checks (#12574)
* [bug] Fix part duplicate checks

* Additional unit tests
2026-08-08 19:11:46 +10:00
Oliver cf2f64c83a [bug] Fix getLogoImage helper (#12577)
* [bug] Fix getLogoImage helper

- Do not return a file:// URI

* cleanup code
2026-08-08 19:11:32 +10:00
Oliver f1e6ec249d [bug] Fix post-delete actions (#12575)
- Check that underlying part is still available
2026-08-08 17:58:21 +10:00
Oliver 9b5c69da26 [bug] excel encoding for data import (#12576)
- Handle different encoding types for excel import
- Fail cleanly if cannot read file
2026-08-08 17:58:01 +10:00
Oliver fe82ff1f9e [refactor] Improve efficiency of check_missing_pricing (#12572) 2026-08-08 17:17:20 +10:00
Oliver 66b95cde5b [API] Handle AppRegistryNotReady (#12571)
Explicit handling for AppRegistryNotReady error
2026-08-08 16:11:30 +10:00
Oliver 358c464349 Barcode API bugs (#12565)
* Add explicit permission checks for barcode scanning

- Previous role_required attribute did not do anything

* Additional unit tests
2026-08-08 14:17:50 +10:00
Oliver ad818889df Deduplicate part pricing updates per session (#12564) 2026-08-08 12:27:32 +10:00
Oliver badf7ab300 Handle missing part (#12566)
Part instance may have already been deleted in post_delete hook for related models.
2026-08-08 12:27:19 +10:00
Oliver 02ee7ca2a1 Fix permissions for group and RuleSet endpoints (#12563)
- Require StaffRole in addition to is_staff
2026-08-08 10:43:15 +10:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Matthias Mair
4a7970b61f chore(deps): bump cryptography from 49.0.0 to 50.0.0 in /src/backend (#12546)
* chore(deps): bump cryptography from 49.0.0 to 50.0.0 in /src/backend

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

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 50.0.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-08-05 21:27:27 +12:00
Oliver 8998d835a4 [API] Optional field permissions (#12529)
* Add permissions check for OptionalField

* Adjust existing unit tests

* Add caching

* Additional tests

* Additional testing

* Add exclusions for owner and group models

* Bump CHANGELOG

* Detect demo branch based on software version

* Updated docstrings
2026-08-04 07:03:12 +12:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Matthias Mair
5e9a840e41 chore(deps): bump the dependencies group across 1 directory with 9 updates (#12526)
* 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 |
| --- | --- | --- |
| [boto3](https://github.com/boto/boto3) | `1.43.53` | `1.43.55` |
| [botocore](https://github.com/boto/botocore) | `1.43.53` | `1.43.55` |
| [django-oauth-toolkit](https://github.com/django-oauth/django-oauth-toolkit) | `3.3.0` | `3.4.0` |
| [grpcio](https://github.com/grpc/grpc) | `1.82.1` | `1.83.0` |
| [s3transfer](https://github.com/boto/s3transfer) | `0.19.1` | `0.19.2` |
| [tqdm](https://github.com/tqdm/tqdm) | `4.69.0` | `4.69.1` |
| [prek](https://github.com/j178/prek) | `0.4.10` | `0.4.11` |
| [types-psycopg2](https://github.com/python/typeshed) | `2.9.21.20260712` | `2.9.21.20260724` |
| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260518` | `6.0.12.20260724` |



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

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

Updates `django-oauth-toolkit` from 3.3.0 to 3.4.0
- [Release notes](https://github.com/django-oauth/django-oauth-toolkit/releases)
- [Changelog](https://github.com/django-oauth/django-oauth-toolkit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/django-oauth/django-oauth-toolkit/compare/3.3.0...3.4.0)

Updates `grpcio` from 1.82.1 to 1.83.0
- [Release notes](https://github.com/grpc/grpc/releases)
- [Commits](https://github.com/grpc/grpc/compare/v1.82.1...v1.83.0)

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

Updates `tqdm` from 4.69.0 to 4.69.1
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](https://github.com/tqdm/tqdm/compare/v4.69.0...v4.69.1)

Updates `prek` from 0.4.10 to 0.4.11
- [Release notes](https://github.com/j178/prek/releases)
- [Changelog](https://github.com/j178/prek/blob/master/CHANGELOG.md)
- [Commits](https://github.com/j178/prek/compare/v0.4.10...v0.4.11)

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

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

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.43.55
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.43.55
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-oauth-toolkit
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: grpcio
  dependency-version: 1.83.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: s3transfer
  dependency-version: 0.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: tqdm
  dependency-version: 4.69.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: prek
  dependency-version: 0.4.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: types-psycopg2
  dependency-version: 2.9.21.20260724
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: types-pyyaml
  dependency-version: 6.0.12.20260724
  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-08-03 05:48:00 +10:00
Oliver d024a3fe2f Fix for N+1 issues in stock item serializing (#12534) 2026-08-01 20:35:11 +10:00
github-actions[bot]andgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> 5216203e0d New Crowdin translations by GitHub Action (#12512)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-01 08:59:43 +10:00
Oliver b50ad42a3e Row locking for data import / update (#12515)
- Concurrency protection for data imports
2026-07-31 12:15:39 +10:00
Oliver 76a0005b61 Handle report error on missing svg data (#12514)
* Handle report error on missing svg data

* Add regression tests
2026-07-31 11:46:38 +10:00
Oliver 16639f35ac Fix for data import "update" (#12513)
- Use partial update on serializer
- Mark other fields as not required (pk only)
2026-07-31 11:43:34 +10:00
Bhumin Paladiya 5d758bbdf4 Fix admin search for PurchaseOrderLineItem (#12508)
Expand search_fields on PurchaseOrderLineItemAdmin to allow
searching by part name, part description, supplier SKU,
order reference, and supplier name.

Previously, only the optional 'reference' field was searchable,
making it impossible to find line items by part or order details.

- part__part__name: search by underlying Part name
- part__part__description: search by Part description
- part__SKU: search by Supplier SKU
- order__reference: search by Purchase Order reference
- order__supplier__name: search by Supplier name

Also adds a unit test to verify the search_fields are correctly
configured.
2026-07-31 10:24:05 +10:00
github-actions[bot]andgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> 20ea122a8b New Crowdin translations by GitHub Action (#12437)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-29 19:47:41 +10:00
Oliver 4b9bea17de remove errant test report (#12496) 2026-07-29 07:42:53 +10:00
Oliver 6dda125e5c Concurrency fix for scheduled tasks (#12493)
- Prevent multiple instances of scheduled tasks from plugins
2026-07-29 00:22:19 +10:00
Oliver 73c0bb9603 Improve validation for import session (#12492)
- Ensure that validated data is a dict shape
2026-07-28 23:50:44 +10:00
Oliver e918d84f60 Token save fix (#12491)
- Only update 'last_seen' field
2026-07-28 23:50:34 +10:00
Oliver e6d1ceb20b Filtering for report snippets (#12487)
* Filtering for report snippets

* Bump API version
2026-07-28 22:52:54 +10:00
Oliver 1cee1bdefb [API] Refactor stock adjustment endpoints (#12488) 2026-07-28 18:49:32 +10:00
Oliver 45f3810a8b Build output serial number docs (#12486)
* Remove serial number restriction when creating build outputs

* Updated docs

* additional docs
2026-07-28 18:49:14 +10:00
Oliver 6302748ec8 [bug] Unique constraint for serial numbers (#12483)
* Unique constraint for serial numbers

* Revert unrelated changes

* Updated tests
2026-07-28 16:30:32 +10:00
Oliver 4a8ee54ee7 [bug] Fix concurrency issues for allocation (#12478)
* Fix concurrency issues for allocation

* Remove duplicate atomic call

* Reduce query count
2026-07-28 12:37:01 +10:00
Matthias MairandOliver 253aee1ff3 fix(backend): registry install command (#11657)
* Unable to install plugins through web UI using custom registry and/or Python wheel files.
Fixes #11460

* use more fitting variable name

* add typing

* clean up logic flow - make easier to understand

* make check easier to understand

* reduce complexity

* ensure user is tested

* add more tests

* add user validation

* move test

* disable uninstall in test

* Update test_api.py

* style fix

* fix typing

* check if pip exsists

* fix gate

* fix typo

* reference pip instead

* make test more tolerant

* revert permission check change

* remove new test

---------

Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-07-28 11:06:06 +10:00
Oliver b33dda76d3 Refactor sales order methods: (#12477)
- Cancel sales order
- Assign serial numbers
2026-07-27 17:37:14 +10:00
Oliver eb5138127b [UI] Add search result preview (#12475)
* [UI] Add search result preview

* Updated search docs
2026-07-27 16:02:33 +10:00
Oliver 35f2f1aab6 On order filter (#12476)
* Add "on order" filter for Part model

- Added API filter
- Added table filter
- Added table column

* Bump API version

* Add table sorting

* Adjust API text
2026-07-27 13:01:56 +10:00
Senior Data Engineer e43390badb Add configurable default for PO line item merging (#12472)
* Add configurable default for PO line item merging

Introduce PURCHASEORDER_MERGE_LINE_ITEMS global setting to control the
default state of the merge_items option when creating purchase order lines.

Fixes #10947

* Apply ruff and biome formatting for CI
2026-07-27 11:10:11 +10:00
Oliver b5abf47115 Offfload email notification (#12470)
* Offfload email notification

* Run email sync in testing
2026-07-27 10:56:05 +10:00
Oliver b7d65d754b Fix part SalesOrder table (#12469)
* Fix part SalesOrder table

- Show line item quantity, not number of lines

* add regression test

* Bump API version
2026-07-26 21:38:41 +10:00
Oliver 145ef21196 [refactor] Build allocation endpoints (#12361)
* Create benchmark for completing a build and consuming all items

* Refactor build consume task

* Add benchmarking

* Unroll allocate-stock serializer

* Complete build only after allocations are consumed

* re-export batch_events

* Add BulkPrefetchSerializerMixin

* Reduce queries even further

* Refactoring

* Unroll code and use bulk operations

* Refactoring for auto-allocation

* Add more test coverage for auto-allocation

* Fix model_reference_fields

* adjust unit test

* Apply concurrency protection

* Additional unit tests

* Remove per-line validation

* Fix unit test

* Adjust unit test

* Use bulk_create_and_fetch

* Cleanup

* Reimplement wrapper func for backwards compatibility

* Fix unit test

* Increase max query time

* Fix serializer

* Enforce pk ordering

* FIx for mysql
2026-07-24 19:48:50 +10:00
Matthias Mair ea68eaf258 chore(backend): major allauth bump (#12454)
* mayjor allauth bump

* add PR link
2026-07-24 06:26:05 +00:00
Oliver 7d8b3ff160 Bug fix for exporting SalesOrderAllocation data (#12463)
* Bug fix for exporting SalesOrderAllocation data

* Regression test

* Bump API version

* Bug fix for unit test
2026-07-24 15:38:14 +10:00
Oliver 6bd4842fd8 [bug] Attachment str fix (#12461)
* Fix stringify for Attachment model

* Add regression tests
2026-07-24 12:30:40 +10:00
OliverandMatthias Mair bda2534ed3 [refactor] Complete shipment API endpoint (#12363)
* Use API for unit test

* Loop unrolling is super effective

* Additional unit testing

* Fix for bulk_create - use bulk_create_and_fetch

* Fix unit tests

* Fix unit tests

* Adjust unit test

* Revert return type on helper func

* Evaluate returned QuerySet

* Adjust unit tests

* Adjust complete_allocations

* Fix for bulk_create in unit test

* Reimplement complete_allocation for compatibility

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-07-24 10:22:22 +10:00
Oliver 829a4462c7 [bug] BOM checksum fix (#12455)
* Enforce ordering of BOM items

* Add prefetch to getRequiredParts

* Add regression test
2026-07-23 21:44:04 +10:00
Oliver 65efa51524 [docs] Report discovery (#12449)
* Adds decorator to mark an attribute for report context discovery

* Update context variables in docs

* Include fields captured against each model type

* Expose more properties

* Image URL tags

* Add more attributes

* Rearrange docs

* Simplify docs

* Enforce type hinting for reportable properties

* Expose more properties for the Order model

* Auto-discover related / linked models

* Remove extra text

* Collapsible blocks

* Reduce boilerplate

* Remove cruft

* Enhance documentation for filename generation

* Cleanup
2026-07-23 21:43:55 +10:00