from django.core.management.base import CommandParser from zerver.lib.actions import do_change_notification_settings from zerver.lib.management import ZulipBaseCommand class Command(ZulipBaseCommand): help = """Turn off digests for a subdomain/string_id or specified set of email addresses.""" def add_arguments(self, parser: CommandParser) -> None: self.add_realm_args(parser) self.add_user_list_args( parser, help="Turn off digests for this comma-separated list of email addresses.", all_users_help="Turn off digests for everyone in realm.", ) def handle(self, **options: str) -> None: realm = self.get_realm(options) user_profiles = self.get_users(options, realm) print("Turned off digest emails for:") for user_profile in user_profiles: already_disabled_prefix = "" if user_profile.enable_digest_emails: do_change_notification_settings( user_profile, "enable_digest_emails", False, acting_user=None ) else: already_disabled_prefix = "(already off) " print( f"{already_disabled_prefix}{user_profile.full_name} <{user_profile.delivery_email}>" )