admin.py 997 B

1234567891011121314151617181920212223242526272829303132
  1. from django.contrib import admin
  2. from django.contrib.contenttypes.admin import GenericTabularInline
  3. from django.contrib.contenttypes.models import ContentType
  4. from services.models import Service
  5. from .models import Payment
  6. class PaymentInline(GenericTabularInline):
  7. model = Payment
  8. ct_field = 'reason_type'
  9. ct_fk_field = 'reason_id'
  10. extra = 1
  11. class PaymentAdmin(admin.ModelAdmin):
  12. list_display = ('reason_verbose', 'amount', 'period', 'payment_method',)
  13. list_filter = ('payment_method',)
  14. fields = ('amount', 'period', 'payment_method',)
  15. def get_queryset(self, request):
  16. qs = super().get_queryset(request)
  17. if request.user.is_superuser:
  18. return qs
  19. # Show only payment related to a service for which the user is in managment group.
  20. return qs.filter(service__service_type__group__in=request.user.groups.all())
  21. def has_add_permission(self, request):
  22. return False
  23. admin.site.register(Payment, PaymentAdmin)