Commit Graph
100 Commits
Author SHA1 Message Date
OliverandGitHub 2b25a46eaa Prevent duplication completion of ReturnOrder (#12386) 2026-07-14 12:06:53 +10:00
OliverandGitHub fcc68ee69f Apply row-level locking when updating stock item quantity (#12385) 2026-07-14 12:02:02 +10:00
OliverandGitHub 6be654954e [refactor] SalesOrder allocation fixes (#12379)
* Use API for unit test

* Refactor SalesOrderSerialAllocationSerializer

- Move business logic into the SalesOrder model

* Add unit testing for serial allocation
2026-07-14 10:34:54 +10:00
OliverandGitHub d9b9a87893 [bug] Quantity fixes (#12375)
- Ensure valid quantity values on stock operations
- Regression testing
2026-07-14 10:25:27 +10:00
OliverandGitHub b64182b565 Uninstall fix (#12378)
* Prevent uninstall into structural location

* Regression tests
2026-07-13 20:21:56 +10:00
OliverandGitHub a12fd546ff use new helper func (#12373) 2026-07-13 18:54:10 +10:00
OliverandGitHub 431a6e49a0 fix concurrent update issues (#12380)
- Ensure database values are used for delta updates
- Regression tests
2026-07-13 18:53:18 +10:00
OliverandGitHub dd05611ea4 Hardening build outputs (#12376)
- ensure outputs cannot be double completed
2026-07-13 18:53:07 +10:00
OliverandGitHub 31f97934d0 [bug] Child fix (#12374)
* Remove outdated helper

* Fix children prop and add regression test
2026-07-13 18:48:49 +10:00
OliverandGitHub 766a8b41db [refactor] Remove MPTT mixin from StockItem model (#12360)
* Remove MPTT from StockItem model

* cleanup stock fixture file

* Remove tree rebuild code for StockItem

* Adjust API

* Update CHANGELOG  and API version

* remove tree references

* Additional checks

* Remove unused tests

* Add data migration test

* fix fk fields

* Cleanup

* Tweak unit test

* Revert bulk-create in unit test

* Don't rebuild StockItem models

* Add bulk_create_and_fetch helper model

- Overcome limitations of mysql

* Add unit test for new bulk-create helper

* Apply new helper to codebase

* Adjust unit test

* bug fix

* Adjust query limits

* Remove assert
2026-07-13 15:09:27 +10:00
OliverandGitHub 85e13b26ec Prevent duplicate receive operation on ReturnOrder (#12368) 2026-07-13 14:53:01 +10:00
OliverandGitHub a19771dec9 Progressive falloff for delay (#12369) 2026-07-13 14:52:40 +10:00
OliverandGitHub 0b3ba6c4eb [bug] Transfer order fixes (#12367)
* Handle failed transfer order transaction

* Prevent duplicate completion of transfer order
2026-07-13 14:35:07 +10:00
OliverandGitHub 32ca78f65c [bug] prevent double-complete of shipments (#12366) 2026-07-13 14:34:08 +10:00
OliverandGitHub c5e81a7820 [UI] Preview Drawer (#12117)
* Add <GlobalPreviewDrawer> component

* Allow plugins to interact

* provide either pk or instance data

* open preview drawer from calendar views

* Launch preview drawer directly from tables

* Add preview types

* Fix types

* CLear data on close

* Fix transition

* Allow caller to pass preview component

* AttributeGrid

* Use a table component

* Display info items

* Navigate to detail page from drawer

* Updates

* Refactor to use part detail view

* Display parameters

* Fix image caching

* Apply same to StockItem

* Remove old component

* Refactor details grid component

* Preview panel for PurchaseOrder model

* Implement for SalesOrder

* Support ReturnOrder

* SupplierPart and ManufacturerPart

* Support preview in parameteric tables

* support Company and BuildOrder

* Fix numbervalue

* BuildOrder and SalesOrderShipment

* location and category

* add user setting

* Fix typing

* Handle link clicks within preview drawer

* fixes

* Implement onClose callback

* Handle row click when panel preview is disabled

* Support custom detail links

* update playwright tests

* UI tweaks

* Add CHANGELOG entry

* docs

* define default API params per model type

* Split out more docs pages

* Simplify state ref

* Refactoring

* Simplify PreviewDrawer component

* observe user setting in calendar view

* Enable PreviewDrawer from RowViewAction

* Push render functions onto ModelInformation dict

* Fix lib compilation

* Refactor internal uses of RowViewAction

* typescript fixes

* Simplify PreviewDrawer component structure

* remove TODO placeholders
2026-07-12 20:11:27 +10:00
OliverandGitHub b42521f205 [refactor] Bulk actions (#12359)
* Add helper to bulk offload task

* bulk offload events

* Add unit test for bulk_offload_task

* Add context wrapper for bulk event creation inside looped funcs

* Add batching for stock tracking events

* Context wrapper for capturing offloaded tasks

* apply batching to other stock adjustment endpoints

* Add benchmarking tests for other API endpoints

* Benchmark test for serialize stock

* Reduce commet verbosity

* Apply benchmark to PO receive

* Refactor benchmarking

* PrefetchedPrimaryKeyRelatedField

- Provides O(1) lookup for serializer validation
- Significant improvements for large datasets

* Adjust unit test code

* Check for correct order of tracking operations
2026-07-12 15:58:09 +10:00
OliverandGitHub 4e00e2d0c6 [feature] Break apart assemblies (#12310)
* Implement API endpoint for stock disassembly

* Add basic frontend implementation

* Adjust required user permission

* Add preFormContent

* Read-only if serialized

* Adjust location and status of each subcomponent

* Handle null value

* display installed items in frontend form

* More unit tests

* Traceability

* Add docs

* Exclude virtual / consumable stock

* Additional docs

* Added bundled items docs

* More docs

* more docs tweaks

* Updated part docs

* Add playwright tests

* Robustify test

* suppress certain warnings in schema

* Adjust playwright tests

* bug fix

* Tweak playwright tests
2026-07-12 13:31:10 +10:00
OliverandGitHub 35eb839f08 [refactor] Refactor StockItem methods (#12358)
* Refactor StockItem methods

- Refactor out common functionality
- Code cleanup

* Cleanup

* Prevent override of existing deltas
2026-07-11 18:48:37 +10:00
OliverandGitHub 4bff83108f Remove dead pricing code on Part model (#12357) 2026-07-11 17:49:28 +10:00
OliverandGitHub 89d11e9e37 Fix data import bug (#12355)
- Fixes bug where imported data headers get out of sync
- Additional unit tests
2026-07-11 12:05:14 +10:00
OliverandGitHub 29fa66a75f Improved error context (#12350)
- More useful error messaging if a task fails
2026-07-10 20:32:35 +10:00
OliverandGitHub a1787c659c Bug fixes for PO receive (#12349)
* Bug fixes for PO receive

- Fix shadowed variable
- Notify listeners for all received items

* Cache part subs
2026-07-10 20:31:57 +10:00
OliverandGitHub 83508f4b12 [UI] Page Load Improvements (#12334)
* Parallel initial requests

* Remove debouncing

* Refactor lazy loading of desktop / mobile view

* Reduce initial waiting for loadable components

* Fix duplication of API calls

* Further reduce duplicate calls

* Combine user roles into /user/me/ endpoint

* lazy load global import drawer

* lazy load table in plugin context

* Patch ScanButton

* Added playwright tests for login

* Adjust thresholds
2026-07-10 18:08:25 +10:00
OliverandGitHub a38c3963f2 [UI] Form fix (#12348)
* Refactor API form fields

- Prevent reconstruction of all fields when single value changes
- Memoize components more intelligently
- Fix enter key callback ref

* memoize other field types too

* More memo

* Prevent duplicate API calls for related model field

* Add aria-label for IconField

* add playwright tests for form field coverage
2026-07-10 16:54:13 +10:00
OliverandGitHub 9fd074b202 Add IPN column to BOM pricing panel (#12344) 2026-07-10 00:21:10 +10:00
OliverandGitHub ae12fa342a Currency options fix (#12343)
- Ensure currency options are loaded dynamically
2026-07-10 00:21:01 +10:00
OliverandGitHub d4171f2dcf [docs] Admin docs (#12345)
* Enhanced documentation for admin center and django-admin

* Fix links and wording

* remove placeholders

* Fix links

* Fix more links
2026-07-10 00:01:00 +10:00
OliverandGitHub aec215ca2f [UI] Docs links (#12342)
* Simplify navigation links

* simplify version.py

* Simplify docs links

* Consolidate
2026-07-10 00:00:34 +10:00
OliverandGitHub c9d98cb545 Import internal price (#12341)
* Enable download from frontend panels

* Enable data import for part internal pricing

* Bump API version

* Update CHANGELOG
2026-07-09 23:17:41 +10:00
OliverandGitHub 996dbc5aa8 Adjust default behavior of "migrate" command (#12320)
* Adjust default behavior of "migrate" command

- Does not create new migration files automatically

* Add dummy field - ensure detected by CI

* Revert "Add dummy field - ensure detected by CI"

This reverts commit e7a101fe87.

* Fix typo

* Adjust contributing docs

* Add CHANGELOG entry
2026-07-09 20:41:56 +10:00
OliverandGitHub d041e251d2 [bug] Plugin load fix (#12329)
* Update plugin name

* Backup accessor for plugin name

* Add null check for plg_db
2026-07-09 10:37:07 +10:00
OliverandGitHub 6cc356220f Fix currency choices for PartPricing model (#12336)
* Fix currency choices for PartPricing model

- Remove dynamic choices from model definition
- Move validation step to the serializer
- Add validator to ensure only valid currencies can be used

* Add regression test

* Bump API version
2026-07-09 06:37:24 +10:00
OliverandGitHub 8e555f6b37 [UI] Add form submission shortcut (#12328)
- Ctrl + enter submits the form
2026-07-08 21:14:13 +10:00
OliverandGitHub 75f6960782 Robustify playwright tests (#12331)
* Robustify playwright tests

* More test tweaks
2026-07-08 20:31:34 +10:00
OliverandGitHub b63d829891 Fix for stocktake exporter (#12324) 2026-07-08 09:06:03 +10:00
OliverandGitHub 69ae28d0df [bug] Barcode bug fix (#12319)
* [bug] Check for null line_item when receiving items

* Additional unit testing

* Additional context

* Fix tests
2026-07-07 13:47:46 +10:00
OliverandGitHub 99d6f6a817 Table refactor (#12309)
* Refactor table components

- Move underlying components into src/components/tables
- Actual table implementation stay in src/tables

* Fix vite warnings
2026-07-07 00:28:21 +10:00
OliverandGitHub f787b81d7f Add --keep option to setup-test task (#12308)
Allow keeping existing data
2026-07-07 00:06:03 +10:00
OliverandGitHub ed62b5d9dd Pricing bugs (#12305)
* bug fix for get_price method

- Remove unused argument moq
- Allow case where 'multiples' = False

* Error handling for convert_to

* Error handling for PartPricing.save

* Remove unused function

* Revert function definition

* coverage ignore
2026-07-06 22:09:12 +10:00
OliverandGitHub 436bfed234 Order click-through on pricing panel (#12307) 2026-07-06 22:09:02 +10:00
e6a12564f3 [feature] Consumable part (#12295)
* Add "consumable" field to the Part model

* Add frontend integration

* Add badge

* Add docs

* Updated docs

* Add API filtering for new field

* Adjust API filters

* Update backend logic

* Adjust frontend

* Additional unit tests

* Update API version

* update test

* Add consumable icon

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-07-06 21:12:24 +10:00
OliverandGitHub 47ed86ef9a [UI] Pricing override (#12306)
* Correct display of pricing overrides

* Add min/max override reference lines

* Fix BarChart component
2026-07-06 20:46:28 +10:00
OliverandGitHub f93c813bb4 [db] Fix for UUID fields (#12301) 2026-07-04 07:57:55 +10:00
OliverandGitHub f656ac7263 [docs] Report helper docs (#12300)
* [docs] Report helper docs

* Split out docs for assets and snippets

* Updates
2026-07-03 21:40:28 +10:00
OliverandGitHub 4895fbc9fe [UI] Add "IPN" column to installed items table (#12297) 2026-07-03 19:27:32 +10:00
OliverandGitHub 4cb29f37c6 [UI] Snippet editor (#12299)
* Implement admin editor for report snippets

* Report asset management

* Add playwright test for report snippets

* Add playwright test for "Report Assets" panel

* Updated docs
2026-07-03 19:04:50 +10:00
OliverandGitHub 15c64d6695 [API] Refactor API for duplicating objects (#12294)
* Implement generic serializer for custom model duplication

* Apply pattern to BuildOrder

* Add more generic options

* Bump API version

* Adjust default option

* Refactor existing implementations

* Dynamic class typing

* Add duplicate field to more model types

- Company
- ManufacturerPart
- SupplierPart
- SalesOrderShipment

* Implement parameter duplication for more models:

- Company
- ManufacturerPart
- SupplierPart

* Simplify code

* Refactor
2026-07-03 18:04:59 +10:00
OliverandGitHub 836a05a104 [UI] Tweak unique keys (#12293)
- Reduce reliance on mutable idx
2026-07-02 20:06:53 +10:00
OliverandGitHub 5532946473 [UI] Fix imports (#12292)
- Adjust import structure
- Prevent wall-of-text warnings from vite
2026-07-02 18:28:12 +10:00
OliverandGitHub 9594ba9a98 Display login errors to user (#12288)
* Improved error message extraction

* Updated playwright test
2026-07-01 22:39:49 +10:00
OliverandGitHub 609e5ee105 Check build complete (#12289)
* Display non-field errors in table field

* Refactor validation for build output completion

- Run validation BEFORE trying to complete (serializer validation)
- Refactor and simplify common code

* Adjust unit tests

* Fix typing

* Remove debug
2026-07-01 16:47:33 +10:00
OliverandGitHub 09f85aeae9 [UI] Tree select in form fields (#12217)
* Add TreeField component

* Add chevrons in dropdown menu

* Custom node rendering

* Add childIdentifier

* Ensure full value gets displayed

* Fix for search results

* Refactor old renderers

* Override field types

* use definition filters

* Better location validation messages

* Tweaks

* Fix unit test

* Include icon

* Fix playwright test

* Fix call to onValueChange

* Updated playwright tests

* Use pathstring in selectedLabel (if available)

* Mark structural nodes

* Retain selected value when dropdown open

* Add better placeholder values

* Simplify field selection
2026-06-30 22:59:04 +10:00
OliverandGitHub 304c54530c Allow stock adjustment from "category" detail view (#12256) 2026-06-30 19:28:37 +10:00
OliverandGitHub fb280d80e7 Fix for STOCK_COUNT event (#12281)
* Fix for STOCK_COUNT event

- Prevent double emission of event type string

* adjust unit test
2026-06-30 18:54:35 +10:00
OliverandGitHub 6111aace1f [UI] Table field refactor (#12274)
* Use callback funcs

* Don't use idx to identify rows

* Add debug function for finding why a component re-rendered

* Do not pass 'control' through to each row

* Prevent unnecessary re-rendering of table rows

* Adjust order of operations for hooks

* Keep props hidden

* Use lightweight NumberInput

* Use NumberInput elsewhere

* Add comment

* use rowId instead of idx

* Generic row memos

* Compare errors too

* Fix for BomItemSubstituteRow

* Adjust more forms

* memoize quantity

* Memoize build lines

* Fix re-rendering issues for build allocation

* Fix for useConsumeBuildLinesForm

* Fix for transfer order table

* Fix useReceiveLineItems

* Remove memoized pattern

* Fix row keys

* Cleanup

* Create useStockItems hook for memoizing items

* Refactoring

* More refactoring

* Remove obj reference

- preventing shallow comparison from working

* Add error message to useWhyDidYouUpdate

* Cleanup

* Cleanup dead code

* Adjust modal width

* Change attr name

* Remove autoFillFilters prop

* Adjustments for serialized stock

* Fix typing

* Bump frontend version

* Adjustments for playwright testing

* Fix ref issue

* Remove debug entry

* Update CHANGELOG.md

* Reintroduce index to table header

* Refactor common component
2026-06-30 18:10:40 +10:00
OliverandGitHub 414aac0224 Fix stocktake bug for counting serialized items (#12280)
* Fix stocktake bug for counting serialized items

* Add unit test
2026-06-30 15:39:05 +10:00
OliverandGitHub 635ea8179e [UI] Fix 'available' display (#12279)
- Hide entirely for items not "in_stock"
2026-06-30 09:53:40 +10:00
OliverandGitHub f7e267cca8 Fix dashboard issue (#12275) 2026-06-30 00:44:25 +10:00
OliverandGitHub 12825aa1f4 [UI] Fix stock dates (#12272)
* [UI] Fix stock dates

- Display creation date
- Display stocktake date

* Switch to date type
2026-06-29 16:01:33 +10:00
OliverandGitHub 5b1a7db07f [UI] Table tweaks (#12271)
* [UI] Make part cell text copyable

* Reduce text size

* Reduce text size
2026-06-29 16:01:15 +10:00
OliverandGitHub 1da71ca3b9 [UI] Stock column fix (#12268)
* [UI] Fix StockColumn component

* stock table rendering tweaks
2026-06-27 11:29:40 +10:00
OliverandGitHub e847d96a88 Bug fix for exception handler (#12257) 2026-06-26 08:02:38 +10:00
OliverandGitHub b99b80957f [UI] Improve revision selector (#12254)
- Display upstream revisions too
2026-06-26 00:02:50 +10:00
OliverandGitHub 39b74c7e87 Skip "many" fields in DataExport (#12255)
- Exporting multi-dimensional datasets requires a custom exporter
2026-06-25 22:44:32 +10:00
OliverandGitHub e5fa67ca9f Project code active (#12250)
* Add 'active' field to the ProjectCode model

- Allows retiring of old project codes without deleting

* Update UI table

* Refactor ProjectCodeField

* Add unit test

* Bump API version and CHANGELOG
2026-06-25 14:26:53 +10:00
OliverandGitHub 3f36537391 Revert devcontainer to python 3.12 (#12249) 2026-06-25 12:23:44 +10:00
OliverandGitHub fa55917659 Update devcontainer Dockerfile (#12244)
- Update to python 3.14
- Fix base packages
2026-06-24 21:56:39 +10:00
OliverandGitHub 09f11a27d9 [report] Tweak datamatrix helper (#12240)
* [report] Tweak datamatrix helper

- Add support for "rectangular" display
- Support different image output formats

* Fix unit tests
2026-06-24 17:42:32 +10:00
OliverandGitHub 7e59c92422 1.5.0 (#12239)
* Add release entry for 1.4.0

* Add blank entry for 1.5.0

* Bump version to 1.5.0 dev
2026-06-24 13:53:58 +10:00
OliverandGitHub 74dc21b81c [bug] Allocated query fix (#12234)
* Fix BuildLineFilter.filter_allocated

- Required for mysql backend

* Spoecify output field
2026-06-24 12:49:43 +10:00
OliverandGitHub 75b27bd10a [UI] Tweak "order parts" wizard (#12236)
- Order supplier parts by "primary" value
- Attempt to auto-fill primary supplier part
2026-06-24 12:49:30 +10:00
OliverandGitHub 184ec37975 [UI] Tweak today color (#12235)
- Make "today" more obvious in calendar views
2026-06-24 12:49:19 +10:00
OliverandGitHub 50577da65a Add meaningful message on CSRF failure (#12216)
* Add meaningful message on CSRF failure

* Add link to CSRF_FAILURE_VIEW

* Add unit test for new CSRF feedback
2026-06-20 23:49:36 +10:00
f1a1f6f18a Agents (#12212)
* Add AGENTS project awareness

* Fix formatting

* Additional info

* Update AGENTS.md

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

* Update CLAUDE.md

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

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2026-06-20 22:50:32 +10:00
OliverandGitHub 5eaac37303 Fix signup warning (#12213)
- Should only fire on an actual signup attempt
2026-06-20 20:13:14 +10:00
OliverandGitHub ca16e6ec0a Report locale updates (#12208)
* Optional 'locale' arg to format_money

- Allows override of system locale when generating reports

* Updated documentation

* Add unit tests

* Handle invalid locale

* Handle invalid locale

* Add new global setting to control currency locale in reports

* Use setting in reports

* Add CHANGELOG entry

* Further unit tests

* Add unit tests for new setting

* Update docs

* More docs

* Refactoring:

- Change REPORT_CURRENCY_LOCALE to REPORT_LOCALE

* Extend unit testing

* Refactor format_number

* Add unit tests for explicit format strings

* Update examples for format_date

* Updated unit  tests

* Cleanup unit tests

* Fix more tests

* Adjust wording

* Remove global setting - simplify code

* Simplify unit tests

* Revert 'min_digits' to 'leading'

* Fix docs

* Refactor the render_currency function

- Move all functionality into report.py

* Cleanup duplicate code

* Updated docs

* Allow user to specify date_format

* Add support for 'leading' digits in render_currency

* Bug fix

* Fix unit test

* Add tests for "include_symbol"
2026-06-20 11:00:12 +10:00
OliverandGitHub 6657000d89 [UI] Fix NewsWidget (#12205) 2026-06-19 17:18:59 +10:00
OliverandGitHub 01fb74af25 [UI] Tree improvements (#12204)
* Hide expand icon for items without children

* Add searching to CategoryTree API

* Add "level" filter

* Automatically include parent tree when searching

* Include tree_id field

* Add search input to NavigationTree

* Add more API filters

* Load child nodes iteratively

* Fix dynamic loading of nodes

* Highlight selected item

* Include pathstring

* Fix insertion order

* Auto-expand to the selected ID

* Add "no results" message

* Refactor into generic components

* Expand to multi level

* Use async node loading functionality

* Add hovercard

* Implement same functionality for StockLocationTree API endpoint

* Adjust spacing

* Add connecting lines

* Add playwright test

* Bump API version

* Add CHANGELOG entry

* Update docs

* Update screenshot
2026-06-19 15:33:12 +10:00
OliverandGitHub f70d3e68d8 [UI] Fix status renderer functions (#12202)
Broken in recent refactor
2026-06-19 10:45:11 +10:00
OliverandGitHub 29b8ed91d2 [API] Adjust permissions for machine restart (#12197)
* [API] Adjust permissions for machine restart

Can only be actioned by a staff user

* Fix import

* Wrong class

* Extend unit test

* Bump API version

* Update CHANGELOG
2026-06-18 22:18:14 +10:00
OliverandGitHub 5b97acb79f [bug] Fix double save (#12194)
* Prevent double-save when creating an order

* Prevent double-save for BuildOrder

* More fixes

* Additional unit tests

* Revert code, remove create method against StockTrackingList

* Fix mixins
2026-06-18 20:18:46 +10:00
OliverandGitHub 2ca86808bb Fix order event name (#12196) 2026-06-18 20:00:18 +10:00
OliverandGitHub fc15f30f8f Report Generation Updates (#12187)
* Fix for TemplateEditor

- Allow dragging of split section

* Cleaner report template code

* Pass correct error message through

* Prevent multiple retries if running in worker thread

* Handle report merge error

* Add playwright tests for broken report printing

* Reduce scope for exception messages

* Reduce comment deltas

* Adjust unit test

* Raise ValidaitonError

* Handle message parsing

* Additional comment

* Fix unit tests
2026-06-18 13:41:44 +10:00
OliverandGitHub 4b29032c6e System Health Checks (#12193)
* Add worker health check invoke task

* Increase frequency of heartbeat task

* Adjust default threshold for worker health check

* Add server_health invoke func
2026-06-18 12:46:46 +10:00
OliverandGitHub 546958a1cb [UI] Additional table filters (#12186) 2026-06-17 15:02:07 +10:00
OliverandGitHub 38008d8204 Mysql filter fix (#12185)
* Improve "available" filter for BuildLine API endpoint

* Fix typo

* Additional unit tests

* Additional playwright tests
2026-06-17 14:50:17 +10:00
OliverandGitHub a670eabd10 [import] specify fk lookup field (#12180)
* Raise error on multiple matches

* add new field to handle lookup_field selection

* Add unit tests

* Update frontend

* Bump API version

* Ensure string-iness of lookup field
2026-06-17 11:03:26 +10:00
OliverandGitHub a8e5c83a94 Stocktake exporter updates (#12179)
* Optionally exclude zero-stock entries

* Add more columns to exported dataset

* Adjust unit test

* More test fixes
2026-06-16 14:14:51 +10:00
OliverandGitHub 6c18e64020 Permissions fix (#12168)
* Tighten API permissions

- Require authenticated user for NotFoundView
- Hide 'active_plugins' behind is_authenticated

* Patch permissions hole in GlobalSettingsPermissions

* Additional API unit tests

* Require auth for observability endpoint

* Add explicit permission for PluginAdminDetail

* Bump API version

* Update unit tests

* Revert changes
2026-06-15 22:06:49 +10:00
OliverandGitHub 3c17367e3c Data import permissions (#12169)
* Update data importer child permissions

- Row data
- Column data

* Add unit tests

* Cleanup session data after import is completed

* Further scope narrowing
2026-06-15 21:03:44 +10:00
OliverandGitHub aece90512c [UI] Edit cat param (#12166)
* Refactor form hook components

* Reset values when opening form

* Rebuild form field
2026-06-15 20:07:40 +10:00
OliverandGitHub d951638e75 Part category parameters (#12165)
* Add parameter support for PartCategory

* Update frontend

* Bump API version

* Update CHANGELOG
2026-06-15 18:49:01 +10:00
OliverandGitHub 0b5db2f16a Suppress dulwich warnings (#12163)
- Prevent erroneous dulwich warning messages
2026-06-14 18:20:57 +10:00
OliverandGitHub 6638dba0b9 SelectionList Updates (#12139)
* Adjust panel layout

* edit list on click

* Optionally fetch selection list items

* Display in DetailDrawer

* Fix component locations

* Refactor entry table

* Add new entry

* Disable if locked

* Only validate choices if provided via API

* Mark "choices" as read-only

* Prevent delete of locked items

* Add more API unit tests

* Bump API version

* Adjust unit tests

* Default include choices

* Updated playwright test

* Improve test robustness
2026-06-14 12:12:15 +10:00
OliverandGitHub 2b4f303770 Improve security posture of PDF reporting (#12160)
* Add custom URL fetcher for PDF rendering

* Fix for report helper functions

* Use new fetcher

* Additional unit tests

* Add new setting to control remote URL fetching

* validate URLs against SSRF

* Add global setting to disable URL fetching entirely

* Update docs

* Fix capitalization

* Fix logging backend

* Update CHANGELOG
2026-06-14 10:55:51 +10:00
OliverandGitHub b294bba66b [UI] Calendar Updates (#12161)
* Adjust delay values

* Add extra info to tooltip

* Additional padding

* Adjust padding for scrollbar

* Adjust month title as calendar scrolls
2026-06-14 10:52:22 +10:00
OliverandGitHub e4178b1fb8 [UI] Calendar month colors (#12157)
Discriminate months which slightly different colors
2026-06-13 19:56:40 +10:00
OliverandGitHub 3309032b26 Machine fixes (#12154)
* Handle missing machine location

- e.g. if location PK is invalid or has been deleted

* Add spotlight action for machine management panel

* Add unit test for code change
2026-06-11 16:32:14 +10:00
OliverandGitHub 39cc399a67 Improvements for template tables (#12155)
* Enable in-column filtering for model type

* Enable sorting by label size

* Enable backend ordering

* Improve filtering for report template table

* Update API version
2026-06-11 15:54:40 +10:00
OliverandGitHub 73bfa53a35 [report] Printing fixes (#12142)
* Check model permissions for printing

* Add unit tests

* Prevent printing of disabled reports

* Updated unit test

* Adjust unit test for printing

* Update API and CHANGELOG
2026-06-10 16:59:39 +10:00