""" Physicians admin """ from django.contrib import admin from .models import PhysicianMonthlyRating @admin.register(PhysicianMonthlyRating) class PhysicianMonthlyRatingAdmin(admin.ModelAdmin): """Physician monthly rating admin""" list_display = [ 'physician', 'year', 'month', 'average_rating', 'total_surveys', 'hospital_rank', 'department_rank' ] list_filter = ['year', 'month', 'physician__hospital', 'physician__department'] search_fields = [ 'physician__first_name', 'physician__last_name', 'physician__license_number' ] ordering = ['-year', '-month', '-average_rating'] fieldsets = ( ('Physician & Period', { 'fields': ('physician', 'year', 'month') }), ('Ratings', { 'fields': ( 'average_rating', 'total_surveys', 'positive_count', 'neutral_count', 'negative_count' ) }), ('Breakdown', { 'fields': ('md_consult_rating',) }), ('Ranking', { 'fields': ('hospital_rank', 'department_rank') }), ('Metadata', { 'fields': ('metadata', 'created_at', 'updated_at'), 'classes': ('collapse',) }), ) readonly_fields = ['created_at', 'updated_at'] def get_queryset(self, request): qs = super().get_queryset(request) return qs.select_related('physician', 'physician__hospital', 'physician__department')