From e57d2d0aa28ca41d48b703ec7e024f0f147f0168 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Wed, 15 Dec 2021 19:36:36 +0530 Subject: [PATCH] fix: removed sla and added auto deletion --- frappe/hooks.py | 2 +- .../personal_data_deletion_request.js | 8 ------- .../personal_data_deletion_request.json | 23 +------------------ .../personal_data_deletion_request.py | 18 +++++---------- .../website_settings/website_settings.json | 15 ++++++------ .../website_settings/website_settings.py | 4 ++-- .../request_to_delete_data.js | 2 +- 7 files changed, 19 insertions(+), 53 deletions(-) diff --git a/frappe/hooks.py b/frappe/hooks.py index c204b01356..fe175610ed 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -241,7 +241,7 @@ scheduler_events = { "frappe.email.doctype.unhandled_email.unhandled_email.remove_old_unhandled_emails", "frappe.core.doctype.prepared_report.prepared_report.delete_expired_prepared_reports", "frappe.core.doctype.log_settings.log_settings.run_log_clean_up", - "frappe.website.doctype.personal_data_deletion_request.personal_data_deletion_request.update_sla" + "frappe.website.doctype.personal_data_deletion_request.personal_data_deletion_request.auto_delete" ], "daily_long": [ "frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily", diff --git a/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.js b/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.js index a6cb0b234f..1eb2e02f49 100644 --- a/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.js +++ b/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.js @@ -18,13 +18,5 @@ frappe.ui.form.on("Personal Data Deletion Request", { }); }); } - }, - - before_load: function(frm) { - frappe.db.get_single_value("Website Settings", "account_deletion_sla").then((data) => { - if (data < 1) { - frm.set_df_property("sla_status", "hidden", 1); - } - }); } }); diff --git a/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json b/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json index dd4ae54a90..94e1ef2593 100644 --- a/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json +++ b/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -7,9 +7,6 @@ "field_order": [ "email", "status", - "column_break_3", - "sla_status", - "section_break_5", "anonymization_matrix", "deletion_steps" ], @@ -45,28 +42,10 @@ "fieldtype": "Table", "label": "Deletion Steps ", "options": "Personal Data Deletion Step" - }, - { - "default": "Open", - "fieldname": "sla_status", - "fieldtype": "Select", - "in_list_view": 1, - "in_standard_filter": 1, - "label": "SLA Status", - "options": "Open\nFulfilled\nFailed", - "read_only": 1 - }, - { - "fieldname": "column_break_3", - "fieldtype": "Column Break" - }, - { - "fieldname": "section_break_5", - "fieldtype": "Section Break" } ], "links": [], - "modified": "2021-12-07 10:48:06.194408", + "modified": "2021-12-15 19:34:22.280235", "modified_by": "Administrator", "module": "Website", "name": "Personal Data Deletion Request", diff --git a/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py b/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py index 9f291a8687..0b53d81d33 100644 --- a/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py +++ b/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py @@ -280,12 +280,6 @@ class PersonalDataDeletionRequest(Document): frappe.rename_doc("User", email, anon, force=True, show_alert=False) self.db_set("status", "Deleted") - account_deletion_sla = frappe.db.get_single_value("Website Settings", "account_deletion_sla") - if account_deletion_sla > 0 and self.sla_status == "Open": - if date_diff(get_datetime(), self.creation) > account_deletion_sla: - self.db_set("sla_status", "Failed") - elif date_diff(get_datetime(), self.creation) <= account_deletion_sla: - self.db_set("sla_status", "Fulfilled") if commit: frappe.db.commit() @@ -351,20 +345,20 @@ def remove_unverified_record(): AND `creation` < (NOW() - INTERVAL '7' DAY)""" ) -def update_sla(): - account_deletion_sla = frappe.db.get_single_value("Website Settings", "account_deletion_sla") - if account_deletion_sla < 1: +def auto_delete(): + auto_account_deletion = frappe.db.get_single_value("Website Settings", "auto_account_deletion") + if auto_account_deletion < 1: return requests = frappe.get_all("Personal Data Deletion Request", filters = { - "sla_status": "Open" + "status": "Pending Approval" }, fields = ["name", "creation", "status"]) for request in requests: - if date_diff(get_datetime(), request.creation) > account_deletion_sla and request.status != "Deleted": - frappe.db.set_value("Personal Data Deletion Request", request.name, "sla_status", "Failed") + if date_diff(get_datetime(), request.creation) >= auto_account_deletion: + self.trigger_data_deletion() @frappe.whitelist(allow_guest=True) def confirm_deletion(email, name, host_name): diff --git a/frappe/website/doctype/website_settings/website_settings.json b/frappe/website/doctype/website_settings/website_settings.json index f39147d555..3f73892f90 100644 --- a/frappe/website/doctype/website_settings/website_settings.json +++ b/frappe/website/doctype/website_settings/website_settings.json @@ -66,7 +66,7 @@ "route_redirects", "account_deletion_settings_section", "show_account_deletion_link", - "account_deletion_sla" + "auto_account_deletion" ], "fields": [ { @@ -395,16 +395,17 @@ "fieldtype": "Section Break", "label": "Account Deletion Settings" }, - { - "fieldname": "account_deletion_sla", - "fieldtype": "Int", - "label": "Account Deletion SLA (Days)" - }, { "default": "0", "fieldname": "show_account_deletion_link", "fieldtype": "Check", "label": "Show Account Deletion Link in My Account Page" + }, + { + "default": "3", + "fieldname": "auto_account_deletion", + "fieldtype": "Int", + "label": "Auto Account Deletion within (Days)" } ], "icon": "fa fa-cog", @@ -413,7 +414,7 @@ "issingle": 1, "links": [], "max_attachments": 10, - "modified": "2021-12-01 10:15:17.403155", + "modified": "2021-12-15 17:28:59.255184", "modified_by": "Administrator", "module": "Website", "name": "Website Settings", diff --git a/frappe/website/doctype/website_settings/website_settings.py b/frappe/website/doctype/website_settings/website_settings.py index 02eed9cc6d..2dec14ab7a 100644 --- a/frappe/website/doctype/website_settings/website_settings.py +++ b/frappe/website/doctype/website_settings/website_settings.py @@ -179,5 +179,5 @@ def get_items(parentfield): return top_items @frappe.whitelist(allow_guest=True) -def get_account_deletion_sla(): - return frappe.db.get_single_value("Website Settings", "account_deletion_sla") +def get_auto_account_deletion(): + return frappe.db.get_single_value("Website Settings", "auto_account_deletion") diff --git a/frappe/website/web_form/request_to_delete_data/request_to_delete_data.js b/frappe/website/web_form/request_to_delete_data/request_to_delete_data.js index fb92bf6bca..1b9e9ad79b 100644 --- a/frappe/website/web_form/request_to_delete_data/request_to_delete_data.js +++ b/frappe/website/web_form/request_to_delete_data/request_to_delete_data.js @@ -1,7 +1,7 @@ frappe.ready(function() { frappe.web_form.after_load = () => { frappe.call({ - method: "frappe.website.doctype.website_settings.website_settings.get_account_deletion_sla", + method: "frappe.website.doctype.website_settings.website_settings.get_auto_account_deletion", callback: (data) => { if (data.message) { const intro_wrapper = $('#introduction .ql-editor.read-mode');