user_groups: Add MemberGroupUserDict.

Signed-off-by: Zixuan James Li <p359101898@gmail.com>
This commit is contained in:
Zixuan James Li 2022-07-15 12:10:00 -04:00 committed by Tim Abbott
parent 9094a591e4
commit cbaa4bd98c

View File

@ -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