from django.contrib import admin from .models import Cost, Good, Service, CostUse, GoodUse, Document @admin.register(Document) class DocumentAdmin(admin.ModelAdmin): list_display = ('name', 'date', 'type') class GoodUseInline(admin.TabularInline): model = GoodUse extra = 1 class CostUseInline(admin.TabularInline): model = CostUse extra = 1 class DirectDocumentFilter(admin.SimpleListFilter): title = 'Document' parameter_name = 'document' def queryset(self, request, queryset): document = self.value() if not document: return queryset else: return queryset.filter(document=document) def lookups(self, request, model_admin): for i in Document.objects.all(): yield i.pk, str(i) @admin.register(Cost) class CostAdmin(admin.ModelAdmin): list_display = ('name', 'price', 'document') list_filter = [DirectDocumentFilter] @admin.register(Good) class GoodAdmin(admin.ModelAdmin): list_display = ( '__str__', 'price', 'document', 'provisioning_duration', 'monthly_provision') list_filter = [DirectDocumentFilter] @admin.register(Service) class ServiceAdmin(admin.ModelAdmin): list_display = ('name', 'subscriptions_count', 'document') inlines = (CostUseInline, GoodUseInline) list_filter = [DirectDocumentFilter]