mirror of https://github.com/zulip/zulip.git
models: Annotate most field types.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
8c64a14a31
commit
9b7c6828ec
|
@ -116,7 +116,7 @@ def update_messages_for_topic_edit(message: Message,
|
||||||
|
|
||||||
messages = Message.objects.filter(propagate_query).select_related()
|
messages = Message.objects.filter(propagate_query).select_related()
|
||||||
|
|
||||||
update_fields = {}
|
update_fields: Dict[str, object] = {}
|
||||||
|
|
||||||
# Evaluate the query before running the update
|
# Evaluate the query before running the update
|
||||||
messages_list = list(messages)
|
messages_list = list(messages)
|
||||||
|
|
|
@ -377,7 +377,7 @@ class Realm(models.Model):
|
||||||
'id': 4
|
'id': 4
|
||||||
}
|
}
|
||||||
|
|
||||||
video_chat_provider = models.PositiveSmallIntegerField(default=VIDEO_CHAT_PROVIDERS['jitsi_meet']['id'])
|
video_chat_provider: int = models.PositiveSmallIntegerField(default=VIDEO_CHAT_PROVIDERS['jitsi_meet']['id'])
|
||||||
|
|
||||||
default_code_block_language: Optional[str] = models.TextField(null=True, default=None)
|
default_code_block_language: Optional[str] = models.TextField(null=True, default=None)
|
||||||
|
|
||||||
|
@ -614,7 +614,7 @@ class RealmDomain(models.Model):
|
||||||
realm: Realm = models.ForeignKey(Realm, on_delete=CASCADE)
|
realm: Realm = models.ForeignKey(Realm, on_delete=CASCADE)
|
||||||
# should always be stored lowercase
|
# should always be stored lowercase
|
||||||
domain: str = models.CharField(max_length=80, db_index=True)
|
domain: str = models.CharField(max_length=80, db_index=True)
|
||||||
allow_subdomains = models.BooleanField(default=False)
|
allow_subdomains: bool = models.BooleanField(default=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ("realm", "domain")
|
unique_together = ("realm", "domain")
|
||||||
|
@ -1020,7 +1020,7 @@ class UserProfile(AbstractBaseUser, PermissionsMixin):
|
||||||
COLOR_SCHEME_NIGHT,
|
COLOR_SCHEME_NIGHT,
|
||||||
COLOR_SCHEME_LIGHT
|
COLOR_SCHEME_LIGHT
|
||||||
]
|
]
|
||||||
color_scheme = models.PositiveSmallIntegerField(default=COLOR_SCHEME_AUTOMATIC)
|
color_scheme: int = models.PositiveSmallIntegerField(default=COLOR_SCHEME_AUTOMATIC)
|
||||||
|
|
||||||
# UI setting controlling Zulip's behavior of demoting in the sort
|
# UI setting controlling Zulip's behavior of demoting in the sort
|
||||||
# order and graying out streams with no recent traffic. The
|
# order and graying out streams with no recent traffic. The
|
||||||
|
@ -1034,7 +1034,7 @@ class UserProfile(AbstractBaseUser, PermissionsMixin):
|
||||||
DEMOTE_STREAMS_ALWAYS,
|
DEMOTE_STREAMS_ALWAYS,
|
||||||
DEMOTE_STREAMS_NEVER,
|
DEMOTE_STREAMS_NEVER,
|
||||||
]
|
]
|
||||||
demote_inactive_streams = models.PositiveSmallIntegerField(default=DEMOTE_STREAMS_AUTOMATIC)
|
demote_inactive_streams: int = models.PositiveSmallIntegerField(default=DEMOTE_STREAMS_AUTOMATIC)
|
||||||
|
|
||||||
# A timezone name from the `tzdata` database, as found in pytz.all_timezones.
|
# A timezone name from the `tzdata` database, as found in pytz.all_timezones.
|
||||||
#
|
#
|
||||||
|
@ -1297,17 +1297,17 @@ class PasswordTooWeakError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class UserGroup(models.Model):
|
class UserGroup(models.Model):
|
||||||
name = models.CharField(max_length=100)
|
name: str = models.CharField(max_length=100)
|
||||||
members = models.ManyToManyField(UserProfile, through='UserGroupMembership')
|
members: Manager = models.ManyToManyField(UserProfile, through='UserGroupMembership')
|
||||||
realm = models.ForeignKey(Realm, on_delete=CASCADE)
|
realm: Realm = models.ForeignKey(Realm, on_delete=CASCADE)
|
||||||
description: str = models.TextField(default='')
|
description: str = models.TextField(default='')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = (('realm', 'name'),)
|
unique_together = (('realm', 'name'),)
|
||||||
|
|
||||||
class UserGroupMembership(models.Model):
|
class UserGroupMembership(models.Model):
|
||||||
user_group = models.ForeignKey(UserGroup, on_delete=CASCADE)
|
user_group: UserGroup = models.ForeignKey(UserGroup, on_delete=CASCADE)
|
||||||
user_profile = models.ForeignKey(UserProfile, on_delete=CASCADE)
|
user_profile: UserProfile = models.ForeignKey(UserProfile, on_delete=CASCADE)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = (('user_group', 'user_profile'),)
|
unique_together = (('user_group', 'user_profile'),)
|
||||||
|
@ -1353,14 +1353,14 @@ class PreregistrationUser(models.Model):
|
||||||
# If the pre-registration process provides a suggested full name for this user,
|
# If the pre-registration process provides a suggested full name for this user,
|
||||||
# store it here to use it to prepopulate the Full Name field in the registration form:
|
# store it here to use it to prepopulate the Full Name field in the registration form:
|
||||||
full_name: Optional[str] = models.CharField(max_length=UserProfile.MAX_NAME_LENGTH, null=True)
|
full_name: Optional[str] = models.CharField(max_length=UserProfile.MAX_NAME_LENGTH, null=True)
|
||||||
full_name_validated = models.BooleanField(default=False)
|
full_name_validated: bool = models.BooleanField(default=False)
|
||||||
referred_by: Optional[UserProfile] = models.ForeignKey(UserProfile, null=True, on_delete=CASCADE)
|
referred_by: Optional[UserProfile] = models.ForeignKey(UserProfile, null=True, on_delete=CASCADE)
|
||||||
streams: Manager = models.ManyToManyField('Stream')
|
streams: Manager = models.ManyToManyField('Stream')
|
||||||
invited_at: datetime.datetime = models.DateTimeField(auto_now=True)
|
invited_at: datetime.datetime = models.DateTimeField(auto_now=True)
|
||||||
realm_creation = models.BooleanField(default=False)
|
realm_creation: bool = models.BooleanField(default=False)
|
||||||
# Indicates whether the user needs a password. Users who were
|
# Indicates whether the user needs a password. Users who were
|
||||||
# created via SSO style auth (e.g. GitHub/Google) generally do not.
|
# created via SSO style auth (e.g. GitHub/Google) generally do not.
|
||||||
password_required = models.BooleanField(default=True)
|
password_required: bool = models.BooleanField(default=True)
|
||||||
|
|
||||||
# status: whether an object has been confirmed.
|
# status: whether an object has been confirmed.
|
||||||
# if confirmed, set to confirmation.settings.STATUS_ACTIVE
|
# if confirmed, set to confirmation.settings.STATUS_ACTIVE
|
||||||
|
@ -1390,7 +1390,7 @@ def filter_to_valid_prereg_users(query: QuerySet) -> QuerySet:
|
||||||
invited_at__gte=lowest_datetime)
|
invited_at__gte=lowest_datetime)
|
||||||
|
|
||||||
class MultiuseInvite(models.Model):
|
class MultiuseInvite(models.Model):
|
||||||
referred_by = models.ForeignKey(UserProfile, on_delete=CASCADE) # Optional[UserProfile]
|
referred_by: UserProfile = models.ForeignKey(UserProfile, on_delete=CASCADE) # Optional[UserProfile]
|
||||||
streams: Manager = models.ManyToManyField('Stream')
|
streams: Manager = models.ManyToManyField('Stream')
|
||||||
realm: Realm = models.ForeignKey(Realm, on_delete=CASCADE)
|
realm: Realm = models.ForeignKey(Realm, on_delete=CASCADE)
|
||||||
invited_as: int = models.PositiveSmallIntegerField(default=PreregistrationUser.INVITE_AS['MEMBER'])
|
invited_as: int = models.PositiveSmallIntegerField(default=PreregistrationUser.INVITE_AS['MEMBER'])
|
||||||
|
@ -1566,14 +1566,14 @@ post_save.connect(flush_stream, sender=Stream)
|
||||||
post_delete.connect(flush_stream, sender=Stream)
|
post_delete.connect(flush_stream, sender=Stream)
|
||||||
|
|
||||||
class MutedTopic(models.Model):
|
class MutedTopic(models.Model):
|
||||||
user_profile = models.ForeignKey(UserProfile, on_delete=CASCADE)
|
user_profile: UserProfile = models.ForeignKey(UserProfile, on_delete=CASCADE)
|
||||||
stream = models.ForeignKey(Stream, on_delete=CASCADE)
|
stream: Stream = models.ForeignKey(Stream, on_delete=CASCADE)
|
||||||
recipient = models.ForeignKey(Recipient, on_delete=CASCADE)
|
recipient: Recipient = models.ForeignKey(Recipient, on_delete=CASCADE)
|
||||||
topic_name = models.CharField(max_length=MAX_TOPIC_NAME_LENGTH)
|
topic_name: str = models.CharField(max_length=MAX_TOPIC_NAME_LENGTH)
|
||||||
# The default value for date_muted is a few weeks before tracking
|
# The default value for date_muted is a few weeks before tracking
|
||||||
# of when topics were muted was first introduced. It's designed
|
# of when topics were muted was first introduced. It's designed
|
||||||
# to be obviously incorrect so that users can tell it's backfilled data.
|
# to be obviously incorrect so that users can tell it's backfilled data.
|
||||||
date_muted = models.DateTimeField(default=datetime.datetime(2020, 1, 1, 0, 0, tzinfo=datetime.timezone.utc))
|
date_muted: datetime.datetime = models.DateTimeField(default=datetime.datetime(2020, 1, 1, 0, 0, tzinfo=datetime.timezone.utc))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ('user_profile', 'stream', 'topic_name')
|
unique_together = ('user_profile', 'stream', 'topic_name')
|
||||||
|
@ -1862,8 +1862,8 @@ class AbstractSubMessage(models.Model):
|
||||||
# generic in purpose.
|
# generic in purpose.
|
||||||
|
|
||||||
sender: UserProfile = models.ForeignKey(UserProfile, on_delete=CASCADE)
|
sender: UserProfile = models.ForeignKey(UserProfile, on_delete=CASCADE)
|
||||||
msg_type = models.TextField()
|
msg_type: str = models.TextField()
|
||||||
content = models.TextField()
|
content: str = models.TextField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
|
|
Loading…
Reference in New Issue