Limit Avatar image size to 120px and 240 px

This commit is contained in:
Lorenz Padberg 2024-04-30 22:02:54 +02:00
parent cda9f3fdd6
commit a16d1c7716
1 changed files with 13 additions and 0 deletions

View File

@ -22,6 +22,12 @@ class RecentModuleFilter(FilterSet):
order_by = OrderingFilter(fields=(("recent_modules__visited", "visited"),)) order_by = OrderingFilter(fields=(("recent_modules__visited", "visited"),))
def get_resized_avatar_url(avatar_url, size=120):
# resize the avatar to 120px if it is on ucarecdn.com
if "ucarecdn.com" in avatar_url:
return f"{avatar_url}-/resize/{size}/"
return avatar_url
class SchoolClassNode(DjangoObjectType): class SchoolClassNode(DjangoObjectType):
pk = graphene.Int() pk = graphene.Int()
members = graphene.List("users.schema.ClassMemberNode") members = graphene.List("users.schema.ClassMemberNode")
@ -109,6 +115,9 @@ class PrivateUserNode(DjangoObjectType):
def resolve_pk(self, info, **kwargs): def resolve_pk(self, info, **kwargs):
return self.id return self.id
def resolve_avatar_url(self, info, **kwargs):
return get_resized_avatar_url(self.avatar_url, size=240)
def resolve_permissions(self, info): def resolve_permissions(self, info):
return self.get_all_permissions() return self.get_all_permissions()
@ -164,6 +173,10 @@ class PublicUserNode(DjangoObjectType):
only_fields = ["full_name", "first_name", "last_name", "avatar_url"] only_fields = ["full_name", "first_name", "last_name", "avatar_url"]
interfaces = (relay.Node,) interfaces = (relay.Node,)
def resolve_avatar_url(self, info, **kwargs):
return get_resized_avatar_url(self.avatar_url)
@staticmethod @staticmethod
def resolve_is_me(parent: User, info, **kwargs): def resolve_is_me(parent: User, info, **kwargs):
return info.context.user.pk == parent.pk return info.context.user.pk == parent.pk