1
0
Fork 0
satnogs-network/network/users/admin.py

33 lines
991 B
Python

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
from django.contrib.auth.forms import UserChangeForm, UserCreationForm
from django.db.models import Count
from network.users.models import User
class HasStationListFilter(admin.SimpleListFilter):
title = 'having station'
parameter_name = 'has_station'
def lookups(self, request, model_admin):
return (
(1, 'Yes'),
(0, 'No'),
)
def queryset(self, request, queryset):
if self.value() == '1':
return queryset.annotate(count=Count('ground_stations')).filter(count__gt=0)
if self.value() == '0':
return queryset.annotate(count=Count('ground_stations')).filter(count__lt=1)
class UserAdmin(AuthUserAdmin):
create_form_class = UserCreationForm
update_form_class = UserChangeForm
list_filter = AuthUserAdmin.list_filter + (HasStationListFilter, )
admin.site.register(User, UserAdmin)