refactor: gracefully fail while clearing demo data
This commit is contained in:
parent
940b1d9e67
commit
e4b863af05
@ -6,6 +6,7 @@ import os
|
|||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
|
from frappe import _
|
||||||
from frappe.utils import add_days, getdate
|
from frappe.utils import add_days, getdate
|
||||||
|
|
||||||
import erpnext
|
import erpnext
|
||||||
@ -33,12 +34,20 @@ def setup_demo_data():
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def clear_demo_data():
|
def clear_demo_data():
|
||||||
frappe.only_for("System Manager")
|
frappe.only_for("System Manager")
|
||||||
company = frappe.db.get_single_value("Global Defaults", "demo_company")
|
try:
|
||||||
create_transaction_deletion_record(company)
|
company = frappe.db.get_single_value("Global Defaults", "demo_company")
|
||||||
clear_masters()
|
create_transaction_deletion_record(company)
|
||||||
delete_company(company)
|
clear_masters()
|
||||||
default_company = frappe.db.get_single_value("Global Defaults", "default_company")
|
delete_company(company)
|
||||||
frappe.db.set_default("company", default_company)
|
default_company = frappe.db.get_single_value("Global Defaults", "default_company")
|
||||||
|
frappe.db.set_default("company", default_company)
|
||||||
|
except Exception:
|
||||||
|
frappe.db.rollback()
|
||||||
|
frappe.log_error("Failed to erase demo data")
|
||||||
|
frappe.throw(
|
||||||
|
_("Failed to erase demo data, please delete the demo company manually."),
|
||||||
|
title=_("Could Not Delete Demo Data"),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def create_demo_company():
|
def create_demo_company():
|
||||||
@ -154,10 +163,10 @@ def clear_masters():
|
|||||||
clear_demo_record(item)
|
clear_demo_record(item)
|
||||||
|
|
||||||
|
|
||||||
def clear_demo_record(doctype):
|
def clear_demo_record(document):
|
||||||
doc_type = doctype.get("doctype")
|
doc_type = document.get("doctype")
|
||||||
del doctype["doctype"]
|
del document["doctype"]
|
||||||
doc = frappe.get_doc(doc_type, doctype)
|
doc = frappe.get_doc(doc_type, document)
|
||||||
frappe.delete_doc(doc.doctype, doc.name, ignore_permissions=True)
|
frappe.delete_doc(doc.doctype, doc.name, ignore_permissions=True)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user