Просмотр исходного кода

fix: removed sla and added auto deletion

version-14
Jannat Patel 3 лет назад
Родитель
Сommit
e57d2d0aa2
7 измененных файлов: 19 добавлений и 53 удалений
  1. +1
    -1
      frappe/hooks.py
  2. +0
    -8
      frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.js
  3. +1
    -22
      frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json
  4. +6
    -12
      frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py
  5. +8
    -7
      frappe/website/doctype/website_settings/website_settings.json
  6. +2
    -2
      frappe/website/doctype/website_settings/website_settings.py
  7. +1
    -1
      frappe/website/web_form/request_to_delete_data/request_to_delete_data.js

+ 1
- 1
frappe/hooks.py Просмотреть файл

@@ -241,7 +241,7 @@ scheduler_events = {
"frappe.email.doctype.unhandled_email.unhandled_email.remove_old_unhandled_emails", "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.prepared_report.prepared_report.delete_expired_prepared_reports",
"frappe.core.doctype.log_settings.log_settings.run_log_clean_up", "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": [ "daily_long": [
"frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily", "frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily",


+ 0
- 8
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);
}
});
} }
}); });

+ 1
- 22
frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json Просмотреть файл

@@ -7,9 +7,6 @@
"field_order": [ "field_order": [
"email", "email",
"status", "status",
"column_break_3",
"sla_status",
"section_break_5",
"anonymization_matrix", "anonymization_matrix",
"deletion_steps" "deletion_steps"
], ],
@@ -45,28 +42,10 @@
"fieldtype": "Table", "fieldtype": "Table",
"label": "Deletion Steps ", "label": "Deletion Steps ",
"options": "Personal Data Deletion Step" "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": [], "links": [],
"modified": "2021-12-07 10:48:06.194408",
"modified": "2021-12-15 19:34:22.280235",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Website", "module": "Website",
"name": "Personal Data Deletion Request", "name": "Personal Data Deletion Request",


+ 6
- 12
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) frappe.rename_doc("User", email, anon, force=True, show_alert=False)
self.db_set("status", "Deleted") 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: if commit:
frappe.db.commit() frappe.db.commit()
@@ -351,20 +345,20 @@ def remove_unverified_record():
AND `creation` < (NOW() - INTERVAL '7' DAY)""" 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 return


requests = frappe.get_all("Personal Data Deletion Request", requests = frappe.get_all("Personal Data Deletion Request",
filters = { filters = {
"sla_status": "Open"
"status": "Pending Approval"
}, },
fields = ["name", "creation", "status"]) fields = ["name", "creation", "status"])


for request in requests: 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) @frappe.whitelist(allow_guest=True)
def confirm_deletion(email, name, host_name): def confirm_deletion(email, name, host_name):


+ 8
- 7
frappe/website/doctype/website_settings/website_settings.json Просмотреть файл

@@ -66,7 +66,7 @@
"route_redirects", "route_redirects",
"account_deletion_settings_section", "account_deletion_settings_section",
"show_account_deletion_link", "show_account_deletion_link",
"account_deletion_sla"
"auto_account_deletion"
], ],
"fields": [ "fields": [
{ {
@@ -395,16 +395,17 @@
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Account Deletion Settings" "label": "Account Deletion Settings"
}, },
{
"fieldname": "account_deletion_sla",
"fieldtype": "Int",
"label": "Account Deletion SLA (Days)"
},
{ {
"default": "0", "default": "0",
"fieldname": "show_account_deletion_link", "fieldname": "show_account_deletion_link",
"fieldtype": "Check", "fieldtype": "Check",
"label": "Show Account Deletion Link in My Account Page" "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", "icon": "fa fa-cog",
@@ -413,7 +414,7 @@
"issingle": 1, "issingle": 1,
"links": [], "links": [],
"max_attachments": 10, "max_attachments": 10,
"modified": "2021-12-01 10:15:17.403155",
"modified": "2021-12-15 17:28:59.255184",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Website", "module": "Website",
"name": "Website Settings", "name": "Website Settings",


+ 2
- 2
frappe/website/doctype/website_settings/website_settings.py Просмотреть файл

@@ -179,5 +179,5 @@ def get_items(parentfield):
return top_items return top_items


@frappe.whitelist(allow_guest=True) @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")

+ 1
- 1
frappe/website/web_form/request_to_delete_data/request_to_delete_data.js Просмотреть файл

@@ -1,7 +1,7 @@
frappe.ready(function() { frappe.ready(function() {
frappe.web_form.after_load = () => { frappe.web_form.after_load = () => {
frappe.call({ 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) => { callback: (data) => {
if (data.message) { if (data.message) {
const intro_wrapper = $('#introduction .ql-editor.read-mode'); const intro_wrapper = $('#introduction .ql-editor.read-mode');


Загрузка…
Отмена
Сохранить