From cbaa4bd98cd1c6a30ee5ab0fcb6a2f3dcc097419 Mon Sep 17 00:00:00 2001 From: Zixuan James Li Date: Fri, 15 Jul 2022 12:10:00 -0400 Subject: [PATCH] user_groups: Add MemberGroupUserDict. Signed-off-by: Zixuan James Li --- zerver/actions/user_groups.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/zerver/actions/user_groups.py b/zerver/actions/user_groups.py index d676d1a968..98d88d5ee8 100644 --- a/zerver/actions/user_groups.py +++ b/zerver/actions/user_groups.py @@ -1,5 +1,5 @@ import datetime -from typing import Dict, List, Sequence, Union +from typing import Dict, List, Sequence, TypedDict import django.db.utils from django.db import transaction @@ -19,6 +19,12 @@ from zerver.models import ( from zerver.tornado.django_api import send_event +class MemberGroupUserDict(TypedDict): + id: int + role: int + date_joined: datetime.datetime + + @transaction.atomic(savepoint=False) def update_users_in_full_members_system_group( realm: Realm, affected_user_ids: Sequence[int] = [] @@ -30,8 +36,8 @@ def update_users_in_full_members_system_group( realm=realm, name="@role:members", is_system_group=True ) - full_member_group_users: List[Dict[str, Union[int, datetime.datetime]]] = list() - member_group_users: List[Dict[str, Union[int, datetime.datetime]]] = list() + full_member_group_users: List[MemberGroupUserDict] = list() + member_group_users: List[MemberGroupUserDict] = list() if affected_user_ids: full_member_group_users = list( @@ -52,7 +58,7 @@ def update_users_in_full_members_system_group( members_system_group.direct_members.all().values("id", "role", "date_joined") ) - def is_provisional_member(user: Dict[str, Union[int, datetime.datetime]]) -> bool: + def is_provisional_member(user: MemberGroupUserDict) -> bool: diff = (timezone_now() - user["date_joined"]).days if diff < realm.waiting_period_threshold: return True