Ver código fonte

Merge pull request #1862 from nabinhait/doctype_deletion

Custom Doctype deletion, fixed frappe/erpnext#5175
version-14
Rushabh Mehta 9 anos atrás
committed by GitHub
pai
commit
ea8bffe8d1
3 arquivos alterados com 19 adições e 12 exclusões
  1. +3
    -3
      frappe/core/doctype/doctype/doctype.json
  2. +15
    -8
      frappe/model/delete_doc.py
  3. +1
    -1
      frappe/patches.txt

+ 3
- 3
frappe/core/doctype/doctype/doctype.json Ver arquivo

@@ -1153,7 +1153,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2016-07-08 04:38:09.088871",
"modified": "2016-07-11 14:24:21.223885",
"modified_by": "Administrator",
"module": "Core",
"name": "DocType",
@@ -1164,7 +1164,7 @@
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 0,
"delete": 1,
"email": 1,
"export": 0,
"if_owner": 0,
@@ -1200,7 +1200,7 @@
"write": 1
}
],
"quick_entry": 1,
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"search_fields": "module",


+ 15
- 8
frappe/model/delete_doc.py Ver arquivo

@@ -52,6 +52,11 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
doc.run_method("before_reload")

else:
doc = frappe.get_doc(doctype, name)
update_flags(doc, flags, ignore_permissions)
check_permission_and_not_submitted(doc)
frappe.db.sql("delete from `tabCustom Field` where dt = %s", name)
frappe.db.sql("delete from `tabCustom Script` where dt = %s", name)
frappe.db.sql("delete from `tabProperty Setter` where doc_type = %s", name)
@@ -63,13 +68,7 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
doc = frappe.get_doc(doctype, name)

if not for_reload:
if ignore_permissions:
if not flags: flags = {}
flags["ignore_permissions"] = ignore_permissions

if flags:
doc.flags.update(flags)

update_flags(doc, flags, ignore_permissions)
check_permission_and_not_submitted(doc)

if not ignore_on_trash:
@@ -140,10 +139,18 @@ def delete_from_table(doctype, name, ignore_doctypes, doc):
for t in list(set(tables)):
if t not in ignore_doctypes:
frappe.db.sql("delete from `tab%s` where parenttype=%s and parent = %s" % (t, '%s', '%s'), (doctype, name))
def update_flags(doc, flags=None, ignore_permissions=False):
if ignore_permissions:
if not flags: flags = {}
flags["ignore_permissions"] = ignore_permissions

if flags:
doc.flags.update(flags)

def check_permission_and_not_submitted(doc):
# permission
if not doc.flags.ignore_permissions and frappe.session.user!="Administrator" and not doc.has_permission("delete"):
if not doc.flags.ignore_permissions and frappe.session.user!="Administrator" and (not doc.has_permission("delete") or (doc.doctype=="DocType" and not doc.custom)):
frappe.msgprint(_("User not allowed to delete {0}: {1}").format(doc.doctype, doc.name), raise_exception=True)

# check if submitted


+ 1
- 1
frappe/patches.txt Ver arquivo

@@ -1,7 +1,7 @@
execute:frappe.db.sql("""update `tabPatch Log` set patch=replace(patch, '.4_0.', '.v4_0.')""") #2014-05-12
frappe.patches.v5_0.convert_to_barracuda_and_utf8mb4
frappe.patches.v6_1.rename_file_data
execute:frappe.reload_doc('core', 'doctype', 'doctype', force=True) #2016-07-08
execute:frappe.reload_doc('core', 'doctype', 'doctype', force=True) #2016-07-11
execute:frappe.reload_doc('core', 'doctype', 'docfield', force=True) #2016-02-26
execute:frappe.reload_doc('core', 'doctype', 'docperm') #2014-06-24
execute:frappe.reload_doc('custom', 'doctype', 'custom_field') #2015-10-19


Carregando…
Cancelar
Salvar