From cb5db332d340f9ae746167c3cf89fdf484119d4a Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Fri, 13 Sep 2019 23:00:21 +1000 Subject: [PATCH] Manager for import/export of StockItem data --- InvenTree/InvenTree/settings.py | 4 ++++ InvenTree/stock/admin.py | 41 +++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 2f5572a5f8..f73a5034ca 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -227,6 +227,10 @@ USE_L10N = True USE_TZ = True +DATE_INPUT_FORMATS = [ + "%Y-%m-%d", +] + # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ diff --git a/InvenTree/stock/admin.py b/InvenTree/stock/admin.py index c2975dfd0c..8ea92e6242 100644 --- a/InvenTree/stock/admin.py +++ b/InvenTree/stock/admin.py @@ -11,6 +11,11 @@ import import_export.widgets as widgets from .models import StockLocation, StockItem from .models import StockItemTracking +from build.models import Build +from company.models import Company, SupplierPart +from order.models import PurchaseOrder +from part.models import Part + class LocationResource(ModelResource): """ Class for managing StockLocation data import/export """ @@ -44,7 +49,43 @@ class LocationAdmin(ImportExportModelAdmin): list_display = ('name', 'pathstring', 'description') +class StockItemResource(ModelResource): + """ Class for managing StockItem data import/export """ + + # Custom manaegrs for ForeignKey fields + part = Field(attribute='part', widget=widgets.ForeignKeyWidget(Part)) + + part_name = Field(attribute='part__name', readonly=True) + + supplier_part = Field(attribute='supplier_part', widget=widgets.ForeignKeyWidget(SupplierPart)) + + location = Field(attribute='location', widget=widgets.ForeignKeyWidget(StockLocation)) + + location_name = Field(attribute='location__name', readonly=True) + + belongs_to = Field(attribute='belongs_to', widget=widgets.ForeignKeyWidget(StockItem)) + + customer = Field(attribute='customer', widget=widgets.ForeignKeyWidget(Company)) + + build = Field(attribute='build', widget=widgets.ForeignKeyWidget(Build)) + + purchase_order = Field(attribute='purchase_order', widget=widgets.ForeignKeyWidget(PurchaseOrder)) + + # Date management + updated = Field(attribute='updated', widget=widgets.DateWidget()) + + stocktake_date = Field(attribute='stocktake_date', widget=widgets.DateWidget()) + + class Meta: + model = StockItem + skip_unchanged = True + report_skipped = False + + class StockItemAdmin(ImportExportModelAdmin): + + resource_class = StockItemResource + list_display = ('part', 'quantity', 'location', 'status', 'updated')