diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 9d567d9ab3..f736449801 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -2695,7 +2695,7 @@ def bulk_remove_subscriptions(users: Iterable[UserProfile], modified_user=sub.user_profile, modified_stream=stream, event_last_message_id=event_last_message_id, - event_type='subscription_deactivated', + event_type=RealmAuditLog.SUBSCRIPTION_DEACTIVATED, event_time=event_time)) # Now since we have all log objects generated we can do a bulk insert RealmAuditLog.objects.bulk_create(all_subscription_logs) diff --git a/zerver/lib/soft_deactivation.py b/zerver/lib/soft_deactivation.py index 7da4561576..670e310b8d 100644 --- a/zerver/lib/soft_deactivation.py +++ b/zerver/lib/soft_deactivation.py @@ -31,7 +31,7 @@ def filter_by_subscription_history(user_profile: UserProfile, for log_entry in stream_subscription_logs: if len(stream_messages) == 0: continue - if log_entry.event_type == 'subscription_deactivated': + if log_entry.event_type == RealmAuditLog.SUBSCRIPTION_DEACTIVATED: for stream_message in stream_messages: if stream_message['id'] <= log_entry.event_last_message_id: 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 # RealmAuditLog for visibility to user. So we fetch the subscription logs. 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( 'modified_stream').filter( modified_user=user_profile, @@ -119,7 +119,7 @@ def add_missing_messages(user_profile: UserProfile) -> None: recipient_ids = [] for sub in all_stream_subs: 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 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 diff --git a/zerver/models.py b/zerver/models.py index 02ed82c500..a6de64478d 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -1978,6 +1978,7 @@ class RealmAuditLog(models.Model): BOT_OWNER_CHANGED = 'bot_owner_changed' SUBSCRIPTION_CREATED = 'subscription_created' + SUBSCRIPTION_DEACTIVATED = 'subscription_deactivated' event_type = models.CharField(max_length=40) # type: str diff --git a/zerver/tests/test_audit_log.py b/zerver/tests/test_audit_log.py index f7f31fe8af..3dcedfc0a8 100644 --- a/zerver/tests/test_audit_log.py +++ b/zerver/tests/test_audit_log.py @@ -113,7 +113,7 @@ class TestRealmAuditLog(ZulipTestCase): self.assertEqual(subscription_creation_logs[0].modified_user, user[0]) 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) self.assertEqual(subscription_deactivation_logs.count(), 1) self.assertEqual(subscription_deactivation_logs[0].modified_stream.id, stream[0].id)