admin.py
1014 Bytes
from django.contrib import admin
from django.db.models import Count
from organismo.models import Organismo, TipoOrganismo
@admin.register(TipoOrganismo)
class TipoOrganismoAdmin(admin.ModelAdmin):
list_display = ('nombre', 'es_activo', 'cantidad_organismo')
search_fields = ('nombre',)
actions = ('desactivar_seleccionados', )
def get_queryset(self, request):
queryset = super().get_queryset(request).values('organismos').annotate(cantidad_organismo=Count('organismos')).all()
if request.user.is_superuser:
return queryset
return queryset.filter(es_activo=True)
def desactivar_seleccionados(self, request, queryset):
queryset.update(es_activo=False)
def cantidad_organismo(self, tipo):
return tipo.cantidad_organismo
@admin.register(Organismo)
class OrganismoAdmin(admin.ModelAdmin):
list_display = ('nombre', 'tipo')
search_fields = ('nombre', 'tipo__nombre')
autocomplete_fields = ('tipo',)