From 2eb2d5b6dede2e2da60cdf1ee0631fd2e354aa6a Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Fri, 19 Sep 2025 18:34:57 -0700 Subject: [PATCH] user_groups: Fix union typing. Signed-off-by: Anders Kaseorg --- zerver/lib/user_groups.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/zerver/lib/user_groups.py b/zerver/lib/user_groups.py index ccc28263f1..35dd257148 100644 --- a/zerver/lib/user_groups.py +++ b/zerver/lib/user_groups.py @@ -606,23 +606,24 @@ def get_members_and_subgroups_of_groups( .exclude(user_profile__is_active=False) .annotate( member_type=Value("user"), + group_id=F("user_group_id"), + member_id=F("user_profile_id"), ) - .values_list("member_type", "user_group_id", "user_profile_id") ) - group_subgroups = ( - GroupGroupMembership.objects.filter(supergroup_id__in=group_ids) - .annotate( - member_type=Value("group"), - ) - .values_list("member_type", "supergroup_id", "subgroup_id") + group_subgroups = GroupGroupMembership.objects.filter(supergroup_id__in=group_ids).annotate( + member_type=Value("group"), + group_id=F("supergroup_id"), + member_id=F("subgroup_id"), ) group_members_dict: dict[int, UserGroupMembersData] = dict() for group_id in group_ids: group_members_dict[group_id] = UserGroupMembersData(direct_members=[], direct_subgroups=[]) - all_members = user_members.union(group_subgroups) + all_members = user_members.union(group_subgroups).values_list( + "member_type", "group_id", "member_id" + ) for member_type, group_id, member_id in all_members: members_dict = group_members_dict[group_id] if member_type == "user":