2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-11 07:24:15 +00:00

Part stocktake (#4069)

* Remove stat context variables

* Revert "Remove stat context variables"

This reverts commit 0989c308d0.

* Allow longer timeout for image download tests

* Create PartStocktake model

Model for representing stocktake entries against any given part

* Admin interface support for new model

* Adds API endpoint for listing stocktake information

* Bump API version

* Enable filtering and ordering for API endpoint

* Add model to permission group

* Add UI hooks for displaying stocktake data for a particular part

* Fix encoded type for 'quantity' field

* Load stocktake table for part

* Add "stocktake" button

* Add "note" field for stocktake

* Add user information when performing stocktake

* First pass at UI elements for performing stocktake

* Add user information to stocktake table

* Auto-calculate quantity based on available stock items

* add stocktake data as tabular inline (admin)

* js linting

* Add indication that a stock item has not been updated recently

* Display last stocktake information on part page

* js style fix

* Test fix for ongoing CI issues

* Add configurable option for controlling default "delete_on_deplete" behaviour

* Add id values to cells

* Hide action buttons (at least for now)

* Adds refresh button to table

* Add API endpoint to delete or edit stocktake entries

* Adds unit test for API list endpoint

* javascript linting

* More unit testing

* Add Part API filter for stocktake

* Add 'last_stocktake' field to Part model

- Gets filled out automatically when a new PartStocktake instance is created

* Update part table to include last_stocktake date

* Add simple unit test

* Fix test
This commit is contained in:
Oliver
2022-12-31 23:14:43 +11:00
committed by GitHub
parent 4ae278d119
commit ab4e2aa8bb
23 changed files with 802 additions and 21 deletions

View File

@ -104,6 +104,11 @@ class PartResource(InvenTreeResource):
models.Part.objects.rebuild()
class StocktakeInline(admin.TabularInline):
"""Inline for part stocktake data"""
model = models.PartStocktake
class PartAdmin(ImportExportModelAdmin):
"""Admin class for the Part model"""
@ -122,6 +127,10 @@ class PartAdmin(ImportExportModelAdmin):
'default_supplier',
]
inlines = [
StocktakeInline,
]
class PartPricingAdmin(admin.ModelAdmin):
"""Admin class for PartPricing model"""
@ -133,6 +142,12 @@ class PartPricingAdmin(admin.ModelAdmin):
]
class PartStocktakeAdmin(admin.ModelAdmin):
"""Admin class for PartStocktake model"""
list_display = ['part', 'date', 'quantity', 'user']
class PartCategoryResource(InvenTreeResource):
"""Class for managing PartCategory data import/export."""
@ -400,3 +415,4 @@ admin.site.register(models.PartTestTemplate, PartTestTemplateAdmin)
admin.site.register(models.PartSellPriceBreak, PartSellPriceBreakAdmin)
admin.site.register(models.PartInternalPriceBreak, PartInternalPriceBreakAdmin)
admin.site.register(models.PartPricing, PartPricingAdmin)
admin.site.register(models.PartStocktake, PartStocktakeAdmin)