refactor: tasks section and UI niceties

(cherry picked from commit d0dc2c6e77)
This commit is contained in:
ruthra kumar
2024-02-03 14:29:04 +05:30
committed by Mergify
parent 7280a76f73
commit 52d22d8b55
2 changed files with 71 additions and 1 deletions

View File

@@ -9,6 +9,12 @@
"company",
"column_break_txbg",
"status",
"tasks_section",
"delete_bin_data",
"delete_leads_and_addresses",
"reset_company_default_values",
"clear_notifications",
"delete_transactions",
"section_break_tbej",
"doctypes",
"doctypes_to_be_ignored",
@@ -59,12 +65,57 @@
{
"fieldname": "section_break_tbej",
"fieldtype": "Section Break"
},
{
"fieldname": "tasks_section",
"fieldtype": "Section Break",
"label": "Tasks"
},
{
"default": "0",
"fieldname": "delete_bin_data",
"fieldtype": "Check",
"label": "Delete Bins",
"no_copy": 1,
"read_only": 1
},
{
"default": "0",
"fieldname": "delete_leads_and_addresses",
"fieldtype": "Check",
"label": "Delete Leads and Addresses",
"no_copy": 1,
"read_only": 1
},
{
"default": "0",
"fieldname": "clear_notifications",
"fieldtype": "Check",
"label": "Clear Notifications",
"no_copy": 1,
"read_only": 1
},
{
"default": "0",
"fieldname": "reset_company_default_values",
"fieldtype": "Check",
"label": "Reset Company Default Values",
"no_copy": 1,
"read_only": 1
},
{
"default": "0",
"fieldname": "delete_transactions",
"fieldtype": "Check",
"label": "Delete Transactions",
"no_copy": 1,
"read_only": 1
}
],
"index_web_pages_for_search": 1,
"is_submittable": 1,
"links": [],
"modified": "2024-02-03 12:42:21.628177",
"modified": "2024-02-03 14:40:40.207482",
"modified_by": "Administrator",
"module": "Setup",
"name": "Transaction Deletion Record",

View File

@@ -25,9 +25,14 @@ class TransactionDeletionRecord(Document):
)
amended_from: DF.Link | None
clear_notifications: DF.Check
company: DF.Link
delete_bin_data: DF.Check
delete_leads_and_addresses: DF.Check
delete_transactions: DF.Check
doctypes: DF.Table[TransactionDeletionRecordItem]
doctypes_to_be_ignored: DF.Table[TransactionDeletionRecordItem]
reset_company_default_values: DF.Check
status: DF.Literal["Queued", "Running", "Failed", "Completed", "Cancelled"]
# end: auto-generated types
@@ -55,8 +60,16 @@ class TransactionDeletionRecord(Document):
if not self.doctypes_to_be_ignored:
self.populate_doctypes_to_be_ignored_table()
def reset_task_flags(self):
self.clear_notifications = 0
self.delete_bin_data = 0
self.delete_leads_and_addresses = 0
self.delete_transactions = 0
self.reset_company_default_values = 0
def before_save(self):
self.status = ""
self.reset_task_flags()
def on_submit(self):
self.db_set("status", "Queued")
@@ -64,11 +77,13 @@ class TransactionDeletionRecord(Document):
def on_cancel(self):
self.db_set("status", "Cancelled")
@frappe.whitelist()
def start_deletion_process(self):
self.delete_bins()
self.delete_lead_addresses()
self.reset_company_values()
clear_notifications()
self.db_set("clear_notifications", 1)
self.delete_company_transactions()
def populate_doctypes_to_be_ignored_table(self):
@@ -82,6 +97,7 @@ class TransactionDeletionRecord(Document):
(select name from tabWarehouse where company=%s)""",
self.company,
)
self.db_set("delete_bin_data", 1)
def delete_lead_addresses(self):
"""Delete addresses to which leads are linked"""
@@ -120,12 +136,14 @@ class TransactionDeletionRecord(Document):
leads=",".join(leads)
)
)
self.db_set("delete_leads_and_addresses", 1)
def reset_company_values(self):
company_obj = frappe.get_doc("Company", self.company)
company_obj.total_monthly_sales = 0
company_obj.sales_monthly_history = None
company_obj.save()
self.db_set("reset_company_default_values", 1)
def delete_company_transactions(self):
doctypes_to_be_ignored_list = self.get_doctypes_to_be_ignored_list()
@@ -159,6 +177,7 @@ class TransactionDeletionRecord(Document):
if naming_series:
if "#" in naming_series:
self.update_naming_series(naming_series, docfield["parent"])
self.db_set("delete_transactions", 1)
def get_doctypes_to_be_ignored_list(self):
singles = frappe.get_all("DocType", filters={"issingle": 1}, pluck="name")