From cde85a51687ceb83e12678aba1a909d022f7604e Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 4 Dec 2021 19:25:57 +1100 Subject: [PATCH 1/5] Add autocomplete fields to admin views for "stock" app: - StockItem - StockLocation - StockItemTestResult - StockItemAttachment - StockItemTracking --- InvenTree/stock/admin.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/InvenTree/stock/admin.py b/InvenTree/stock/admin.py index abd3db20cb..83de1d2484 100644 --- a/InvenTree/stock/admin.py +++ b/InvenTree/stock/admin.py @@ -63,6 +63,10 @@ class LocationAdmin(ImportExportModelAdmin): LocationInline, ] + autocomplete_fields = [ + 'parent', + ] + class StockItemResource(ModelResource): """ Class for managing StockItem data import/export """ @@ -136,20 +140,45 @@ class StockItemAdmin(ImportExportModelAdmin): 'batch', ] + autocomplete_fields = [ + 'belongs_to', + 'build', + 'customer', + 'location', + 'parent', + 'part', + 'purchase_order', + 'sales_order', + 'stocktake_user', + 'supplier_part', + ] + class StockAttachmentAdmin(admin.ModelAdmin): list_display = ('stock_item', 'attachment', 'comment') + autocomplete_fields = [ + 'stock_item', + ] + class StockTrackingAdmin(ImportExportModelAdmin): list_display = ('item', 'date', 'label') + autocomplete_fields = [ + 'item', + ] + class StockItemTestResultAdmin(admin.ModelAdmin): list_display = ('stock_item', 'test', 'result', 'value') + autocomplete_fields = [ + 'stock_item', + ] + admin.site.register(StockLocation, LocationAdmin) admin.site.register(StockItem, StockItemAdmin) From e83b5f9db05a5ede7bcc5955008bd3a1636d23fb Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 4 Dec 2021 20:01:56 +1100 Subject: [PATCH 2/5] Add autocomplete admin fields for "part" app --- InvenTree/part/admin.py | 48 +++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/InvenTree/part/admin.py b/InvenTree/part/admin.py index 63f48a4e07..c429603176 100644 --- a/InvenTree/part/admin.py +++ b/InvenTree/part/admin.py @@ -8,10 +8,9 @@ from import_export.resources import ModelResource from import_export.fields import Field import import_export.widgets as widgets -import part.models as models - -from stock.models import StockLocation from company.models import SupplierPart +import part.models as models +from stock.models import StockLocation class PartResource(ModelResource): @@ -76,6 +75,13 @@ class PartAdmin(ImportExportModelAdmin): search_fields = ('name', 'description', 'category__name', 'category__description', 'IPN') + autocomplete_fields = [ + 'variant_of', + 'category', + 'default_location', + 'default_supplier', + ] + class PartCategoryResource(ModelResource): """ Class for managing PartCategory data import/export """ @@ -105,13 +111,6 @@ class PartCategoryResource(ModelResource): models.PartCategory.objects.rebuild() -class PartCategoryInline(admin.TabularInline): - """ - Inline for PartCategory model - """ - model = models.PartCategory - - class PartCategoryAdmin(ImportExportModelAdmin): resource_class = PartCategoryResource @@ -120,35 +119,44 @@ class PartCategoryAdmin(ImportExportModelAdmin): search_fields = ('name', 'description') - inlines = [ - PartCategoryInline, - ] + autocomplete_fields = ('parent', 'default_location',) class PartRelatedAdmin(admin.ModelAdmin): - ''' Class to manage PartRelated objects ''' - pass + """ + Class to manage PartRelated objects + """ + + autocomplete_fields = ('part_1', 'part_2') class PartAttachmentAdmin(admin.ModelAdmin): list_display = ('part', 'attachment', 'comment') + autocomplete_fields = ('part',) + class PartStarAdmin(admin.ModelAdmin): list_display = ('part', 'user') + autocomplete_fields = ('part',) + class PartCategoryStarAdmin(admin.ModelAdmin): list_display = ('category', 'user') + + autocomplete_fields = ('category',) class PartTestTemplateAdmin(admin.ModelAdmin): list_display = ('part', 'test_name', 'required') + autocomplete_fields = ('part',) + class BomItemResource(ModelResource): """ Class for managing BomItem data import/export """ @@ -253,10 +261,14 @@ class BomItemAdmin(ImportExportModelAdmin): search_fields = ('part__name', 'part__description', 'sub_part__name', 'sub_part__description') + autocomplete_fields = ('part', 'sub_part',) + class ParameterTemplateAdmin(ImportExportModelAdmin): list_display = ('name', 'units') + search_fields = ('name', 'units') + class ParameterResource(ModelResource): """ Class for managing PartParameter data import/export """ @@ -282,10 +294,12 @@ class ParameterAdmin(ImportExportModelAdmin): list_display = ('part', 'template', 'data') + autocomplete_fields = ('part', 'template') + class PartCategoryParameterAdmin(admin.ModelAdmin): - pass + autocomplete_fields = ('category', 'parameter_template',) class PartSellPriceBreakAdmin(admin.ModelAdmin): @@ -303,6 +317,8 @@ class PartInternalPriceBreakAdmin(admin.ModelAdmin): list_display = ('part', 'quantity', 'price',) + autocomplete_fields = ('part',) + admin.site.register(models.Part, PartAdmin) admin.site.register(models.PartCategory, PartCategoryAdmin) From 1667af4c07d5ad2d9a42333784fbe9466d9c5db9 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 4 Dec 2021 20:09:39 +1100 Subject: [PATCH 3/5] Add autocomplete fields to "order" admin pages --- InvenTree/order/admin.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/InvenTree/order/admin.py b/InvenTree/order/admin.py index 07a8e0ad0a..e98b31939a 100644 --- a/InvenTree/order/admin.py +++ b/InvenTree/order/admin.py @@ -42,6 +42,8 @@ class PurchaseOrderAdmin(ImportExportModelAdmin): PurchaseOrderLineItemInlineAdmin ] + autocomplete_fields = ('supplier',) + class SalesOrderAdmin(ImportExportModelAdmin): @@ -63,6 +65,8 @@ class SalesOrderAdmin(ImportExportModelAdmin): 'description', ] + autocomplete_fields = ('customer',) + class POLineItemResource(ModelResource): """ Class for managing import / export of POLineItem data """ @@ -124,6 +128,10 @@ class PurchaseOrderLineItemAdmin(ImportExportModelAdmin): 'reference' ) + search_fields = ('reference',) + + autocomplete_fields = ('order', 'part', 'destination',) + class SalesOrderLineItemAdmin(ImportExportModelAdmin): @@ -136,6 +144,15 @@ class SalesOrderLineItemAdmin(ImportExportModelAdmin): 'reference' ) + search_fields = [ + 'part__name', + 'order__reference', + 'order__customer__name', + 'reference', + ] + + autocomplete_fields = ('order', 'part',) + class SalesOrderShipmentAdmin(ImportExportModelAdmin): @@ -145,6 +162,14 @@ class SalesOrderShipmentAdmin(ImportExportModelAdmin): 'reference', ] + search_fields = [ + 'reference', + 'order__reference', + 'order__customer__name', + ] + + autocomplete_fields = ('order',) + class SalesOrderAllocationAdmin(ImportExportModelAdmin): @@ -154,6 +179,8 @@ class SalesOrderAllocationAdmin(ImportExportModelAdmin): 'quantity' ) + autocomplete_fields = ('line', 'shipment', 'item',) + admin.site.register(PurchaseOrder, PurchaseOrderAdmin) admin.site.register(PurchaseOrderLineItem, PurchaseOrderLineItemAdmin) From 71aa6a910d4898edfa1e7fddf04eb8f50b46fa72 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 4 Dec 2021 20:14:12 +1100 Subject: [PATCH 4/5] Adds autocomplete fields to admin pages for "company" app --- InvenTree/company/admin.py | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/InvenTree/company/admin.py b/InvenTree/company/admin.py index 2c3be87c84..97327a559a 100644 --- a/InvenTree/company/admin.py +++ b/InvenTree/company/admin.py @@ -71,6 +71,8 @@ class SupplierPartAdmin(ImportExportModelAdmin): 'SKU', ] + autocomplete_fields = ('part', 'supplier', 'manufacturer_part',) + class ManufacturerPartResource(ModelResource): """ @@ -92,23 +94,6 @@ class ManufacturerPartResource(ModelResource): clean_model_instances = True -class ManufacturerPartParameterInline(admin.TabularInline): - """ - Inline for editing ManufacturerPartParameter objects, - directly from the ManufacturerPart admin view. - """ - - model = ManufacturerPartParameter - - -class SupplierPartInline(admin.TabularInline): - """ - Inline for the SupplierPart model - """ - - model = SupplierPart - - class ManufacturerPartAdmin(ImportExportModelAdmin): """ Admin class for ManufacturerPart model @@ -124,10 +109,7 @@ class ManufacturerPartAdmin(ImportExportModelAdmin): 'MPN', ] - inlines = [ - SupplierPartInline, - ManufacturerPartParameterInline, - ] + autocomplete_fields = ('part', 'manufacturer',) class ManufacturerPartParameterResource(ModelResource): @@ -157,6 +139,8 @@ class ManufacturerPartParameterAdmin(ImportExportModelAdmin): 'value' ] + autocomplete_fields = ('manufacturer_part',) + class SupplierPriceBreakResource(ModelResource): """ Class for managing SupplierPriceBreak data import/export """ @@ -186,6 +170,8 @@ class SupplierPriceBreakAdmin(ImportExportModelAdmin): list_display = ('part', 'quantity', 'price') + autocomplete_fields = ('part',) + admin.site.register(Company, CompanyAdmin) admin.site.register(SupplierPart, SupplierPartAdmin) From cdf63c43aae69973784f92d1bd16498e41c34c2a Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 4 Dec 2021 20:16:53 +1100 Subject: [PATCH 5/5] Add autocomplete fields to admin views for "build" app --- InvenTree/build/admin.py | 15 +++++++++++++++ InvenTree/part/admin.py | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/InvenTree/build/admin.py b/InvenTree/build/admin.py index a5ad838660..a612ad8460 100644 --- a/InvenTree/build/admin.py +++ b/InvenTree/build/admin.py @@ -29,6 +29,14 @@ class BuildAdmin(ImportExportModelAdmin): 'part__description', ] + autocomplete_fields = [ + 'parent', + 'part', + 'sales_order', + 'take_from', + 'destination', + ] + class BuildItemAdmin(admin.ModelAdmin): @@ -38,6 +46,13 @@ class BuildItemAdmin(admin.ModelAdmin): 'quantity' ) + autocomplete_fields = [ + 'build', + 'bom_item', + 'stock_item', + 'install_into', + ] + admin.site.register(Build, BuildAdmin) admin.site.register(BuildItem, BuildItemAdmin) diff --git a/InvenTree/part/admin.py b/InvenTree/part/admin.py index c429603176..fd0a16adc2 100644 --- a/InvenTree/part/admin.py +++ b/InvenTree/part/admin.py @@ -126,7 +126,7 @@ class PartRelatedAdmin(admin.ModelAdmin): """ Class to manage PartRelated objects """ - + autocomplete_fields = ('part_1', 'part_2') @@ -147,7 +147,7 @@ class PartStarAdmin(admin.ModelAdmin): class PartCategoryStarAdmin(admin.ModelAdmin): list_display = ('category', 'user') - + autocomplete_fields = ('category',)