diff --git a/frappe/core/doctype/error_snapshot/__init__.py b/frappe/core/doctype/error_snapshot/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/frappe/core/doctype/error_snapshot/error_object.html b/frappe/core/doctype/error_snapshot/error_object.html deleted file mode 100644 index 450bfacfc6..0000000000 --- a/frappe/core/doctype/error_snapshot/error_object.html +++ /dev/null @@ -1,12 +0,0 @@ -{% if (Object.prototype.toString.call(x) === "[object Object]") { %} - - {% for (var key in x) { %} - - - - - {% } %} -
{{ key }}{{ x[key] }}
-{% } else { %} - {{ x }} -{% } %} diff --git a/frappe/core/doctype/error_snapshot/error_snapshot.html b/frappe/core/doctype/error_snapshot/error_snapshot.html deleted file mode 100644 index 6f449e0fe9..0000000000 --- a/frappe/core/doctype/error_snapshot/error_snapshot.html +++ /dev/null @@ -1,77 +0,0 @@ - -{% function id(){ return id._old_id++; }; id._old_id = 0; %} -

{{ __("Error Report") }}

-

{{ doc.pyver }}

-
-
{{ __("Timestamp") }}:
-
{{ doc.timestamp }}
-
{{ __("Relapsed") }}
-
{{ doc.relapses }}
-
- -

{{ __("Exception") }}

-{{ frappe.render_template("error_object", {x: JSON.parse(doc.exception)}) }} - -

{{ __("Locals") }}

-{{ frappe.render_template("error_object", {x: JSON.parse(doc.locals)} )}} - -

{{ __("Traceback") }}

-{% var frames = JSON.parse(doc.frames); %} -{% for (var i in frames) { %} - {% var frameid = id(), frame = frames[i] %} -

{{ frame.file }}: {{ frame.lnum }} -

-
-
- {% for (var index in frame.lines) { %} - {% var line = frame.lines[index] %} -
- {{ index }} - {{ line }} -
- {% } %} -
-
- - {{ __("Locals") }} - -
-
-
-
-
-

{{ __("Locals") }}

- {{ frappe.render_template("error_object", {x: frame.dump }) }} -
-
-

-{% } %} diff --git a/frappe/core/doctype/error_snapshot/error_snapshot.js b/frappe/core/doctype/error_snapshot/error_snapshot.js deleted file mode 100644 index f8a7e3ded5..0000000000 --- a/frappe/core/doctype/error_snapshot/error_snapshot.js +++ /dev/null @@ -1,20 +0,0 @@ -frappe.ui.form.on("Error Snapshot", "load", function (frm) { - frm.set_read_only(true); -}); - -frappe.ui.form.on("Error Snapshot", "refresh", function (frm) { - frm.set_df_property( - "view", - "options", - frappe.render_template("error_snapshot", { doc: frm.doc }) - ); - - if (frm.doc.relapses) { - frm.add_custom_button(__("Show Relapses"), function () { - frappe.route_options = { - parent_error_snapshot: frm.doc.name, - }; - frappe.set_route("List", "Error Snapshot"); - }); - } -}); diff --git a/frappe/core/doctype/error_snapshot/error_snapshot.json b/frappe/core/doctype/error_snapshot/error_snapshot.json deleted file mode 100644 index b92db8f99a..0000000000 --- a/frappe/core/doctype/error_snapshot/error_snapshot.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "actions": [], - "creation": "2015-11-28 00:57:39.766888", - "doctype": "DocType", - "document_type": "System", - "engine": "InnoDB", - "field_order": [ - "view", - "seen", - "evalue", - "timestamp", - "relapses", - "etype", - "traceback", - "parent_error_snapshot", - "pyver", - "exception", - "locals", - "frames" - ], - "fields": [ - { - "fieldname": "view", - "fieldtype": "HTML", - "label": "Snapshot View" - }, - { - "default": "0", - "fieldname": "seen", - "fieldtype": "Check", - "hidden": 1, - "in_filter": 1, - "label": "Seen" - }, - { - "fieldname": "evalue", - "fieldtype": "Code", - "hidden": 1, - "in_list_view": 1, - "label": "Friendly Title", - "read_only": 1 - }, - { - "fieldname": "timestamp", - "fieldtype": "Datetime", - "hidden": 1, - "label": "Timestamp", - "read_only": 1 - }, - { - "default": "1", - "fieldname": "relapses", - "fieldtype": "Int", - "hidden": 1, - "in_list_view": 1, - "label": "Relapses", - "read_only": 1 - }, - { - "fieldname": "etype", - "fieldtype": "Data", - "hidden": 1, - "label": "Exception Type", - "read_only": 1 - }, - { - "fieldname": "traceback", - "fieldtype": "Code", - "hidden": 1, - "label": "Traceback", - "read_only": 1 - }, - { - "fieldname": "parent_error_snapshot", - "fieldtype": "Data", - "hidden": 1, - "label": "Parent Error Snapshot" - }, - { - "fieldname": "pyver", - "fieldtype": "Code", - "hidden": 1, - "label": "Pyver", - "read_only": 1 - }, - { - "fieldname": "exception", - "fieldtype": "Code", - "hidden": 1, - "label": "Exception" - }, - { - "fieldname": "locals", - "fieldtype": "Code", - "hidden": 1, - "label": "Locals" - }, - { - "fieldname": "frames", - "fieldtype": "Code", - "hidden": 1, - "label": "Frames" - } - ], - "in_create": 1, - "links": [], - "modified": "2022-08-03 12:20:53.504160", - "modified_by": "Administrator", - "module": "Core", - "name": "Error Snapshot", - "owner": "Administrator", - "permissions": [ - { - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "print": 1, - "read": 1, - "report": 1, - "role": "Administrator", - "share": 1, - "write": 1 - } - ], - "sort_field": "timestamp", - "sort_order": "DESC", - "states": [], - "title_field": "evalue" -} \ No newline at end of file diff --git a/frappe/core/doctype/error_snapshot/error_snapshot.py b/frappe/core/doctype/error_snapshot/error_snapshot.py deleted file mode 100644 index acc49c78cd..0000000000 --- a/frappe/core/doctype/error_snapshot/error_snapshot.py +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors -# License: MIT. See LICENSE - -import frappe -from frappe.model.document import Document -from frappe.query_builder import Interval -from frappe.query_builder.functions import Now - - -class ErrorSnapshot(Document): - no_feed_on_delete = True - - def onload(self): - if not self.parent_error_snapshot: - self.db_set("seen", 1, update_modified=False) - - for relapsed in frappe.get_all("Error Snapshot", filters={"parent_error_snapshot": self.name}): - frappe.db.set_value("Error Snapshot", relapsed.name, "seen", 1, update_modified=False) - - frappe.local.flags.commit = True - - def validate(self): - parent = frappe.get_all( - "Error Snapshot", - filters={"evalue": self.evalue, "parent_error_snapshot": ""}, - fields=["name", "relapses", "seen"], - limit_page_length=1, - ) - - if parent: - parent = parent[0] - self.update({"parent_error_snapshot": parent["name"]}) - frappe.db.set_value("Error Snapshot", parent["name"], "relapses", parent["relapses"] + 1) - if parent["seen"]: - frappe.db.set_value("Error Snapshot", parent["name"], "seen", 0) - - @staticmethod - def clear_old_logs(days=30): - table = frappe.qb.DocType("Error Snapshot") - frappe.db.delete(table, filters=(table.modified < (Now() - Interval(days=days)))) diff --git a/frappe/core/doctype/error_snapshot/error_snapshot_list.js b/frappe/core/doctype/error_snapshot/error_snapshot_list.js deleted file mode 100644 index b331788852..0000000000 --- a/frappe/core/doctype/error_snapshot/error_snapshot_list.js +++ /dev/null @@ -1,19 +0,0 @@ -frappe.listview_settings["Error Snapshot"] = { - add_fields: ["parent_error_snapshot", "relapses", "seen"], - filters: [ - ["parent_error_snapshot", "=", null], - ["seen", "=", false], - ], - get_indicator: function (doc) { - if (doc.parent_error_snapshot && doc.parent_error_snapshot.length) { - return [__("Relapsed"), !doc.seen ? "orange" : "blue", "parent_error_snapshot,!=,"]; - } else { - return [__("First Level"), !doc.seen ? "red" : "green", "parent_error_snapshot,=,"]; - } - }, - onload: function (listview) { - frappe.require("logtypes.bundle.js", () => { - frappe.utils.logtypes.show_log_retention_message(cur_list.doctype); - }); - }, -}; diff --git a/frappe/core/doctype/error_snapshot/test_error_snapshot.py b/frappe/core/doctype/error_snapshot/test_error_snapshot.py deleted file mode 100644 index 4779d56c7b..0000000000 --- a/frappe/core/doctype/error_snapshot/test_error_snapshot.py +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -# License: MIT. See LICENSE -from frappe.tests.utils import FrappeTestCase -from frappe.utils.logger import sanitized_dict - -# test_records = frappe.get_test_records('Error Snapshot') - - -class TestErrorSnapshot(FrappeTestCase): - def test_form_dict_sanitization(self): - self.assertNotEqual(sanitized_dict({"pwd": "SECRET", "usr": "WHAT"}).get("pwd"), "SECRET") diff --git a/frappe/core/doctype/log_settings/log_settings.py b/frappe/core/doctype/log_settings/log_settings.py index 832be49f3c..c4d311cb3d 100644 --- a/frappe/core/doctype/log_settings/log_settings.py +++ b/frappe/core/doctype/log_settings/log_settings.py @@ -14,7 +14,6 @@ DEFAULT_LOGTYPES_RETENTION = { "Error Log": 30, "Activity Log": 90, "Email Queue": 30, - "Error Snapshot": 30, "Scheduled Job Log": 90, "Route History": 90, "Submission Queue": 30, @@ -156,7 +155,6 @@ LOG_DOCTYPES = [ "Route History", "Email Queue", "Email Queue Recipient", - "Error Snapshot", "Error Log", ] diff --git a/frappe/core/doctype/log_settings/test_log_settings.py b/frappe/core/doctype/log_settings/test_log_settings.py index d7f43a181d..edee098553 100644 --- a/frappe/core/doctype/log_settings/test_log_settings.py +++ b/frappe/core/doctype/log_settings/test_log_settings.py @@ -62,7 +62,6 @@ class TestLogSettings(FrappeTestCase): "Activity Log", "Email Queue", "Route History", - "Error Snapshot", "Scheduled Job Log", ] diff --git a/frappe/core/notifications.py b/frappe/core/notifications.py index 093418e345..26e920bca9 100644 --- a/frappe/core/notifications.py +++ b/frappe/core/notifications.py @@ -11,7 +11,6 @@ def get_notification_config(): "Communication": {"status": "Open", "communication_type": "Communication"}, "ToDo": "frappe.core.notifications.get_things_todo", "Event": "frappe.core.notifications.get_todays_events", - "Error Snapshot": {"seen": 0, "parent_error_snapshot": None}, "Workflow Action": {"status": "Open"}, }, } diff --git a/frappe/core/workspace/build/build.json b/frappe/core/workspace/build/build.json index b917f88e27..12bef0ed89 100644 --- a/frappe/core/workspace/build/build.json +++ b/frappe/core/workspace/build/build.json @@ -155,74 +155,6 @@ "onboard": 0, "type": "Link" }, - { - "hidden": 0, - "is_query_report": 0, - "label": "System Logs", - "link_count": 6, - "onboard": 0, - "type": "Card Break" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Background Jobs", - "link_count": 0, - "link_to": "RQ Job", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Scheduled Jobs Logs", - "link_count": 0, - "link_to": "Scheduled Job Log", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Error Logs", - "link_count": 0, - "link_to": "Error Log", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Error Snapshot", - "link_count": 0, - "link_to": "Error Snapshot", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Communication Logs", - "link_count": 0, - "link_to": "Communication", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Activity Log", - "link_count": 0, - "link_to": "Activity Log", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, { "hidden": 0, "is_query_report": 0, @@ -331,9 +263,67 @@ "link_type": "DocType", "onboard": 0, "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "System Logs", + "link_count": 5, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Background Jobs", + "link_count": 0, + "link_to": "RQ Job", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Scheduled Jobs Logs", + "link_count": 0, + "link_to": "Scheduled Job Log", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Error Logs", + "link_count": 0, + "link_to": "Error Log", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Communication Logs", + "link_count": 0, + "link_to": "Communication", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Activity Log", + "link_count": 0, + "link_to": "Activity Log", + "link_type": "DocType", + "onboard": 0, + "type": "Link" } ], - "modified": "2023-05-24 14:47:24.395259", + "modified": "2023-06-28 10:30:17.228167", "modified_by": "Administrator", "module": "Core", "name": "Build", diff --git a/frappe/installer.py b/frappe/installer.py index 4f02e207bd..775e5b9b02 100644 --- a/frappe/installer.py +++ b/frappe/installer.py @@ -617,7 +617,6 @@ def make_site_dirs(): os.path.join("public", "files"), os.path.join("private", "backups"), os.path.join("private", "files"), - "error-snapshots", "locks", "logs", ]: diff --git a/frappe/patches.txt b/frappe/patches.txt index c26b1a74d7..ebdda9b220 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -31,7 +31,6 @@ execute:frappe.reload_doc('core', 'doctype', 'user') #2017-10-27 execute:frappe.reload_doc('core', 'doctype', 'report_column') execute:frappe.reload_doc('core', 'doctype', 'report_filter') execute:frappe.reload_doc('core', 'doctype', 'report') #2020-08-25 -execute:frappe.reload_doc('core', 'doctype', 'error_snapshot') execute:frappe.get_doc("User", "Guest").save() execute:frappe.delete_doc("DocType", "Control Panel", force=1) execute:frappe.delete_doc("DocType", "Tag") @@ -42,7 +41,6 @@ execute:frappe.db.sql("delete from `tabProperty Setter` where `property` = 'idx' execute:frappe.db.sql("delete from tabSessions where user is null") execute:frappe.delete_doc("DocType", "Backup Manager") execute:frappe.permissions.reset_perms("Web Page") -execute:frappe.permissions.reset_perms("Error Snapshot") execute:frappe.db.sql("delete from `tabWeb Page` where ifnull(template_path, '')!=''") execute:frappe.core.doctype.language.language.update_language_names() # 2017-04-12 execute:frappe.db.set_value("Print Settings", "Print Settings", "add_draft_heading", 1) @@ -227,3 +225,4 @@ frappe.patches.v15_0.remove_background_jobs_from_dropdown frappe.desk.doctype.form_tour.patches.introduce_ui_tours execute:frappe.delete_doc_if_exists("Workspace", "Customization") execute:frappe.db.set_single_value("Document Naming Settings", "default_amend_naming", "Amend Counter") +execute:frappe.delete_doc_if_exists("DocType", "Error Snapshot") diff --git a/frappe/patches/v14_0/clear_long_pending_stale_logs.py b/frappe/patches/v14_0/clear_long_pending_stale_logs.py index 53127cb197..e419b1e562 100644 --- a/frappe/patches/v14_0/clear_long_pending_stale_logs.py +++ b/frappe/patches/v14_0/clear_long_pending_stale_logs.py @@ -15,7 +15,6 @@ def execute(): "Email Queue": get_current_setting("clear_email_queue_after") or 30, # child table on email queue "Email Queue Recipient": get_current_setting("clear_email_queue_after") or 30, - "Error Snapshot": get_current_setting("clear_error_log_after") or 90, # newly added "Scheduled Job Log": 90, }