* Adjust caching key to be numeric for user
* Add strong usermodel to colortheme
* switch to using user model everywhere for colortheme
* add some types
* use pk instead of id
* fix migration clash
* fix request
* Add <PermissionDenied /> page
* Check permissions for admin center
* Wrap <PartDetail> page in an error handler
- Display client or server errors
* Add error handlers to other detail pages
* Refactor error pages
* Add playwright tests
* Refactor component locations
* Get test to work
* updated translation base
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Calculate weighted average price when merging stock items
* refactor currency averaging
- Only add samples which have an associated value
* Revert to using two loops
* Check for div-by-zero
* Add unit testing for purchase price averaging
* feat: Add settings for SSO group sync
* feat: Handle SSO group sync
* fix(SSO): Add default group only if it is the only one
When syncing SSO groups on first user creation,
the default group should not be added if there is
already another group synced by the IdP
* docs: Add SSO goup sync instructions
* fix: Run pre-commit hooks
* i18n(SSO): Wrap settings name and description
* docs(SSO): Fix links to allauth docs
* fix(frontend): Add SSO_GROUP_KEY option
* add unittests for SSO
* docs(SSO): Make hint for example comfiguration a tip
* docs(SSO): Describe relation between SSO sync and signup group
* fix(SSO): Avoid potential key error
* feat(SSO): Create mapped group if it does not exist
* docs(SSO): Describe how groups can be created during signup
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* updated translation base
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations django.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add "top_level" filter for PartCategory API endpoint
* Update CUI tables
* Update PUI table
* Similar updates for stock location table
* Fix "parent" field label
* Bump API version
* bump pre-commit tools
* move uv config to pyproject
* style fix
* bump pre-commit deps again
* add config for code spell
* spelling fixes
* bump regex
* bump pre-commit
* bump versions again
* roll back regex version
* reverse uv bump
* compile for 3.12
* use 3.12 for ci
* remove unused env vars
* only cache main version
* set caching dep path
* remove caching distinction
* pip installl regex
* switch back to 3.9 default
* remove install test
* reset versions
* remove tomli
* Update playwright.config.ts
---------
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
* updated translation base
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>