mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-16 16:00:17 +02:00
parent
106f6bbcea
commit
89e5740027
@ -36,8 +36,6 @@ class AutogroupsConfigManager(models.Manager):
|
||||
:param state: State to update user for
|
||||
:return:
|
||||
"""
|
||||
import traceback
|
||||
print(traceback.print_stack())
|
||||
if state is None:
|
||||
state = user.profile.state
|
||||
for config in self.filter(states=state):
|
||||
|
@ -2,6 +2,7 @@ import logging
|
||||
from django.dispatch import receiver
|
||||
from django.db.models.signals import pre_save, post_save, pre_delete, m2m_changed
|
||||
from allianceauth.authentication.models import UserProfile, State
|
||||
from allianceauth.eveonline.models import EveCharacter
|
||||
|
||||
from .models import AutogroupsConfig
|
||||
|
||||
@ -62,3 +63,13 @@ def autogroups_states_changed(sender, instance, action, reverse, model, pk_set,
|
||||
except State.DoesNotExist:
|
||||
# Deleted States handled by the profile state change
|
||||
pass
|
||||
|
||||
|
||||
@receiver(post_save, sender=EveCharacter)
|
||||
def check_groups_on_character_update(sender, instance, created, *args, **kwargs):
|
||||
if not created:
|
||||
try:
|
||||
profile = UserProfile.objects.prefetch_related('user').get(main_character_id=instance.pk)
|
||||
AutogroupsConfig.objects.update_groups_for_user(profile.user)
|
||||
except UserProfile.DoesNotExist:
|
||||
pass
|
||||
|
@ -1,11 +1,11 @@
|
||||
from django.test import TestCase
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from allianceauth.tests.auth_utils import AuthUtils
|
||||
|
||||
from allianceauth.eveonline.models import EveCharacter, EveCorporationInfo, EveAllianceInfo
|
||||
|
||||
from ..models import AutogroupsConfig, ManagedAllianceGroup
|
||||
from ..models import AutogroupsConfig
|
||||
|
||||
from . import patch, disconnect_signals, connect_signals
|
||||
|
||||
@ -52,8 +52,7 @@ class SignalsTestCase(TestCase):
|
||||
@patch('.models.AutogroupsConfigManager.update_groups_for_user')
|
||||
def test_check_groups_on_profile_update_state(self, update_groups_for_user):
|
||||
# Trigger signal
|
||||
self.member.profile.state = AuthUtils.get_guest_state()
|
||||
self.member.profile.save()
|
||||
self.member.profile.assign_state(state=AuthUtils.get_guest_state())
|
||||
|
||||
self.assertTrue(update_groups_for_user.called)
|
||||
self.assertEqual(update_groups_for_user.call_count, 1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user