diff --git a/frappe/hooks.py b/frappe/hooks.py
index 4895c97200..be1b0134c1 100644
--- a/frappe/hooks.py
+++ b/frappe/hooks.py
@@ -221,7 +221,8 @@ scheduler_events = {
"frappe.deferred_insert.save_to_db",
"frappe.desk.form.document_follow.send_hourly_updates",
"frappe.integrations.doctype.google_calendar.google_calendar.sync",
- "frappe.email.doctype.newsletter.newsletter.send_scheduled_email"
+ "frappe.email.doctype.newsletter.newsletter.send_scheduled_email",
+ "frappe.website.doctype.personal_data_deletion_request.personal_data_deletion_request.process_data_deletion_request"
],
"daily": [
"frappe.email.queue.set_expiry_for_email_queue",
@@ -240,8 +241,7 @@ scheduler_events = {
"frappe.automation.doctype.auto_repeat.auto_repeat.set_auto_repeat_as_completed",
"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.process_data_deletion_request"
+ "frappe.core.doctype.log_settings.log_settings.run_log_clean_up"
],
"daily_long": [
"frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily",
diff --git a/frappe/patches.txt b/frappe/patches.txt
index c889d9a4da..a666480c90 100644
--- a/frappe/patches.txt
+++ b/frappe/patches.txt
@@ -197,3 +197,4 @@ frappe.patches.v14_0.copy_mail_data #08.03.21
frappe.patches.v14_0.update_github_endpoints #08-11-2021
frappe.patches.v14_0.remove_db_aggregation
frappe.patches.v14_0.update_color_names_in_kanban_board_column
+frappe.patches.v14_0.update_auto_account_deletion_duration
diff --git a/frappe/patches/v14_0/update_auto_account_deletion_duration.py b/frappe/patches/v14_0/update_auto_account_deletion_duration.py
new file mode 100644
index 0000000000..74957066e6
--- /dev/null
+++ b/frappe/patches/v14_0/update_auto_account_deletion_duration.py
@@ -0,0 +1,5 @@
+import frappe
+
+def execute():
+ days = frappe.db.get_single_value("Website Settings", "auto_account_deletion")
+ frappe.db.set_value("Website Settings", None, "auto_account_deletion", days * 24)
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 3699cdfbbd..e2f583fd48 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
@@ -7,7 +7,7 @@ import re
import frappe
from frappe import _
from frappe.model.document import Document
-from frappe.utils import get_fullname, date_diff, get_datetime
+from frappe.utils import get_fullname, time_diff_in_hours, get_datetime
from frappe.utils.user import get_system_managers
from frappe.utils.verified_command import get_signed_params, verify_request
import json
@@ -353,8 +353,8 @@ def process_data_deletion_request():
for request in requests:
doc = frappe.get_doc("Personal Data Deletion Request", request)
- if date_diff(get_datetime(), doc.creation) >= auto_account_deletion:
- doc.add_comment("Comment", _("The User record for this request has been auto-deleted due to inactivity."))
+ if time_diff_in_hours(get_datetime(), doc.creation) >= auto_account_deletion:
+ doc.add_comment("Comment", _("The User record for this request has been auto-deleted due to inactivity by system admins."))
doc.trigger_data_deletion()
def remove_unverified_record():
diff --git a/frappe/website/doctype/personal_data_deletion_request/test_personal_data_deletion_request.py b/frappe/website/doctype/personal_data_deletion_request/test_personal_data_deletion_request.py
index 27dcfe5858..675a891130 100644
--- a/frappe/website/doctype/personal_data_deletion_request/test_personal_data_deletion_request.py
+++ b/frappe/website/doctype/personal_data_deletion_request/test_personal_data_deletion_request.py
@@ -4,10 +4,10 @@
import frappe
import unittest
from frappe.website.doctype.personal_data_deletion_request.personal_data_deletion_request import (
- remove_unverified_record,
+ remove_unverified_record, process_data_deletion_request
)
from frappe.website.doctype.personal_data_download_request.test_personal_data_download_request import (
- create_user_if_not_exists,
+ create_user_if_not_exists
)
from datetime import datetime, timedelta
@@ -58,3 +58,15 @@ class TestPersonalDataDeletionRequest(unittest.TestCase):
self.assertFalse(
frappe.db.exists("Personal Data Deletion Request", self.delete_request.name)
)
+
+ def test_process_auto_request(self):
+ frappe.db.set_value("Website Settings", None, "auto_account_deletion", "1")
+ date_time_obj = datetime.strptime(
+ self.delete_request.creation, "%Y-%m-%d %H:%M:%S.%f"
+ ) + timedelta(hours=-2)
+ self.delete_request.db_set("creation", date_time_obj)
+ self.delete_request.db_set("status", "Pending Approval")
+
+ process_data_deletion_request()
+ self.delete_request.reload()
+ self.assertEqual(self.delete_request.status, "Deleted")
diff --git a/frappe/website/doctype/website_settings/website_settings.json b/frappe/website/doctype/website_settings/website_settings.json
index 2a6b3dc1fb..3b199a4b58 100644
--- a/frappe/website/doctype/website_settings/website_settings.json
+++ b/frappe/website/doctype/website_settings/website_settings.json
@@ -404,10 +404,10 @@
"label": "Show Account Deletion Link in My Account Page"
},
{
- "default": "3",
+ "default": "72",
"fieldname": "auto_account_deletion",
"fieldtype": "Int",
- "label": "Auto Account Deletion within (Days)"
+ "label": "Auto Account Deletion within (Hours)"
},
{
"fieldname": "footer_powered",
@@ -421,7 +421,7 @@
"issingle": 1,
"links": [],
"max_attachments": 10,
- "modified": "2022-02-28 23:05:42.493192",
+ "modified": "2022-02-24 15:37:22.360138",
"modified_by": "Administrator",
"module": "Website",
"name": "Website Settings",
@@ -446,4 +446,4 @@
"sort_order": "ASC",
"states": [],
"track_changes": 1
-}
\ No newline at end of file
+}
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 1b9e9ad79b..731fe29cef 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
@@ -5,7 +5,7 @@ frappe.ready(function() {
callback: (data) => {
if (data.message) {
const intro_wrapper = $('#introduction .ql-editor.read-mode');
- const sla_description = __("Note: Your request for account deletion will be fulfilled within {0} days.", [data.message]);
+ const sla_description = __("Note: Your request for account deletion will be fulfilled within {0} hours.", [data.message]);
const sla_description_wrapper = `
${sla_description}`;
intro_wrapper.html(intro_wrapper.html() + sla_description_wrapper);
}