diff --git a/frappe/core/doctype/data_import/exporter.py b/frappe/core/doctype/data_import/exporter.py index 1066b8bed9..2c9bfd95fd 100644 --- a/frappe/core/doctype/data_import/exporter.py +++ b/frappe/core/doctype/data_import/exporter.py @@ -205,9 +205,11 @@ class Exporter: for df in self.fields: is_parent = not df.is_child_table_field if is_parent: - label = _(df.label) + label = _(df.label or df.fieldname) else: - label = f"{_(df.label)} ({_(df.child_table_df.label)})" + label = ( + f"{_(df.label or df.fieldname)} ({_(df.child_table_df.label or df.child_table_df.fieldname)})" + ) if label in header: # this label is already in the header, diff --git a/frappe/patches.txt b/frappe/patches.txt index 325da2f8b2..fa9d884386 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -223,3 +223,4 @@ frappe.patches.v14_0.disable_email_accounts_with_oauth execute:frappe.delete_doc("Page", "translation-tool", force=1) frappe.patches.v15_0.remove_prepared_report_settings_from_system_settings frappe.patches.v14_0.remove_manage_subscriptions_from_navbar +frappe.patches.v15_0.remove_background_jobs_from_dropdown \ No newline at end of file diff --git a/frappe/patches/v15_0/remove_background_jobs_from_dropdown.py b/frappe/patches/v15_0/remove_background_jobs_from_dropdown.py new file mode 100644 index 0000000000..b070e0805c --- /dev/null +++ b/frappe/patches/v15_0/remove_background_jobs_from_dropdown.py @@ -0,0 +1,9 @@ +import frappe + + +def execute(): + item = frappe.db.exists("Navbar Item", {"item_label": "Background Jobs"}) + if not item: + return + + frappe.delete_doc("Navbar Item", item) diff --git a/frappe/public/js/frappe/model/perm.js b/frappe/public/js/frappe/model/perm.js index 8ed7d6b028..948a31b1fc 100644 --- a/frappe/public/js/frappe/model/perm.js +++ b/frappe/public/js/frappe/model/perm.js @@ -34,9 +34,7 @@ $.extend(frappe.perm, { doctype_perm: {}, - has_perm: (doctype, permlevel, ptype, doc) => { - if (!permlevel) permlevel = 0; - + has_perm: (doctype, permlevel = 0, ptype = "read", doc) => { const perms = frappe.perm.get_perm(doctype, doc); return !!perms?.[permlevel]?.[ptype]; }, diff --git a/frappe/public/js/frappe/ui/toolbar/toolbar.js b/frappe/public/js/frappe/ui/toolbar/toolbar.js index 419a22d764..bef0c19b4e 100644 --- a/frappe/public/js/frappe/ui/toolbar/toolbar.js +++ b/frappe/public/js/frappe/ui/toolbar/toolbar.js @@ -13,6 +13,9 @@ frappe.ui.toolbar.Toolbar = class { }) ); $(".dropdown-toggle").dropdown(); + $("#toolbar-user a[href]").click(function () { + $(this).closest(".dropdown-menu").prev().dropdown("toggle"); + }); this.setup_awesomebar(); this.setup_notifications(); @@ -133,6 +136,12 @@ frappe.ui.toolbar.Toolbar = class { frappe.utils.generate_tracking_url, __("Generate Tracking URL") ); + + if (frappe.perm.has_perm("RQ Job")) { + frappe.search.utils.make_function_searchable(function () { + frappe.set_route("List", "RQ Job"); + }, __("Background Jobs")); + } } }