* Added general data formatters
* Added usage of new date formatter
* Added usage of new date formatter
* Added usage of currency formatter
* style cleanup
* Moved to use real user and server settings
* fixed type
* Added in formatters again
* cleaned up unsued imports
* Factor out custom component for displaying project code information in a table
* Bump API version
* Update order serializers
- Annotate 'completed_lines' to each order type
* Build out columns for ReturnOrderTable
* Improvements to PurchaseOrderTable
* Building out SalesOrderTable
* Column tweaks
* Factor out project code column
* Factor out status column
* Factor out description column
* Factor out more columns
* More refactoring
* Center status labels
* Fix for PurchaseOrderLineItemTable
* Improve rendering
* Remove unused imports
* Refactor TotalPriceColumn
* Add generic currency column for rendering currency / money values
* Add filters for BuildTable
* Add inline renderer for ProjectCode
* Pass form response data to onFormSuccess callback
* Create new build from build index
* Edit existing build order
* Add projectcode to list
* Bug fixess
* Add basic table for displaying exchange rates
- Needed to extend current <InvenTreeTable> functionality for non-standard API endpoint data
* Add heading
* Add button to reload exchange rates
* Factor out common barcode actions
* Refactoring more icons
* Add PurchaseOrderLineItemTable component
* Improve renderer for SupplierPart
* Edit line item
* Table action column always visible
* Create <AddItemButton> component (refactoring)
* Table updates
- Improve actions column for table
- Move "download" button to right hand side
* Refactoring button components
* More cleanup
- Refactor <TableHoverCard> a bit
- Add placeholder for "receive items"
* Add ProgresBar component
* Make table columns switchable by default
- set switchable: false to disable
* Add project_code column to build table
* Fix row actions column for tables without actions
* Improve rendering for BuildOrderTable
* Cleanup unused imports
* Further fixes
* Remove another unused import
* unify file structure for settings
* fixed router
* clean up menu
* refactored user settings
mergerd profile and user setttings
* removed profile page entirely
* cleaned up account panels
* use more detailed link
* refactored settings page header
* fixed user settings save
* simplified user data handling
* fixed UserState invalidation after form submition
* removed username from account change
this can currently not be done safely
* Added basic security section
* Added way to remove SSO account
* Only show providers that are not in use
* Changed API to contain configuration change
* removed unused var
* Added email section to PUI
* Switched rending to vertical
* Added things for adding a new email
* removed sessions as we are not using that in PUI
* made rendering logic easier to understand
* alligned colums horizontally
* allign action buttons for email
* Fix TableHoverCard component
* Improving handling of very wide table cells
* Update panels for PartDetail
* Refactor <Thumbnail> component
* Add SupplierPart table
* Refactor forms
- Do not need to specify custom form name any more
* More fixes for modal forms
* Refactor forms field code
* Add generic row action components for edit and delete
* Add placeholder comments
* Add ability to edit supplier part from table
* Create supplier part
* Add missing import
* Revert scroll behaviour for wide cells
- Does not play nice on chrome
* Add placeholder panel for part manufacturers
* Fix inline renderer for manufacturerpart
* Cleanup unused imports
* Add icons to supplier part fields
* Increase size of form titles
* Another fix
* Add more panels to StockItem page
* Add some placeholder actions for StockItem page
* edit stock item
* Add info hover card to stocktable
* update extra info for part table
* Add extra columns to PurchaseOrder table
* Fix unused import
* updated typing to allow either link or action
* fixed typing
* made it possible to use an action instead of a link
* added ServerInfo Modal skeleton
* fixed anchor
* added content to ServerInfo
* Factored database lookup out
* Extended status API to CUI level
* extended ServerInfo to CUI level
* Made modal larger
* fixed default settings
* Refactored urls into seperate functions
* Refactored python version into seperate function
* Added endpoint and modal for PUI version modal
* switched to indirect imports to reduce imports
* Added copy button
* Added full copy button
* added default
* cleaned unused vars
* cleaned unused vars
* Refactored auth check for InfoView
* implemented suggested changes
* fixed check logic
* Add BuildOrderTable to part page
* Add UsedInTable
* Display SalesOrderTable on PartDetail page
* Fix horizontal overflow for panel group
* First pass at BomTable
* Adds <TableHoverCard> component
- Allows us to display more information in a table cell, without clutter
* Fix for row actions
- Prevent opening row actions menu from "clicking" the row
- Prevent selection of row action from "clicking" the row
* Further work on BOM table
- Column rendering
- Placeholder actions
* Prevent navigation to a panel group page and selection of invalid panel
* Fix unused references
* updated typing to allow either link or action
* fixed typing
* made it possible to use an action instead of a link
* added ServerInfo Modal skeleton
* fixed anchor
* added content to ServerInfo
* Factored database lookup out
* Extended status API to CUI level
* extended ServerInfo to CUI level
* Made modal larger
* fixed default settings
* Adds placehold "PartCategoryTree"
- Global navigation (within the "Part" context) for part categories
- Replaces multiple tree views from legacy UI
* FIx for ApiImage component
- Do not continuously request if the user is unauthorized
* Add StockLocation tree
* Add initial data to nav tree panels
* Display data
* Render tree view
* Fix unused variables
* Added more languages
* Added translation stumps for PUI
* Exclude PUI translations from deepsource analysis
* Added comments to deepsource exlusions
* Modified language selection to use language names
* Refactored language mappings to be more efficient
following advice of @wolflu05
* Removed pseudo language from selection
* Translation cleanup
* Switched t/Trans useage
* switched back due to rendering limitations
* Revert "Merge branch 'master' of https://github.com/inventree/InvenTree into matmair/issue5729"
This reverts commit 9b6e8fff88, reversing
changes made to 481cd70aca.
* Revert "Revert "Merge branch 'master' of https://github.com/inventree/InvenTree into matmair/issue5729""
This reverts commit 143a531c1e.
* add translations back in
* add translations back in
* update translation postitions
* move language initialisation after loading
this means only en-gb for now
* update positions
* updated translation base
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 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 messages.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 messages.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 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 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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* added deepsource coverage settings
* Ignore missing coverage
* trigger full CI run
* typo
* Added general status lookup endpoint
* Bumped API version
* cleaned up branch
* Fixed PlaygroundArea accordion behaviour
* Added dummy area for status labels
* Added StatusRenderer skeleton
* Fetch data from server
* Made server api state session persistant
* cleanup
* Added StatusLabel lookups based on ModelType
* Made use of translated status fields
* Added new ModelTypes
* Used new StatusRenderer
* Simplified renderer
* style fixes
* revert style change
* Squashed commit of the following:
commit 5e8ea099068475fd257d8c172348dc6f3edf9bcf
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 09:22:38 2023 +0200
Update ui_plattform.spec.ts
commit 49da3312beff7fd6837ea741e621df221c445d19
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 07:56:25 2023 +0200
more logging
commit 5337be4c3990051b805a6fce2e79ca4030b4afe5
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 07:56:11 2023 +0200
added filter method for undefined settings that overwrite defaults
commit 5df8a0b3e77cd5dcf04c39ad7638ac845df75e4c
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 03:05:06 2023 +0200
you do not need to string a string
commit 0650d3b3a0132889c2a76de38db38224e974d205
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 03:04:34 2023 +0200
fix things that were borken for no good reason
commit a40dbfd1364cf01465037350184f59d2a2a8afab
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 02:39:34 2023 +0200
reduce unneeded blocking timeouts
commit bf9046a5361ae919e70662e717d6156434b6fe43
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 02:34:10 2023 +0200
catch server fetching errors
commit aa01e67e8c8e789fdf755ac4481e730fe5ea4183
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 02:33:29 2023 +0200
move init as things are now plugged together different
commit 290c33bd3125d50779497d6fc5981d5813b58f5d
Author: Matthias Mair <code@mjmair.com>
Date: Tue Oct 24 01:49:32 2023 +0200
do not log a failed automatic login try - why would you?
* Update ApiToken model
- Add metadata
- Remove unique_together requirement
- Add last_seen field
* Update admin page for token
* Store metadata against token on creation
* Track last-seen date
* Allow match against existing valid token
- If token is expired or revoked, create a new one
- Prevents duplication of tokens
* Update unit tests
* Fix default server
* Improve functionality for extracting frontend settings
* Update default server list
* Use f-strings
* Revert logger name
* Remove mark_safe warning
* Create new APIToken model
- Has custom 'name' field
- Has custom expiry date
* Add data migration to port across any existing user tokens
* Adds 'revoked' field - tokens can be manually revoked
* Update API token - allow multiple tokens per user
* Custom token auth handler
- Correctly handles revoked tokens
- Correctly handles expired tokens
* Update AuthRequiredMiddleware
- Check for token active status
* Token API endpoint improvements
- Can return tokens with custom names
- Return more information on the token too
* Consolidate migrations
* When requesting a token, overwrite inactive token for authenticated user
- An authenticated user must receive a token
- Unauthenticated users cannot do this
* Fix
* Use token name for frontend
* Force token expiry, and generate default expiry date
* Force generation of a new token when requested
* Reduce data exposed on token API endpoint
* Display redacted token in admin site
* Log when new token is created for user
* Add default value for token
- Allows raw token to be viewed in the admin interface when created
- After created, no longer visible
- Also provides ability to generate token with static prefix
* Fixes for admin interface
- Prevent user and expiry from being edited after creation
* Implement unit tests for token functionality
* Fix content exclude for import/export
* Fix typo
* Further tweaks
- Prevent editing of "name" field after creation
- Add isoformat date suffix to token
* Longer token requires longer database field!
* Fix other API tokens
* Remove 'delete' method from token API endpoint
* Bump API version
* updated translation base
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.po from Crowdin
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Add CompanyDetail page
* Add "edit company" button (and associated form)
* Implement dropdown actions for company page
* Update actions for PartDetail
* Adds overlay while modal is loading
- Lets the user know that something is at least happening in the background
* Update panels
* Implement separate pages for different company types
- Mostly for better breadcrumbs
* Placeholder actions for build detail
* Add stock table to company page
* typescript linting
* Fix unused variables
* remove dodgy improt
* Logout user if user query fails
* login / logout improvements
- Add timeout to request (otherwise hangs indefinitely)
* Improve "checking login" page
* Update login form
- Disable button if logging in
- Show loader
* Fixed unused vars
* Remove read_only field from API OPTIONS
- 'read_only' is a reserved field for some Mantine components
* Fixing further errors for related field model
* Handle bad values for numericalValue
* Fix for default values for API forms
* Fix for choice field
- Do not set form default value when constructing element
* Tweak for PartDetail page
* Implement simple "PartVariantTable" component
- Not yet nested
- More work needed for table nesting
* Fix issue rendering same image multiple times
- Use useId hook to generate random key
* Update PartParameter list API endpoint
- Allow part_detail extra field
- Add FilterSet class
- Allow filter to include variants
* Update PartParameterTable
- Display part column
- Allow returned parts to include templates of base part
- Hide actions for templated parameters
* Fix some code smells
* Add some dummy pages for settings
* Add some placeholder pages for settings
* Refactor 'useInstance' hook
- Allow use without a pk
* Make response status code available
* Cleanup user settings page
* Fill out (empty) panels for system settings
* Update URLs
* Add more user information to "me" API endpoint
* Implement global user context
- User information available globally
- Add placeholder page for plugin settings
* remove debug entry
* Add first-pass implementation of plugins table
* Add icon to plugin table
* plugin table improvements
* Add SettingsContext component
- Allows list of settings to be drilled down through props
- Also provides a way of reloading the settings list
* Update settings page
* Update settings detail API endpoints
- No longer case sensitive
* Display boolean values, and allow them to be edited
- Still some work to be done here
- Need to pass the base URL down through useContext
* Allow editing of non-boolean settings too
- Required some adjustment to existing forms interface
* Fix rendering of choice field within modal
* Display correct value for choice fields
* Expose settings units to API
* Updates
- Display units for setting (if available)
- Rename fieldType to field_type
- React does not like snakeCase props
* Improve form handling
* Add global server settings keys
* Add table for project codes
* Use cache to ensure that settings are not rebuilt too often
* Update api version notes
* Add username helper function to user state
* Remove SettingsContext
- Replace with global state manager
- Does not currently refresh properly
* Remove UserContext
* Update BaseContext
* Cleanup to match master
- Integrated many improvements from current master
* Get settings items working again
- Now integrates nicely with userSettingsState and globalSettingsState
* Improve generation of user name
* Handle user settings too
* url endpoint fix
* Add new table for custom unit management
* Update global settings
* Track current panel selection in local storage
* Simplify part detail tabs
* Fix <PanelGroup> instances
* Handle missing model type for rendering
* Add some more API endpoints
* Add PartParameter table
* Add callback to create new part parameter
* Allow PartParameter list API endpoint to be searched
* More PanelGroup collapse tweaks
- Still requires more attention
* Fix logic for related part table
- Need to rebuild columns when part id changes
* Further fixes for related part table
* Re-implement change to PanelGroup
- useLocalStorage
- Change got clobbered in recent merge conflict
* Add part thumbnail to StockItemTable
* Add simple <YesNo> button
- Can be improved later
* Fix for PartTable
* Allow CORS requests to /static/ endpoint
* Updates to other existing tables
* Update URLs for dashboard items
* Improvements to API handling on react UI
- Do not force "/api/" prefix to the base URL of the server
- We will need to fetch media files from the server (at /media/)
- Extend API URL helper functions
* Update some more hard-coded URLs
* Fix search API endpoint
* Fix div for panel tab
* Fix debug msg
* Allow CORS request to /media/
* Add ApiImage component
- Used to fetch images from API which require auth
- Requires some tweaks to back-end CORS settings
- Otherwrise, image loading won't work on new API
* Update build order table
* Remove debug code
* Update part detail page
* 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 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 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 messages.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 messages.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 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 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 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 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 messages.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 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 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 django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.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 messages.po from Crowdin
* Fix: New translations messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.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 messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.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 messages.po from Crowdin
* Fix: New translations messages.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 messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Fix: New translations messages.po from Crowdin
* Fix: New translations django.po from Crowdin
* Improvements to API handling on react UI
- Do not force "/api/" prefix to the base URL of the server
- We will need to fetch media files from the server (at /media/)
- Extend API URL helper functions
* Update some more hard-coded URLs
* Fix search API endpoint
* Fix div for panel tab
* Fix debug msg
* Add interface definition for settings
* Fetch global and user settings as state object
* Cleanup dead code
* Fetch settings when performing token login