1234567891011121314151617181920212223242526272829303132 |
- from django.contrib import admin
- from django.contrib.contenttypes.admin import GenericTabularInline
- from django.contrib.contenttypes.models import ContentType
- from services.models import Service
- from .models import Payment
- class PaymentInline(GenericTabularInline):
- model = Payment
- ct_field = 'reason_type'
- ct_fk_field = 'reason_id'
- extra = 1
- class PaymentAdmin(admin.ModelAdmin):
- list_display = ('reason_verbose', 'amount', 'period', 'payment_method',)
- list_filter = ('payment_method',)
- fields = ('amount', 'period', 'payment_method',)
- def get_queryset(self, request):
- qs = super().get_queryset(request)
- if request.user.is_superuser:
- return qs
- # Show only payment related to a service for which the user is in managment group.
- return qs.filter(service__service_type__group__in=request.user.groups.all())
- def has_add_permission(self, request):
- return False
- admin.site.register(Payment, PaymentAdmin)
|