mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-18 08:50:17 +02:00
Add fields to discord and ts3 admin
This commit is contained in:
parent
b0448a4565
commit
458685026b
@ -189,12 +189,13 @@ class UserAdmin(BaseUserAdmin):
|
|||||||
|
|
||||||
inlines = BaseUserAdmin.inlines + [UserProfileInline]
|
inlines = BaseUserAdmin.inlines + [UserProfileInline]
|
||||||
|
|
||||||
|
ordering = ('username', )
|
||||||
list_select_related = True
|
list_select_related = True
|
||||||
show_full_result_count = True
|
show_full_result_count = True
|
||||||
|
|
||||||
list_display = (
|
list_display = (
|
||||||
'_profile_pic',
|
'_profile_pic',
|
||||||
'_username',
|
'_user',
|
||||||
'_state',
|
'_state',
|
||||||
'_groups',
|
'_groups',
|
||||||
'_main_organization',
|
'_main_organization',
|
||||||
@ -234,7 +235,7 @@ class UserAdmin(BaseUserAdmin):
|
|||||||
_profile_pic.short_description = ''
|
_profile_pic.short_description = ''
|
||||||
|
|
||||||
|
|
||||||
def _username(self, obj):
|
def _user(self, obj):
|
||||||
#/admin/<app>/<model>/<pk>/change/
|
#/admin/<app>/<model>/<pk>/change/
|
||||||
link = '/admin/authentication/{}/{}/change/'.format(
|
link = '/admin/authentication/{}/{}/change/'.format(
|
||||||
type(obj).__name__.lower(),
|
type(obj).__name__.lower(),
|
||||||
@ -244,11 +245,12 @@ class UserAdmin(BaseUserAdmin):
|
|||||||
'<strong><a href="{}">{}</a></strong><br>{}',
|
'<strong><a href="{}">{}</a></strong><br>{}',
|
||||||
link,
|
link,
|
||||||
obj.username,
|
obj.username,
|
||||||
obj.email
|
obj.profile.main_character.character_name \
|
||||||
|
if obj.profile.main_character else ''
|
||||||
)
|
)
|
||||||
|
|
||||||
_username.short_description = 'user'
|
_user.short_description = 'user / main'
|
||||||
_username.admin_order_field = 'username'
|
_user.admin_order_field = 'username'
|
||||||
|
|
||||||
def _main_organization(self, obj):
|
def _main_organization(self, obj):
|
||||||
if obj.profile.main_character:
|
if obj.profile.main_character:
|
||||||
@ -272,22 +274,12 @@ class UserAdmin(BaseUserAdmin):
|
|||||||
|
|
||||||
|
|
||||||
def _characters(self, obj):
|
def _characters(self, obj):
|
||||||
alts = [
|
return [
|
||||||
x.character.character_name
|
x.character.character_name
|
||||||
for x in CharacterOwnership.objects\
|
for x in CharacterOwnership.objects\
|
||||||
.filter(user=obj)\
|
.filter(user=obj)\
|
||||||
.order_by('character__character_name')
|
.order_by('character__character_name')
|
||||||
.exclude(character=obj.profile.main_character)
|
|
||||||
]
|
]
|
||||||
if obj.profile.main_character:
|
|
||||||
result = [
|
|
||||||
'<strong>{}</strong>'.format(
|
|
||||||
obj.profile.main_character.character_name
|
|
||||||
)
|
|
||||||
]
|
|
||||||
else:
|
|
||||||
result = []
|
|
||||||
return format_html(', '.join(result + alts))
|
|
||||||
|
|
||||||
_characters.short_description = 'characters'
|
_characters.short_description = 'characters'
|
||||||
|
|
||||||
@ -372,7 +364,7 @@ class StateAdmin(admin.ModelAdmin):
|
|||||||
|
|
||||||
class BaseOwnershipAdmin(admin.ModelAdmin):
|
class BaseOwnershipAdmin(admin.ModelAdmin):
|
||||||
list_display = ('user', 'character')
|
list_display = ('user', 'character')
|
||||||
search_fields = ('user__username', 'character__character_name', 'character__corporation_name', 'character__alliance_name')
|
search_fields = ('user__user', 'character__character_name', 'character__corporation_name', 'character__alliance_name')
|
||||||
|
|
||||||
def get_readonly_fields(self, request, obj=None):
|
def get_readonly_fields(self, request, obj=None):
|
||||||
if obj and obj.pk:
|
if obj and obj.pk:
|
||||||
|
@ -35,95 +35,67 @@ class AuthGroupInlineAdmin(admin.StackedInline):
|
|||||||
return request.user.has_perm('auth.change_group')
|
return request.user.has_perm('auth.change_group')
|
||||||
|
|
||||||
|
|
||||||
if _has_auto_groups:
|
|
||||||
class IsAutoGroupFilter(admin.SimpleListFilter):
|
|
||||||
title = 'auto group'
|
|
||||||
parameter_name = 'auto_group'
|
|
||||||
|
|
||||||
def lookups(self, request, model_admin):
|
|
||||||
return (
|
|
||||||
('Yes', 'Yes'),
|
|
||||||
('No', 'No'),
|
|
||||||
)
|
|
||||||
|
|
||||||
def queryset(self, request, queryset):
|
|
||||||
value = self.value()
|
|
||||||
if value == 'Yes':
|
|
||||||
return queryset.exclude(
|
|
||||||
managedalliancegroup__exact=None,
|
|
||||||
managedcorpgroup__exact=None
|
|
||||||
)
|
|
||||||
elif value == 'No':
|
|
||||||
return queryset.filter(managedalliancegroup__exact=None).filter(managedcorpgroup__exact=None)
|
|
||||||
else:
|
|
||||||
return queryset
|
|
||||||
|
|
||||||
|
|
||||||
class GroupAdmin(admin.ModelAdmin):
|
class GroupAdmin(admin.ModelAdmin):
|
||||||
list_select_related = True
|
list_select_related = True
|
||||||
|
ordering = ('name', )
|
||||||
list_display = (
|
list_display = (
|
||||||
'name',
|
'name',
|
||||||
'description',
|
'description',
|
||||||
'member_count',
|
'_properties',
|
||||||
'has_leader',
|
'_member_count',
|
||||||
'_attributes'
|
'has_leader'
|
||||||
)
|
)
|
||||||
|
|
||||||
list_filter = (
|
list_filter = (
|
||||||
'authgroup__internal',
|
'authgroup__internal',
|
||||||
'authgroup__hidden',
|
'authgroup__hidden',
|
||||||
'authgroup__open',
|
'authgroup__open',
|
||||||
'authgroup__public',
|
'authgroup__public'
|
||||||
IsAutoGroupFilter
|
|
||||||
)
|
)
|
||||||
|
|
||||||
filter_horizontal = ('permissions',)
|
filter_horizontal = ('permissions',)
|
||||||
inlines = (AuthGroupInlineAdmin,)
|
inlines = (AuthGroupInlineAdmin,)
|
||||||
|
|
||||||
def get_queryset(self, request):
|
def get_queryset(self, request):
|
||||||
queryset = super().get_queryset(request)
|
qs = super().get_queryset(request)
|
||||||
queryset = queryset.annotate(
|
if _has_auto_groups:
|
||||||
_member_count=Count('user', distinct=True),
|
qs = qs\
|
||||||
|
.filter(managedalliancegroup__exact=None)\
|
||||||
|
.filter(managedcorpgroup__exact=None)
|
||||||
|
qs = qs.annotate(
|
||||||
|
member_count=Count('user', distinct=True),
|
||||||
)
|
)
|
||||||
return queryset
|
return qs
|
||||||
|
|
||||||
def description(self, obj):
|
def description(self, obj):
|
||||||
return obj.authgroup.description
|
return obj.authgroup.description
|
||||||
|
|
||||||
def member_count(self, obj):
|
def _member_count(self, obj):
|
||||||
return obj._member_count
|
return obj.member_count
|
||||||
|
|
||||||
member_count.admin_order_field = '_member_count'
|
_member_count.short_description = 'Members'
|
||||||
|
_member_count.admin_order_field = 'member_count'
|
||||||
|
|
||||||
def has_leader(self, obj):
|
def has_leader(self, obj):
|
||||||
return obj.authgroup.group_leaders.exists()
|
return obj.authgroup.group_leaders.exists()
|
||||||
|
|
||||||
has_leader.boolean = True
|
has_leader.boolean = True
|
||||||
|
|
||||||
def _attributes(self, obj):
|
def _properties(self, obj):
|
||||||
attributes = list()
|
properties = list()
|
||||||
if (_has_auto_groups
|
if obj.authgroup.hidden:
|
||||||
and (
|
properties.append('Hidden')
|
||||||
obj.managedalliancegroup_set.exists()
|
if obj.authgroup.open:
|
||||||
or obj.managedcorpgroup_set.exists()
|
properties.append('Open')
|
||||||
)
|
if obj.authgroup.public:
|
||||||
):
|
properties.append('Public')
|
||||||
attributes.append('Auto Group')
|
if not properties:
|
||||||
elif obj.authgroup.internal:
|
properties.append('Default')
|
||||||
attributes.append('Internal')
|
|
||||||
else:
|
|
||||||
if obj.authgroup.hidden:
|
|
||||||
attributes.append('Hidden')
|
|
||||||
if obj.authgroup.open:
|
|
||||||
attributes.append('Open')
|
|
||||||
if obj.authgroup.public:
|
|
||||||
attributes.append('Public')
|
|
||||||
if not attributes:
|
|
||||||
attributes.append('Default')
|
|
||||||
|
|
||||||
return ', '.join(attributes)
|
return ', '.join(properties)
|
||||||
|
|
||||||
|
_properties.short_description = "properties"
|
||||||
|
|
||||||
_attributes.short_description = "Attributes"
|
|
||||||
|
|
||||||
class Group(BaseGroup):
|
class Group(BaseGroup):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -3,7 +3,55 @@ from .models import DiscordUser
|
|||||||
|
|
||||||
|
|
||||||
class DiscordUserAdmin(admin.ModelAdmin):
|
class DiscordUserAdmin(admin.ModelAdmin):
|
||||||
list_display = ('user', 'uid')
|
ordering = ('user__username', )
|
||||||
search_fields = ('user__username', 'uid')
|
list_select_related = True
|
||||||
|
|
||||||
|
list_display = (
|
||||||
|
'user',
|
||||||
|
'uid',
|
||||||
|
'_corporation',
|
||||||
|
'_alliance',
|
||||||
|
'_date_joined'
|
||||||
|
)
|
||||||
|
search_fields = (
|
||||||
|
'user__username',
|
||||||
|
'uid'
|
||||||
|
)
|
||||||
|
list_filter = (
|
||||||
|
'user__profile__main_character__corporation_name',
|
||||||
|
'user__profile__main_character__alliance_name',
|
||||||
|
'user__date_joined',
|
||||||
|
)
|
||||||
|
|
||||||
|
def _corporation(self, obj):
|
||||||
|
if obj.user.profile.main_character:
|
||||||
|
return obj.user.profile.main_character.corporation_name
|
||||||
|
else:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
_corporation.short_description = 'corporation (main)'
|
||||||
|
_corporation.admin_order_field \
|
||||||
|
= 'user__profile__main_character__corporation_name'
|
||||||
|
|
||||||
|
|
||||||
|
def _alliance(self, obj):
|
||||||
|
if (obj.user.profile.main_character
|
||||||
|
and obj.user.profile.main_character.alliance_id
|
||||||
|
):
|
||||||
|
return obj.user.profile.main_character.alliance_name
|
||||||
|
else:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
_alliance.short_description = 'alliance (main)'
|
||||||
|
_alliance.admin_order_field \
|
||||||
|
= 'user__profile__main_character__alliance_name'
|
||||||
|
|
||||||
|
|
||||||
|
def _date_joined(self, obj):
|
||||||
|
return obj.user.date_joined
|
||||||
|
|
||||||
|
_date_joined.short_description = 'date joined'
|
||||||
|
_date_joined.admin_order_field = 'user__date_joined'
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(DiscordUser, DiscordUserAdmin)
|
admin.site.register(DiscordUser, DiscordUserAdmin)
|
||||||
|
@ -3,8 +3,57 @@ from .models import AuthTS, Teamspeak3User, StateGroup
|
|||||||
|
|
||||||
|
|
||||||
class Teamspeak3UserAdmin(admin.ModelAdmin):
|
class Teamspeak3UserAdmin(admin.ModelAdmin):
|
||||||
list_display = ('user', 'uid', 'perm_key')
|
ordering = ('user__username', )
|
||||||
search_fields = ('user__username', 'uid', 'perm_key')
|
list_select_related = True
|
||||||
|
|
||||||
|
list_display = (
|
||||||
|
'user',
|
||||||
|
'uid',
|
||||||
|
'_corporation',
|
||||||
|
'_alliance',
|
||||||
|
'_date_joined',
|
||||||
|
'perm_key',
|
||||||
|
)
|
||||||
|
search_fields = (
|
||||||
|
'user__username',
|
||||||
|
'uid',
|
||||||
|
'perm_key'
|
||||||
|
)
|
||||||
|
list_filter = (
|
||||||
|
'user__profile__main_character__corporation_name',
|
||||||
|
'user__profile__main_character__alliance_name',
|
||||||
|
'user__date_joined',
|
||||||
|
)
|
||||||
|
|
||||||
|
def _corporation(self, obj):
|
||||||
|
if obj.user.profile.main_character:
|
||||||
|
return obj.user.profile.main_character.corporation_name
|
||||||
|
else:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
_corporation.short_description = 'corporation (main)'
|
||||||
|
_corporation.admin_order_field \
|
||||||
|
= 'user__profile__main_character__corporation_name'
|
||||||
|
|
||||||
|
|
||||||
|
def _alliance(self, obj):
|
||||||
|
if (obj.user.profile.main_character
|
||||||
|
and obj.user.profile.main_character.alliance_id
|
||||||
|
):
|
||||||
|
return obj.user.profile.main_character.alliance_name
|
||||||
|
else:
|
||||||
|
return ''
|
||||||
|
|
||||||
|
_alliance.short_description = 'alliance (main)'
|
||||||
|
_alliance.admin_order_field \
|
||||||
|
= 'user__profile__main_character__alliance_name'
|
||||||
|
|
||||||
|
|
||||||
|
def _date_joined(self, obj):
|
||||||
|
return obj.user.date_joined
|
||||||
|
|
||||||
|
_date_joined.short_description = 'date joined'
|
||||||
|
_date_joined.admin_order_field = 'user__date_joined'
|
||||||
|
|
||||||
|
|
||||||
class AuthTSgroupAdmin(admin.ModelAdmin):
|
class AuthTSgroupAdmin(admin.ModelAdmin):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user