2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-17 04:25:42 +00:00
Commit Graph

2450 Commits

Author SHA1 Message Date
e6e76c7a2c Fix role name (change 'returns' to 'return_order')
- Similar to existing roles for purchase_order and sales_order
2023-03-14 21:07:53 +11:00
e70d013655 Splits order.js into multiple files
- Javascript files was becoming extremely large
- Hard to debug and find code
- Split into purchase_order / return_order / sales_order
2023-03-14 20:59:01 +11:00
095c4d5d05 Adds template and JS code for manipulation of contacts
- Display a table
- Create / edit / delete
2023-03-14 20:44:08 +11:00
7d8837ba9a Update navbar text 2023-03-14 17:35:07 +11:00
718ad037cf Adds basic "index" page for Return Order model 2023-03-14 17:29:44 +11:00
139170c26b Adds ReturnOrder and ReturnOrderAttachment models 2023-03-14 16:04:56 +11:00
06f8a50956 Update task limiting (#4472)
* Add new setting to control how often we check for new version

* Improved names for settings

* Fix bug in existing backup task

* Refactor backup_task functino

- Add a helper function for running tasks at multi-day intervals

* Refactoring

* Add unit tests for new helper function

* Add multi-day holdoff to "check for updates"

* Allow initial attempt

* Add missing return

* Fixes for unit test
2023-03-09 17:46:07 +11:00
2edb7f2b55 Adds "stock value" calculation to stock table (#4471)
* Add part pricing data to stockitem list serializer

* Add "stock value" column to stock list table
2023-03-09 00:18:39 +11:00
34875828d7 Report template currency updates (#4469)
* Move render_currency into helpers.py

- Add duplicate tag to report.py
- Add option for currency conversion (optional)

* Update report templates

- Use "render_currency" instead of including price_data template

* Remove 'price_data.html' template entirely
2023-03-08 23:26:26 +11:00
beac7d15df Bug fix for units text in part label (#4470)
- Display even if no other badges are rendered
- Fixes https://github.com/inventree/InvenTree/issues/4467
2023-03-08 23:18:22 +11:00
9c594ed52b Part table stock filtering (#4462)
* Update PartSerializer queryset annotation

- Add 'total_stock' (in_stock + variant_stock)
- Update 'unallocated_stock' to use total_stock

* Allow API filtering by total_in_stock value

* Refactor partStockLabel method

- We'll use this in the partTable also
- Allow us to prevent further API calls

* Cleanup loadPartTable

* Refactor part variant table

* More updates to part badge function

* Bump API version

* js linting
2023-03-08 13:59:51 +11:00
106c238af5 Add bulk delete for purchase order line items (#4452)
* add bulk delete for purchase order line items

* bump API version

* fix JS style

* handle parts with no linked manufacturer part correctly

* add unit test for purchase order line item bulk delete
2023-03-08 10:50:24 +11:00
e263b2a8c0 Bug fix for rendering allocations against build outputs (#4459) 2023-03-07 21:16:53 +11:00
5ba75c868d total_price for orders (#4447)
* Adds unit test for counting queries on PurchaseOrderList API endpoint

- We will work to make this queryset more efficient

* PEP fixes

* Add 'total_price' fields to SalesOrder and PurchaseOrder models

* PurchaseOrder list API now has constant query count

* Data migration for updating existing PurchaseOrder and SalesOrder instances

- Calculate total_price for any existing order
- Will fail if exchange rates are not available

* Add total_price_currency to API serializers

* Render total_price in SalesOrder table

* Add ability to filter both lists by total_price field

* Update total_price whenever an order is updated

* Update total price whenever a lineitem is saved or deleted

* Add query-counting unit test for SalesOrder list API

* Calling refresh_from_db inside a save() method is *not* a good idea
2023-03-05 22:22:18 +11:00
c0f405243a Add total cost column to purchase order list (#4445)
* add total price column to purchase order list

* bump API version
2023-03-04 10:09:40 +11:00
f4bb7c29c7 Settings translation text consistency (#4440) 2023-03-03 10:38:24 +11:00
f86bea75a1 Add base part info to [Add Supplier Part] modal form (#4427)
* Add base part info to [Add Supplier Part] modal form

* fix JS style
2023-03-01 08:16:26 +11:00
03e105dd95 Fix some regressions in new "Responsible" filter for build orders (#4430)
* fix responsible user/group icons with translations

* fix display of active filters after recent changes
2023-03-01 07:25:12 +11:00
e9a1b57941 Add unallocated quantity to StockItem renderer (#4425)
* add unallocated quantity to StockItem renderer

* introduce parameter to switch between total quantity and available quantity
2023-02-28 12:22:27 +11:00
eefad0baca Convert pricing data in stock table (#4417)
(cherry picked from commit 468a0f1fdf)
2023-02-25 18:59:16 +11:00
75b223acc4 Consolidate label printing and reporting options into a single screen (#4415) 2023-02-25 15:54:51 +11:00
f523fb44f6 Filter build orders by responsible owner (#4383) (#4408)
* add assigned_to filter to Build API

* extend API to filter build orders by assigned owner

* rename API filter to 'responsible'

* add 'Responsible' filter to build oders table

* add user/group icon to owners in 'Responsible' column

* remove unused python class import

* bump API version number

* fix handling of invalid IDs

* refactor filter options as a callback function

* fix JS styling
2023-02-25 13:52:12 +11:00
c46f153449 Bug fix for build detail template (#4412)
- Remove reference to old expand/collapse templates (which no longer exist)
- Update tables to use javascript buttons
2023-02-25 09:56:13 +11:00
ed7d2e1262 Add option to filter stockitems by "external" location status (#4407)
* Add option to filter stockitems by "external" location status

* flake fix
2023-02-25 07:19:41 +11:00
8b7e41baf9 fix stock health calculation to account for allocated stock (#4385) (#4399)
* fix stock health calculation to account for allocated stock (#4385)

* add required stock from sales orders to demand and stock_health calculation
2023-02-24 12:01:40 +11:00
efb55c720f Improve wording for "Inherited" option of BOM items (#4376) (#4397)
* improve wording for "Inherited" option of BOM items (#4376)

* add migrations
2023-02-24 06:58:54 +11:00
93ce55298f improve stock status badges for parts (#4385) (#4393)
* improve stock status badges for parts (#4385)

* fix trailing whitespace
2023-02-23 08:41:02 +11:00
92a049be96 Adds ability to export sales order line table to a file (#4392)
* Adds ability to export sales order line table to a file

* Fix expand / collapse buttons

* Fix other expand / collapse buttons

* Add export functionality for "extra" line items
2023-02-23 07:20:03 +11:00
fa7a33dc9c add missing units to Build Order view (#4386) (#4388)
* add missing units to Build Order view (#4386)

* JS styling fixes

* more JS styling fixes
2023-02-22 09:51:09 +11:00
a2b55314cb Adding icons for forms (#4381) 2023-02-21 13:57:10 +11:00
62455199f3 Js forms updates (#4378)
* Refactor forms for creating and editing SalesOrder

- Common function for defining fields

* More visual improvements for forms

* Refactor fields for SupplierPartPriceBreak

* More refactoring

* Refactor for stockitemtestresult table

* Comment fields

* JS linting fix
2023-02-21 07:24:49 +11:00
17bfea4428 add user setting to select a default label printer (#4349) (#4362) 2023-02-21 07:24:11 +11:00
75ca325892 Add "external" field to StockLocation (#4377)
* Add "external" field to StockLocation

- New model for field
- Database migrations
- Serializer / API updates
- Front end tables / filters

* Update API version
2023-02-21 00:42:18 +11:00
782ae133b7 Part duplicate bug fix (#4370)
* Make 'copy_category_parameters' part of actual serializer

* Parameter copying is now handled by the API serializer

* Make field not required

* linting fixes

* pre commit fix

* Fix unit tests

* Further fix for unit test

* Unit tests for category parameter duplication
2023-02-20 18:48:55 +11:00
2986f8d61a clear IPN field when duplicating part and PART_ALLOW_DUPLICATE_IPN is False (#4359) (#4365) 2023-02-20 07:17:00 +11:00
bf8a59c604 Fix bug rendering part without a category (#4369) 2023-02-19 22:39:36 +11:00
cde2050236 Client side QR Codes (#4357)
* Add JS for qrcodejs

Ref: https://davidshimjs.github.io/qrcodejs/

* Simple function for rendering a QR code

* Refactor QR code view for Part

* Replace QR code view for SupplierPart

* Refactor QR codes for stock item and stock location models

* Remove base QRCodeView entirely
2023-02-17 13:33:36 +11:00
0f445ea6e4 [Feature] Stocktake reports (#4345)
* Add settings to control upcoming stocktake features

* Adds migration for "cost range" when performing stocktake

* Add cost data to PartStocktakeSerializer

Implement a new custom serializer for currency data type

* Refactor existing currency serializers

* Update stocktake table and forms

* Prevent trailing zeroes in forms

* Calculate cost range when adding manual stocktake entry

* Display interactive chart for part stocktake history

* Ensure chart data are converted to common currency

* Adds new model for building stocktake reports

* Add admin integration for new model

* Adds API endpoint to expose list of stocktake reports available for download

- No ability to edit or delete via API

* Add setting to control automated deletion of old stocktake reports

* Updates for settings page

- Load part stocktake report table
- Refactor function to render a downloadable media file
- Fix bug with forcing files to be downloaded
- Split js code into separate templates
- Make use of onPanelLoad functionalitty

* Fix conflicting migration files

* Adds API endpoint for manual generation of stocktake report

* Offload task to generate new stocktake report

* Adds python function to perform stocktake on a single part instance

* Small bug fixes

* Various tweaks

- Prevent new stocktake models from triggering plugin events when created
- Construct a simple csv dataset

* Generate new report

* Updates for report generation

- Prefetch related data
- Add extra columns
- Keep track of stocktake instances (for saving to database later on)

* Updates:

- Add confirmation message
- Serializer validation checks

* Ensure that background worker is running before manually scheduling a new stocktake report

* Add extra fields to stocktake models

Also move code from part/models.py to part/tasks.py

* Add 'part_count' to PartStocktakeReport table

* Updates for stocktake generation

- remove old performStocktake javascript code
- Now handled by automated server-side calculation
- Generate report for a single part

* Add a new "role" for stocktake

- Allows fine-grained control on viewing / creating / deleting stocktake data
- More in-line with existing permission controls
- Remove STOCKTAKE_OWNER setting

* Add serializer field to limit stocktake report to particular locations

* Use location restriction when generating a stocktake report

* Add UI buttons to perform stocktake for a whole category tree

* Add button to perform stocktake report for a location tree

* Adds a background tasks to handle periodic generation of stocktake reports

- Reports are generated at fixed intervals
- Deletes old reports after certain number of days

* Implement notifications for new stocktake reports

- If manually requested by a user, notify that user
- Cleanup notification table
- Amend PartStocktakeModel for better notification rendering

* Hide buttons on location and category page if stocktake is not enabled

* Cleanup log messages during server start

* Extend functionality of RoleRequired permission mixin

- Allow 'role_required' attribute to be added to an API view
- Useful when using a serializer class that does not have a model defined

* Add boolean option to toggle whether a report will be generated

* Update generateStocktake function

* Improve location filtering

- Don't limit the actual stock items
- Instead, select only parts which exist within a given location tree

* Update API version

* String tweaks

* Fix permissions for PartStocktake API

* More unit testing for stocktake functionality

* QoL fix

* Fix for assigning inherited permissions
2023-02-17 11:42:48 +11:00
6627a8097b Stock API filtering fix (#4350)
* Improve filtering options for StockItem list

- Make use of StockFilter introspection

* Remove outdated filter

* remove outdated "max_results" parameter

* Fix cascade issue for stocklist API

* Add relationship filters to the StockItemFilter

* Fix filtering by 'status' and 'allocated'

* Refactor 'customer' and 'expired' filters

* Cleanup

* Adds unit test for top-level stock location filtering
2023-02-17 10:34:18 +11:00
b02ce1f01e show units in [Add Stock] modal (fixes #4351) (#4352) 2023-02-17 07:25:09 +11:00
d5459e5ddf Show units next to [No Stock]-badge in part search (implements #4330) (#4339) 2023-02-14 07:00:53 +11:00
2fbbce1550 Set Responsible User for a Part during creation or API (#4326)
* update dev reqs (#117)

* Fix/docker build (#118)

* update dev reqs

* install git?

* add responsible user to ui

* add responsible to serializer

* adapt helptexts

* Revert "Fix/docker build (#118)"

This reverts commit a91742842c.

* add responsible user to UI
2023-02-12 22:38:59 +11:00
f4e8c05165 Group API (#4327)
* Add basic endpoint for group information

* Add hardcoded api-url lookup function for django models

* Adds JS function for rendering a 'group'

* Fix typo

* Add unit tests for new endpoints

* Increment API version

* JS linting
2023-02-11 07:09:59 +11:00
06605e70c5 Update documentation URLs (#4325) 2023-02-10 10:39:57 +11:00
9e6466b910 Backup task fixes (#4307)
* Ensure 'retry' is always greater than timeout

* Adds setting for controlling how many days between automated backups

* Adds configuration option for max_attempts

* Update for daily backup task

- Prevent backup attempts from ocurring too frequently
- Add setting for controlling how many days between backups

* Exit early
2023-02-06 19:58:18 +11:00
ce3dabedb6 Currency API Updates (#4300)
* Adds an API endpoint for manually updating / refreshing currency data from the server

* Update currency rates manually from the settings page

* Add 'last updated' information to the currency exchange backend

* Load currency exchange data via API (on setings page)

* Bump API version

* Table cleanup
2023-02-03 12:43:55 +11:00
3869d98b32 Disable filter controls for part parameter table (#4297) 2023-02-03 07:14:52 +11:00
eccd3be150 Client side currency conversion (#4293)
* Automatically update exchange rates when base currency is updated

* Adds API endpoint with currency exchange information

* Add unit testing for new endpoint

* Implement javascript code for client-side conversion

* Adds helper function for calculating total price of a dataset

* javascript cleanup

* Add functionality to sales order tables

* JS linting

* Update API version

* Prevent auto currency updates under certain conditions
2023-02-02 22:47:35 +11:00
9a289948e5 Include stock item purchase price in pricing cache (#4292)
* Add setting to control pricing calculation from stock items

* Bug fix for displaying a "null" setting

* Add new fields to PartPricing model

* Add code for calculation of min/max stock item costs

* Update pricing display to use stock item pricing

* Add unit testing for new pricing features

* Automatically update pricing when stock item is created or edited

* Increment API version

* Improvements for price rendering

* Update based on feedback:

- Roll stock item pricing into purchase pricing
- Simplify models
- Update unit tests
2023-02-02 21:23:16 +11:00
4f029d4d81 Improvements for part creation API endpoint (#4281)
* Refactor javascript for creating a new part

* Simplify method of removing create fields from serializer

* Fix bug which resulted in multiple model instances being created

* remove custom code required on Part model

* Reorganize existing Part API test code

* Add child serializer for part duplication options

* Part duplication is now handled by the DRF serializer

- Improved validation options
- API is self-documenting (no more secret fields)
- More DRY

* Initial stock is now handled by the DRF serializer

* Adds child serializer for adding initial supplier data for a Part instance

* Create initial supplier and manufacturer parts as specified

* Adding unit tests

* Add unit tests for part duplication via API

* Bump API version

* Add javascript for automatically extracting info for nested fields

* Improvements for part creation form rendering

- Move to nested fields (using API metadata)
- Visual improvements
- Improve some field name / description values

* Properly format nested fields for sending to the server

* Handle error case for scrollIntoView

* Display errors for nested fields

* Fix bug for filling part category

* JS linting fixes

* Unit test fixes

* Fixes for unit tests

* Further fixes to unit tests
2023-02-02 09:24:16 +11:00