From 09b35b09c5265ebff9dffbef876df1100a569339 Mon Sep 17 00:00:00 2001 From: Sahil Batra Date: Mon, 8 Aug 2022 22:37:24 +0530 Subject: [PATCH] migrations: Add migration to set default value of enable_read_receipts. This migration set default value of enable_read_receipts to True for existing realms which require an invitation to join. --- ...05_set_default_for_enable_read_receipts.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 zerver/migrations/0405_set_default_for_enable_read_receipts.py diff --git a/zerver/migrations/0405_set_default_for_enable_read_receipts.py b/zerver/migrations/0405_set_default_for_enable_read_receipts.py new file mode 100644 index 0000000000..04d5031681 --- /dev/null +++ b/zerver/migrations/0405_set_default_for_enable_read_receipts.py @@ -0,0 +1,28 @@ +# Generated by Django 4.0.6 on 2022-08-08 16:52 + +from django.db import migrations +from django.db.backends.postgresql.schema import BaseDatabaseSchemaEditor +from django.db.migrations.state import StateApps +from django.db.models import Q + + +def set_default_for_enable_read_receipts( + apps: StateApps, schema_editor: BaseDatabaseSchemaEditor +) -> None: + Realm = apps.get_model("zerver", "Realm") + # We enable read receipts by default in realms which require an invitation to + # join or which allow only users having emails with specific domains to join. + Realm.objects.filter(Q(invite_required=True) | Q(emails_restricted_to_domains=True)).update( + enable_read_receipts=True + ) + + +class Migration(migrations.Migration): + + dependencies = [ + ("zerver", "0404_realm_enable_read_receipts"), + ] + + operations = [ + migrations.RunPython(set_default_for_enable_read_receipts, elidable=True), + ]