From 81f9211098ee830832e46449bf38d78a870e683a Mon Sep 17 00:00:00 2001 From: ErikKalkoken Date: Thu, 20 Feb 2020 17:16:28 +0100 Subject: [PATCH] Fix update_main_character_model() bug --- allianceauth/authentication/admin.py | 39 ++++++++++--------- .../authentication/tests/test_admin.py | 7 ++-- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/allianceauth/authentication/admin.py b/allianceauth/authentication/admin.py index 653e89b3..9f2ce766 100644 --- a/allianceauth/authentication/admin.py +++ b/allianceauth/authentication/admin.py @@ -241,6 +241,22 @@ class MainAllianceFilter(admin.SimpleListFilter): self.value()) +def update_main_character_model(modeladmin, request, queryset): + tasks_count = 0 + for obj in queryset: + if obj.profile.main_character: + update_character.delay(obj.profile.main_character.character_id) + tasks_count += 1 + + modeladmin.message_user( + request, + 'Update from ESI started for {} characters'.format(tasks_count) + ) + +update_main_character_model.short_description = \ + 'Update main character model from ESI' + + class UserAdmin(BaseUserAdmin): """Extending Django's UserAdmin model @@ -272,28 +288,13 @@ class UserAdmin(BaseUserAdmin): else: return queryset.filter(groups__pk=self.value()) - def update_main_character_model(self, request, queryset): - tasks_count = 0 - for obj in queryset: - if obj.profile.main_character: - update_character.delay(obj.profile.main_character.character_id) - tasks_count += 1 - - self.message_user( - request, - 'Update from ESI started for {} characters'.format(tasks_count) - ) - - update_main_character_model.short_description = \ - 'Update main character model from ESI' - def get_actions(self, request): actions = super(BaseUserAdmin, self).get_actions(request) - actions[self.update_main_character_model.__name__] = ( - self.update_main_character_model, - self.update_main_character_model.__name__, - self.update_main_character_model.short_description + actions[update_main_character_model.__name__] = ( + update_main_character_model, + update_main_character_model.__name__, + update_main_character_model.short_description ) for hook in get_hooks('services_hook'): diff --git a/allianceauth/authentication/tests/test_admin.py b/allianceauth/authentication/tests/test_admin.py index 22663a30..21b65ef2 100644 --- a/allianceauth/authentication/tests/test_admin.py +++ b/allianceauth/authentication/tests/test_admin.py @@ -25,7 +25,8 @@ from ..admin import ( UserAdmin, user_main_organization, user_profile_pic, - user_username, + user_username, + update_main_character_model ) from . import get_admin_change_view_url @@ -409,8 +410,8 @@ class TestUserAdmin(TestCase): self, mock_task, mock_message_user ): users_qs = User.objects.filter(pk__in=[self.user_1.pk, self.user_2.pk]) - self.modeladmin.update_main_character_model( - MockRequest(self.user_1), users_qs + update_main_character_model( + self.modeladmin, MockRequest(self.user_1), users_qs ) self.assertEqual(mock_task.delay.call_count, 2) self.assertTrue(mock_message_user.called)