models: Add SUBSCRIPTION_DEACTIVATED event type constant to RealmAuditLog.

This commit is contained in:
Vishnu Ks
2018-07-10 10:26:58 +05:30
committed by Tim Abbott
parent ff4c1ca2c1
commit abb218ebab
4 changed files with 6 additions and 5 deletions

View File

@@ -2695,7 +2695,7 @@ def bulk_remove_subscriptions(users: Iterable[UserProfile],
modified_user=sub.user_profile, modified_user=sub.user_profile,
modified_stream=stream, modified_stream=stream,
event_last_message_id=event_last_message_id, event_last_message_id=event_last_message_id,
event_type='subscription_deactivated', event_type=RealmAuditLog.SUBSCRIPTION_DEACTIVATED,
event_time=event_time)) event_time=event_time))
# Now since we have all log objects generated we can do a bulk insert # Now since we have all log objects generated we can do a bulk insert
RealmAuditLog.objects.bulk_create(all_subscription_logs) RealmAuditLog.objects.bulk_create(all_subscription_logs)

View File

@@ -31,7 +31,7 @@ def filter_by_subscription_history(user_profile: UserProfile,
for log_entry in stream_subscription_logs: for log_entry in stream_subscription_logs:
if len(stream_messages) == 0: if len(stream_messages) == 0:
continue continue
if log_entry.event_type == 'subscription_deactivated': if log_entry.event_type == RealmAuditLog.SUBSCRIPTION_DEACTIVATED:
for stream_message in stream_messages: for stream_message in stream_messages:
if stream_message['id'] <= log_entry.event_last_message_id: if stream_message['id'] <= log_entry.event_last_message_id:
store_user_message_to_insert(stream_message) store_user_message_to_insert(stream_message)
@@ -105,7 +105,7 @@ def add_missing_messages(user_profile: UserProfile) -> None:
# For Stream messages we need to check messages against data from # For Stream messages we need to check messages against data from
# RealmAuditLog for visibility to user. So we fetch the subscription logs. # RealmAuditLog for visibility to user. So we fetch the subscription logs.
stream_ids = [sub['recipient__type_id'] for sub in all_stream_subs] stream_ids = [sub['recipient__type_id'] for sub in all_stream_subs]
events = [RealmAuditLog.SUBSCRIPTION_CREATED, 'subscription_deactivated', 'subscription_activated'] events = [RealmAuditLog.SUBSCRIPTION_CREATED, RealmAuditLog.SUBSCRIPTION_DEACTIVATED, 'subscription_activated']
subscription_logs = list(RealmAuditLog.objects.select_related( subscription_logs = list(RealmAuditLog.objects.select_related(
'modified_stream').filter( 'modified_stream').filter(
modified_user=user_profile, modified_user=user_profile,
@@ -119,7 +119,7 @@ def add_missing_messages(user_profile: UserProfile) -> None:
recipient_ids = [] recipient_ids = []
for sub in all_stream_subs: for sub in all_stream_subs:
stream_subscription_logs = all_stream_subscription_logs[sub['recipient__type_id']] stream_subscription_logs = all_stream_subscription_logs[sub['recipient__type_id']]
if stream_subscription_logs[-1].event_type == 'subscription_deactivated': if stream_subscription_logs[-1].event_type == RealmAuditLog.SUBSCRIPTION_DEACTIVATED:
assert stream_subscription_logs[-1].event_last_message_id is not None assert stream_subscription_logs[-1].event_last_message_id is not None
if stream_subscription_logs[-1].event_last_message_id <= user_profile.last_active_message_id: if stream_subscription_logs[-1].event_last_message_id <= user_profile.last_active_message_id:
# We are going to short circuit this iteration as its no use # We are going to short circuit this iteration as its no use

View File

@@ -1978,6 +1978,7 @@ class RealmAuditLog(models.Model):
BOT_OWNER_CHANGED = 'bot_owner_changed' BOT_OWNER_CHANGED = 'bot_owner_changed'
SUBSCRIPTION_CREATED = 'subscription_created' SUBSCRIPTION_CREATED = 'subscription_created'
SUBSCRIPTION_DEACTIVATED = 'subscription_deactivated'
event_type = models.CharField(max_length=40) # type: str event_type = models.CharField(max_length=40) # type: str

View File

@@ -113,7 +113,7 @@ class TestRealmAuditLog(ZulipTestCase):
self.assertEqual(subscription_creation_logs[0].modified_user, user[0]) self.assertEqual(subscription_creation_logs[0].modified_user, user[0])
bulk_remove_subscriptions(user, stream) bulk_remove_subscriptions(user, stream)
subscription_deactivation_logs = RealmAuditLog.objects.filter(event_type='subscription_deactivated', subscription_deactivation_logs = RealmAuditLog.objects.filter(event_type=RealmAuditLog.SUBSCRIPTION_DEACTIVATED,
event_time__gte=now) event_time__gte=now)
self.assertEqual(subscription_deactivation_logs.count(), 1) self.assertEqual(subscription_deactivation_logs.count(), 1)
self.assertEqual(subscription_deactivation_logs[0].modified_stream.id, stream[0].id) self.assertEqual(subscription_deactivation_logs[0].modified_stream.id, stream[0].id)