From b3ab8c736dc6f15d8a766106d26db091d7e71512 Mon Sep 17 00:00:00 2001 From: sokumon Date: Thu, 27 Mar 2025 10:11:52 +0530 Subject: [PATCH 1/2] fix: sync currency field on migrate --- frappe/core/doctype/system_settings/system_settings.py | 6 ++++++ frappe/migrate.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/frappe/core/doctype/system_settings/system_settings.py b/frappe/core/doctype/system_settings/system_settings.py index 1886f23391..07523e6e73 100644 --- a/frappe/core/doctype/system_settings/system_settings.py +++ b/frappe/core/doctype/system_settings/system_settings.py @@ -2,6 +2,7 @@ # License: MIT. See LICENSE import frappe +import frappe.defaults from frappe import _ from frappe.model import no_value_fields from frappe.model.document import Document @@ -240,3 +241,8 @@ def clear_system_settings_cache(): frappe.client_cache.delete_value(cache_key) frappe.cache.delete_value("system_settings") frappe.cache.delete_value("time_zone") + + +def sync_system_settings(): + if frappe.db.get_single_value("System Settings", "currency") is None: + frappe.db.set_single_value("System Settings", "currency", frappe.defaults.get_defaults()["currency"]) diff --git a/frappe/migrate.py b/frappe/migrate.py index ad44316772..57fafa1696 100644 --- a/frappe/migrate.py +++ b/frappe/migrate.py @@ -14,6 +14,7 @@ import frappe.translate from frappe.core.doctype.language.language import sync_languages from frappe.core.doctype.navbar_settings.navbar_settings import sync_standard_items from frappe.core.doctype.scheduled_job_type.scheduled_job_type import sync_jobs +from frappe.core.doctype.system_settings.system_settings import sync_system_settings from frappe.database.schema import add_column from frappe.deferred_insert import save_to_db as flush_deferred_inserts from frappe.desk.notifications import clear_notifications @@ -168,6 +169,9 @@ class SiteMigration: print("Updating installed applications...") frappe.get_single("Installed Applications").update_versions() + print("Syncing System Settings") + sync_system_settings() + print("Executing `after_migrate` hooks...") for app in frappe.get_installed_apps(): for fn in frappe.get_hooks("after_migrate", app_name=app): From f3110213075a5a9dcb755eb2c3fb1b02a4035e3c Mon Sep 17 00:00:00 2001 From: sokumon Date: Thu, 27 Mar 2025 15:23:38 +0530 Subject: [PATCH 2/2] fix: made it a patch instead of running every migrate --- frappe/migrate.py | 4 ---- frappe/patches.txt | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/frappe/migrate.py b/frappe/migrate.py index 57fafa1696..ad44316772 100644 --- a/frappe/migrate.py +++ b/frappe/migrate.py @@ -14,7 +14,6 @@ import frappe.translate from frappe.core.doctype.language.language import sync_languages from frappe.core.doctype.navbar_settings.navbar_settings import sync_standard_items from frappe.core.doctype.scheduled_job_type.scheduled_job_type import sync_jobs -from frappe.core.doctype.system_settings.system_settings import sync_system_settings from frappe.database.schema import add_column from frappe.deferred_insert import save_to_db as flush_deferred_inserts from frappe.desk.notifications import clear_notifications @@ -169,9 +168,6 @@ class SiteMigration: print("Updating installed applications...") frappe.get_single("Installed Applications").update_versions() - print("Syncing System Settings") - sync_system_settings() - print("Executing `after_migrate` hooks...") for app in frappe.get_installed_apps(): for fn in frappe.get_hooks("after_migrate", app_name=app): diff --git a/frappe/patches.txt b/frappe/patches.txt index afb83ffeea..3f8e8367ae 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -244,3 +244,4 @@ frappe.desk.doctype.workspace.patches.update_app frappe.patches.v16_0.move_role_desk_settings_to_user frappe.printing.doctype.print_format.patches.sets_wkhtmltopdf_as_default_for_pdf_generator_field frappe.patches.v14_0.fix_user_settings_collation +execute:frappe.core.doctype.system_settings.system_settings.sync_system_settings