diff --git a/frappe/core/doctype/log_settings/log_settings.py b/frappe/core/doctype/log_settings/log_settings.py index e9d9d1f1d7..6d59cdeb29 100644 --- a/frappe/core/doctype/log_settings/log_settings.py +++ b/frappe/core/doctype/log_settings/log_settings.py @@ -30,23 +30,22 @@ def run_log_clean_up(): doc = frappe.get_doc("Log Settings") doc.clear_logs() -def show_error_log_reminder(): - users_to_notify = get_users_to_notify() +@frappe.whitelist() +def has_unseen_error_log(user): - if frappe.db.count("Error Log", filters={'seen': 0}) > 0: - for user in users_to_notify: - frappe.publish_realtime('msgprint', { - "message": _("You have unseen {0}").format(' Error Log '), - "alert":1, - "indicator" :"red" - }, user=user) + def _get_response(show_alert=True): + return { + 'show_alert': True, + 'message': _("You have unseen {0}").format(' Error Logs ') + } -def get_users_to_notify(): - from frappe.email import get_system_managers - log_settings = frappe.get_doc('Log Settings') - - if log_settings.users_to_notify: - return [u.user for u in log_settings.users_to_notify] - else: - return get_system_managers() + if frappe.db.sql_list("select name from `tabError Log` where seen = 0 limit 1"): + log_settings = frappe.get_cached_doc('Log Settings') + if log_settings.users_to_notify: + if user in [u.user for u in log_settings.users_to_notify]: + return _get_response() + else: + return _get_response(show_alert=False) + else: + return _get_response() \ No newline at end of file diff --git a/frappe/hooks.py b/frappe/hooks.py index a952b1d1d0..ff90cf0af6 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -183,8 +183,7 @@ scheduler_events = { "0/15 * * * *": [ "frappe.oauth.delete_oauth2_data", "frappe.website.doctype.web_page.web_page.check_publish_status", - "frappe.twofactor.delete_all_barcodes_for_users", - "frappe.core.doctype.log_settings.log_settings.show_error_log_reminder" + "frappe.twofactor.delete_all_barcodes_for_users" ] }, "all": [ diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 97d5239a72..99c1647455 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -139,6 +139,26 @@ frappe.Application = Class.extend({ } }); }, 300000); // check every 5 minutes + + if(frappe.user.has_role("System Manager")){ + setInterval(function() { + frappe.call({ + method: 'frappe.core.doctype.log_settings.log_settings.has_unseen_error_log', + args: { + user: frappe.session.user + }, + callback: function(r) { + console.log(r); + if(r.message.show_alert){ + frappe.show_alert({ + indicator: 'red', + message: r.message.message + }); + } + } + }); + }, 600000); // check every 10 minutes + } } this.fetch_tags();