models: Replace user_profile__is_active queries with is_user_active.

This saves a couple database queries by using the recently added
denormalization for Subscription objects.
This commit is contained in:
Tim Abbott
2021-04-19 13:36:06 -07:00
committed by Tim Abbott
parent a1cfe25f8d
commit 6346b9d3eb
2 changed files with 2 additions and 4 deletions

View File

@@ -6703,7 +6703,7 @@ def get_occupied_streams(realm: Realm) -> QuerySet:
exists_expression = Exists(
Subscription.objects.filter(
active=True,
user_profile__is_active=True,
is_user_active=True,
user_profile__realm=realm,
recipient_id=OuterRef("recipient_id"),
),

View File

@@ -46,6 +46,7 @@ def get_active_subscriptions_for_stream_ids(stream_ids: Set[int]) -> QuerySet:
recipient__type=Recipient.STREAM,
recipient__type_id__in=stream_ids,
active=True,
is_user_active=True,
)
@@ -117,9 +118,6 @@ def num_subscribers_for_stream_id(stream_id: int) -> int:
def get_user_ids_for_streams(stream_ids: Set[int]) -> Dict[int, Set[int]]:
all_subs = (
get_active_subscriptions_for_stream_ids(stream_ids)
.filter(
user_profile__is_active=True,
)
.values(
"recipient__type_id",
"user_profile_id",