admin.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from django.contrib import admin
  2. from .models import Cost, Good, Service, CostUse, GoodUse, Document
  3. @admin.register(Document)
  4. class DocumentAdmin(admin.ModelAdmin):
  5. list_display = ('name', 'date', 'type')
  6. class GoodUseInline(admin.TabularInline):
  7. model = GoodUse
  8. extra = 1
  9. class CostUseInline(admin.TabularInline):
  10. model = CostUse
  11. extra = 1
  12. class DirectDocumentFilter(admin.SimpleListFilter):
  13. title = 'Document'
  14. parameter_name = 'document'
  15. def queryset(self, request, queryset):
  16. document = self.value()
  17. if not document:
  18. return queryset
  19. else:
  20. return queryset.filter(document=document)
  21. def lookups(self, request, model_admin):
  22. for i in Document.objects.all():
  23. yield i.pk, str(i)
  24. @admin.register(Cost)
  25. class CostAdmin(admin.ModelAdmin):
  26. list_display = ('name', 'price', 'document')
  27. list_filter = [DirectDocumentFilter]
  28. @admin.register(Good)
  29. class GoodAdmin(admin.ModelAdmin):
  30. list_display = (
  31. '__str__', 'price', 'document',
  32. 'provisioning_duration', 'monthly_provision')
  33. list_filter = [DirectDocumentFilter]
  34. @admin.register(Service)
  35. class ServiceAdmin(admin.ModelAdmin):
  36. list_display = ('name', 'subscriptions_count', 'document')
  37. inlines = (CostUseInline, GoodUseInline)