Coverage for src/backend/InvenTree/company/admin.py: 100%

35 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 17:47 +0000

1"""Admin class for the 'company' app.""" 

2 

3from django.contrib import admin 

4 

5import company.serializers 

6 

7from .models import ( 

8 Address, 

9 Company, 

10 Contact, 

11 ManufacturerPart, 

12 SupplierPart, 

13 SupplierPriceBreak, 

14) 

15 

16 

17@admin.register(Company) 

18class CompanyAdmin(admin.ModelAdmin): 

19 """Admin class for the Company model.""" 

20 

21 serializer_class = company.serializers.CompanySerializer 

22 

23 list_display = ('name', 'website', 'contact') 

24 

25 search_fields = ['name', 'description'] 

26 

27 

28class SupplierPriceBreakInline(admin.TabularInline): 

29 """Inline for supplier-part pricing.""" 

30 

31 model = SupplierPriceBreak 

32 

33 

34@admin.register(SupplierPart) 

35class SupplierPartAdmin(admin.ModelAdmin): 

36 """Admin class for the SupplierPart model.""" 

37 

38 list_display = ('part', 'supplier', 'SKU') 

39 

40 search_fields = ['supplier__name', 'part__name', 'manufacturer_part__MPN', 'SKU'] 

41 

42 inlines = [SupplierPriceBreakInline] 

43 

44 autocomplete_fields = ('part', 'supplier', 'manufacturer_part') 

45 

46 

47@admin.register(ManufacturerPart) 

48class ManufacturerPartAdmin(admin.ModelAdmin): 

49 """Admin class for ManufacturerPart model.""" 

50 

51 list_display = ('part', 'manufacturer', 'MPN') 

52 

53 search_fields = ['manufacturer__name', 'part__name', 'MPN'] 

54 

55 autocomplete_fields = ('part', 'manufacturer') 

56 

57 

58@admin.register(SupplierPriceBreak) 

59class SupplierPriceBreakAdmin(admin.ModelAdmin): 

60 """Admin class for the SupplierPriceBreak model.""" 

61 

62 list_display = ('part', 'quantity', 'price') 

63 

64 autocomplete_fields = ('part',) 

65 

66 

67@admin.register(Address) 

68class AddressAdmin(admin.ModelAdmin): 

69 """Admin class for the Address model.""" 

70 

71 list_display = ('company', 'line1', 'postal_code', 'country') 

72 

73 search_fields = ['company', 'country', 'postal_code'] 

74 

75 autocomplete_fields = ['company'] 

76 

77 

78@admin.register(Contact) 

79class ContactAdmin(admin.ModelAdmin): 

80 """Admin class for the Contact model.""" 

81 

82 list_display = ('company', 'name', 'role', 'email', 'phone') 

83 

84 search_fields = ['company', 'name', 'email'] 

85 

86 autocomplete_fields = ['company']