diff options
Diffstat (limited to 'pydis_site/apps/home')
| -rw-r--r-- | pydis_site/apps/home/signals.py | 10 | ||||
| -rw-r--r-- | pydis_site/apps/home/tests/mock_github_api_response.json | 2 | ||||
| -rw-r--r-- | pydis_site/apps/home/tests/test_signal_listener.py | 15 | ||||
| -rw-r--r-- | pydis_site/apps/home/views/home.py | 4 | 
4 files changed, 13 insertions, 18 deletions
diff --git a/pydis_site/apps/home/signals.py b/pydis_site/apps/home/signals.py index 4cb4564b..8af48c15 100644 --- a/pydis_site/apps/home/signals.py +++ b/pydis_site/apps/home/signals.py @@ -150,7 +150,7 @@ class AllauthSignalListener:                  social_account = SocialAccount.objects.get(user=user, provider=DiscordProvider.id)                  discord_user = DiscordUser.objects.get(id=int(social_account.uid)) -                mappings = RoleMapping.objects.filter(role__in=discord_user.roles.all()).all() +                mappings = RoleMapping.objects.filter(role__id__in=discord_user.roles).all()                  is_staff = any(m.is_staff for m in mappings)                  if user.is_staff != is_staff: @@ -185,7 +185,7 @@ class AllauthSignalListener:              self.mapping_model_deleted(RoleMapping, instance=old_instance)          accounts = SocialAccount.objects.filter( -            uid__in=(u.id for u in instance.role.user_set.all()) +            uid__in=(u.id for u in DiscordUser.objects.filter(roles__contains=[instance.role.id]))          )          for account in accounts: @@ -198,7 +198,7 @@ class AllauthSignalListener:                  discord_user = DiscordUser.objects.get(id=int(account.uid))                  mappings = RoleMapping.objects.filter( -                    role__in=discord_user.roles.all() +                    role__id__in=discord_user.roles                  ).exclude(id=instance.id).all()                  is_staff = any(m.is_staff for m in mappings) @@ -289,9 +289,9 @@ class AllauthSignalListener:              new_groups = []              is_staff = False -            for role in user.roles.all(): +            for role in user.roles:                  try: -                    mapping = mappings.get(role=role) +                    mapping = mappings.get(role__id=role)                  except RoleMapping.DoesNotExist:                      continue  # No mapping exists diff --git a/pydis_site/apps/home/tests/mock_github_api_response.json b/pydis_site/apps/home/tests/mock_github_api_response.json index 37dc672e..35604a85 100644 --- a/pydis_site/apps/home/tests/mock_github_api_response.json +++ b/pydis_site/apps/home/tests/mock_github_api_response.json @@ -28,7 +28,7 @@      "forks_count": 31    },    { -    "full_name": "python-discord/django-crispy-bulma", +    "full_name": "python-discord/flake8-annotations",      "description": "test",      "stargazers_count": 97,      "language": "Python", diff --git a/pydis_site/apps/home/tests/test_signal_listener.py b/pydis_site/apps/home/tests/test_signal_listener.py index 66a67252..d99d81a5 100644 --- a/pydis_site/apps/home/tests/test_signal_listener.py +++ b/pydis_site/apps/home/tests/test_signal_listener.py @@ -81,24 +81,21 @@ class SignalListenerTests(TestCase):              id=0,              name="user",              discriminator=0, -            avatar_hash=None          )          cls.discord_unmapped = DiscordUser.objects.create(              id=2,              name="unmapped",              discriminator=0, -            avatar_hash=None          ) -        cls.discord_unmapped.roles.add(cls.unmapped_role) +        cls.discord_unmapped.roles.append(cls.unmapped_role.id)          cls.discord_unmapped.save()          cls.discord_not_in_guild = DiscordUser.objects.create(              id=3,              name="not-in-guild",              discriminator=0, -            avatar_hash=None,              in_guild=False          ) @@ -106,20 +103,18 @@ class SignalListenerTests(TestCase):              id=1,              name="admin",              discriminator=0, -            avatar_hash=None          ) -        cls.discord_admin.roles.set([cls.admin_role]) +        cls.discord_admin.roles = [cls.admin_role.id]          cls.discord_admin.save()          cls.discord_moderator = DiscordUser.objects.create(              id=4,              name="admin",              discriminator=0, -            avatar_hash=None          ) -        cls.discord_moderator.roles.set([cls.moderator_role]) +        cls.discord_moderator.roles = [cls.moderator_role.id]          cls.discord_moderator.save()          cls.django_user_discordless = DjangoUser.objects.create(username="no-discord") @@ -338,7 +333,7 @@ class SignalListenerTests(TestCase):          handler._apply_groups(self.discord_admin, self.social_admin)          self.assertEqual(self.django_user_discordless.groups.all().count(), 0) -        self.discord_admin.roles.add(self.admin_role) +        self.discord_admin.roles.append(self.admin_role.id)          self.discord_admin.save()      def test_apply_groups_moderator(self): @@ -365,7 +360,7 @@ class SignalListenerTests(TestCase):          handler._apply_groups(self.discord_moderator, self.social_moderator)          self.assertEqual(self.django_user_discordless.groups.all().count(), 0) -        self.discord_moderator.roles.add(self.moderator_role) +        self.discord_moderator.roles.append(self.moderator_role.id)          self.discord_moderator.save()      def test_apply_groups_other(self): diff --git a/pydis_site/apps/home/views/home.py b/pydis_site/apps/home/views/home.py index 4cf22594..20e38ab0 100644 --- a/pydis_site/apps/home/views/home.py +++ b/pydis_site/apps/home/views/home.py @@ -23,8 +23,8 @@ class HomeView(View):          "python-discord/bot",          "python-discord/snekbox",          "python-discord/seasonalbot", +        "python-discord/flake8-annotations",          "python-discord/django-simple-bulma", -        "python-discord/django-crispy-bulma",      ]      def _get_api_data(self) -> Dict[str, Dict[str, str]]: @@ -61,7 +61,7 @@ class HomeView(View):                  # Try to get new data from the API. If it fails, return the cached data.                  try:                      api_repositories = self._get_api_data() -                except TypeError: +                except (TypeError, ConnectionError):                      return RepositoryMetadata.objects.all()                  database_repositories = []  |