RealmAuditLog: Add support for stringifying entries.

This commit is contained in:
Tim Abbott
2017-09-22 07:09:37 -07:00
parent bc69d28bf8
commit dc843efd56
2 changed files with 12 additions and 1 deletions

View File

@@ -1871,7 +1871,7 @@ EMAIL_TYPES = {
'invitation_reminder': ScheduledEmail.INVITATION_REMINDER,
}
class RealmAuditLog(models.Model):
class RealmAuditLog(ModelReprMixin, models.Model):
realm = models.ForeignKey(Realm, on_delete=CASCADE) # type: Realm
acting_user = models.ForeignKey(UserProfile, null=True, related_name='+', on_delete=CASCADE) # type: Optional[UserProfile]
modified_user = models.ForeignKey(UserProfile, null=True, related_name='+', on_delete=CASCADE) # type: Optional[UserProfile]
@@ -1884,6 +1884,13 @@ class RealmAuditLog(models.Model):
backfilled = models.BooleanField(default=False) # type: bool
extra_data = models.TextField(null=True) # type: Optional[Text]
def __unicode__(self):
if self.modified_user is not None:
return u"<RealmAuditLog: %s %s %s>" % (self.modified_user, self.event_type, self.event_time)
if self.modified_stream is not None:
return u"<RealmAuditLog: %s %s %s>" % (self.modified_stream, self.event_type, self.event_time)
return "<RealmAuditLog: %s %s %s>" % (self.realm, self.event_type, self.event_time)
class UserHotspot(models.Model):
user = models.ForeignKey(UserProfile, on_delete=CASCADE) # type: UserProfile
hotspot = models.CharField(max_length=30) # type: Text

View File

@@ -52,6 +52,10 @@ class TestRealmAuditLog(ZulipTestCase):
event_time__gte=now).count(), 1)
self.assertEqual(email, user.email)
# Test the RealmAuditLog stringification
audit_entry = RealmAuditLog.objects.get(event_type='user_email_changed', event_time__gte=now)
self.assertTrue(str(audit_entry).startswith("<RealmAuditLog: <UserProfile: test@example.com <Realm: zulip 1>> user_email_changed "))
def test_change_avatar_source(self):
# type: () -> None
now = timezone_now()