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,
}