From be3dc12a984654885494dfe02c0624562f39e4f1 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Tue, 16 May 2017 20:59:50 -0700 Subject: [PATCH] models: Move several __unicode__ methods to abstract classes. This makes it possible to print ArchivedMessage, ArchivedUserMessage, and ArchivedAttachment objects. --- zerver/models.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/zerver/models.py b/zerver/models.py index 8e0626b84bca6..186e9d68d430c 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -1027,6 +1027,12 @@ class AbstractMessage(ModelReprMixin, models.Model): class Meta(object): abstract = True + def __unicode__(self): + # type: () -> Text + display_recipient = get_display_recipient(self.recipient) + return u"<%s: %s / %s / %r>" % (self.__class__.__name__, display_recipient, + self.subject, self.sender) + class ArchivedMessage(AbstractMessage): archive_timestamp = models.DateTimeField(default=timezone_now, db_index=True) # type: datetime.datetime @@ -1042,11 +1048,6 @@ def topic_name(self): """ return self.subject - def __unicode__(self): - # type: () -> Text - display_recipient = get_display_recipient(self.recipient) - return u"" % (display_recipient, self.subject, self.sender) - def get_realm(self): # type: () -> Realm return self.sender.realm @@ -1226,6 +1227,12 @@ def flags_list(self): # type: () -> List[str] return [flag for flag in self.flags.keys() if getattr(self.flags, flag).is_set] + def __unicode__(self): + # type: () -> Text + display_recipient = get_display_recipient(self.message.recipient) + return u"<%s: %s / %s (%s)>" % (self.__class__.__name__, display_recipient, + self.user_profile.email, self.flags_list()) + class ArchivedUserMessage(AbstractUserMessage): message = models.ForeignKey(ArchivedMessage) # type: Message @@ -1235,11 +1242,6 @@ class ArchivedUserMessage(AbstractUserMessage): class UserMessage(AbstractUserMessage): message = models.ForeignKey(Message) # type: Message - def __unicode__(self): - # type: () -> Text - display_recipient = get_display_recipient(self.message.recipient) - return u"" % (display_recipient, self.user_profile.email, self.flags_list()) - def parse_usermessage_flags(val): # type: (int) -> List[str] @@ -1268,6 +1270,10 @@ class AbstractAttachment(ModelReprMixin, models.Model): class Meta(object): abstract = True + def __unicode__(self): + # type: () -> Text + return u"<%s: %s>" % (self.__class__.__name__, self.file_name,) + class ArchivedAttachment(AbstractAttachment): archive_timestamp = models.DateTimeField(default=timezone_now, db_index=True) # type: datetime.datetime @@ -1277,10 +1283,6 @@ class ArchivedAttachment(AbstractAttachment): class Attachment(AbstractAttachment): messages = models.ManyToManyField(Message) # type: Manager - def __unicode__(self): - # type: () -> Text - return u"" % (self.file_name,) - def is_claimed(self): # type: () -> bool return self.messages.count() > 0