def approve_sponsorship(realm: Realm, *, acting_user: Optional[UserProfile]) -> None: from zerver.lib.actions import do_change_realm_plan_type, internal_send_private_message do_change_realm_plan_type(realm, Realm.PLAN_TYPE_STANDARD_FREE, acting_user=acting_user) customer = get_customer_by_realm(realm) if customer is not None and customer.sponsorship_pending: customer.sponsorship_pending = False customer.save(update_fields=["sponsorship_pending"]) RealmAuditLog.objects.create( realm=realm, acting_user=acting_user, event_type=RealmAuditLog.REALM_SPONSORSHIP_APPROVED, event_time=timezone_now(), ) notification_bot = get_system_bot(settings.NOTIFICATION_BOT, realm.id) for user in realm.get_human_billing_admin_and_realm_owner_users(): with override_language(user.default_language): # Using variable to make life easier for translators if these details change. plan_name = "Zulip Cloud Standard" emoji = ":tada:" message = _( f"Your organization's request for sponsored hosting has been approved! {emoji}.\n" f"You have been upgraded to {plan_name}, free of charge.") internal_send_private_message(notification_bot, user, message)
def send_email_to_billing_admins_and_realm_owners( template_prefix: str, realm: Realm, from_name: Optional[str] = None, from_address: Optional[str] = None, language: Optional[str] = None, context: Dict[str, Any] = {}, ) -> None: send_email( template_prefix, to_user_ids=[user.id for user in realm.get_human_billing_admin_and_realm_owner_users()], from_name=from_name, from_address=from_address, language=language, context=context, )