From 7d379e00b02d014d3856ee34e654e6633c179fb7 Mon Sep 17 00:00:00 2001 From: Prakhar Pratyush Date: Tue, 16 Jul 2024 13:38:18 +0530 Subject: [PATCH] export: Fix 'OnboardingUserMessage' table not being exported. Earlier, the export tool was logging a warning: "??? NO DATA EXPORTED FOR TABLE zerver_onboardingusermessage!!!" This bug was due to not configuring a Config object for 'OnboardingUserMessage' in 'get_realm_config()'. This commit fixes the bug to export the table properly. --- zerver/lib/export.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/zerver/lib/export.py b/zerver/lib/export.py index cc72868541..865d744022 100644 --- a/zerver/lib/export.py +++ b/zerver/lib/export.py @@ -47,6 +47,7 @@ from zerver.models import ( MutedUser, NamedUserGroup, OnboardingStep, + OnboardingUserMessage, Reaction, Realm, RealmAuditLog, @@ -769,6 +770,13 @@ def get_realm_config() -> Config: include_rows="realm_id__in", ) + Config( + table="zerver_onboardingusermessage", + model=OnboardingUserMessage, + virtual_parent=realm_config, + custom_fetch=custom_fetch_onboarding_usermessage, + ) + user_profile_config = Config( custom_tables=[ "zerver_userprofile", @@ -1197,6 +1205,18 @@ def custom_fetch_realm_audit_logs_for_realm(response: TableData, context: Contex response["zerver_realmauditlog"] = rows +def custom_fetch_onboarding_usermessage(response: TableData, context: Context) -> None: + realm = context["realm"] + response["zerver_onboardingusermessage"] = [] + + onboarding_usermessage_query = OnboardingUserMessage.objects.filter(realm=realm) + for onboarding_usermessage in onboarding_usermessage_query: + onboarding_usermessage_obj = model_to_dict(onboarding_usermessage) + onboarding_usermessage_obj["flags_mask"] = onboarding_usermessage.flags.mask + del onboarding_usermessage_obj["flags"] + response["zerver_onboardingusermessage"].append(onboarding_usermessage_obj) + + def fetch_usermessages( realm: Realm, message_ids: set[int],