diff --git a/InvenTree/stock/admin.py b/InvenTree/stock/admin.py index 0703688be5..9e7fb509d9 100644 --- a/InvenTree/stock/admin.py +++ b/InvenTree/stock/admin.py @@ -97,17 +97,18 @@ class StockItemResource(InvenTreeResource): 'owner', ] - id = Field(attribute='pk', column_name=_('Stock Item ID')) + id = Field(attribute='pk', column_name=_('Stock Item ID'), widget=widgets.IntegerWidget()) part = Field(attribute='part', column_name=_('Part ID'), widget=widgets.ForeignKeyWidget(Part)) part_name = Field(attribute='part__full_name', column_name=_('Part Name'), readonly=True) - quantity = Field(attribute='quantity', column_name=_('Quantity')) + quantity = Field(attribute='quantity', column_name=_('Quantity'), widget=widgets.DecimalWidget()) serial = Field(attribute='serial', column_name=_('Serial')) batch = Field(attribute='batch', column_name=_('Batch')) status_label = Field(attribute='status_label', column_name=_('Status'), readonly=True) + status = Field(attribute='status', column_name=_('Status Code'), widget=widgets.IntegerWidget()) location = Field(attribute='location', column_name=_('Location ID'), widget=widgets.ForeignKeyWidget(StockLocation)) location_name = Field(attribute='location__name', column_name=_('Location Name'), readonly=True) supplier_part = Field(attribute='supplier_part', column_name=_('Supplier Part ID'), widget=widgets.ForeignKeyWidget(SupplierPart)) - supplier = Field(attribute='supplier_part__supplier__id', column_name=_('Supplier ID'), readonly=True) + supplier = Field(attribute='supplier_part__supplier__id', column_name=_('Supplier ID'), readonly=True, widget=widgets.IntegerWidget()) supplier_name = Field(attribute='supplier_part__supplier__name', column_name=_('Supplier Name'), readonly=True) customer = Field(attribute='customer', column_name=_('Customer ID'), widget=widgets.ForeignKeyWidget(Company)) belongs_to = Field(attribute='belongs_to', column_name=_('Installed In'), widget=widgets.ForeignKeyWidget(StockItem)) @@ -119,11 +120,22 @@ class StockItemResource(InvenTreeResource): link = Field(attribute='link', column_name=_('Link')) notes = Field(attribute='notes', column_name=_('Notes')) + # Status fields (note that IntegerWidget exports better to excel than BooleanWidget) + is_building = Field(attribute='is_building', column_name=_('Building'), widget=widgets.IntegerWidget()) + review_needed = Field(attribute='review_needed', column_name=_('Review Needed'), widget=widgets.IntegerWidget()) + delete_on_deplete = Field(attribute='delete_on_deplete', column_name=_('Delete on Deplete'), widget=widgets.IntegerWidget()) + # Date management updated = Field(attribute='updated', column_name=_('Last Updated'), widget=widgets.DateWidget()) stocktake_date = Field(attribute='stocktake_date', column_name=_('Stocktake'), widget=widgets.DateWidget()) expiry_date = Field(attribute='expiry_date', column_name=_('Expiry Date'), widget=widgets.DateWidget()) + def dehydrate_purchase_price(self, item): + """Render purchase pric as float""" + + if item.purchase_price is not None: + return float(item.purchase_price.amount) + def after_import(self, dataset, result, using_transactions, dry_run, **kwargs): """Rebuild after import to keep tree intact.""" super().after_import(dataset, result, using_transactions, dry_run, **kwargs)