Merge branch 'hotfix'

This commit is contained in:
mbauskar 2017-09-01 10:18:35 +05:30
commit 9e9c685a2d
6 changed files with 24 additions and 8 deletions

View file

@ -14,7 +14,7 @@ import os, sys, importlib, inspect, json
from .exceptions import *
from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template
__version__ = '8.9.1'
__version__ = '8.9.2'
__title__ = "Frappe Framework"
local = Local()
@ -642,7 +642,7 @@ def get_meta_module(doctype):
return frappe.modules.load_doctype_module(doctype)
def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reload=False,
ignore_permissions=False, flags=None):
ignore_permissions=False, flags=None, ignore_on_trash=False, ignore_missing=True):
"""Delete a document. Calls `frappe.model.delete_doc.delete_doc`.
:param doctype: DocType of document to be delete.
@ -653,7 +653,7 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
:param ignore_permissions: Ignore user permissions."""
import frappe.model.delete_doc
frappe.model.delete_doc.delete_doc(doctype, name, force, ignore_doctypes, for_reload,
ignore_permissions, flags)
ignore_permissions, flags, ignore_on_trash, ignore_missing)
def delete_doc_if_exists(doctype, name, force=0):
"""Delete document if exists."""

View file

@ -95,7 +95,7 @@ def handle():
if frappe.local.request.method=="DELETE":
# Not checking permissions here because it's checked in delete_doc
frappe.delete_doc(doctype, name)
frappe.delete_doc(doctype, name, ignore_missing=False)
frappe.local.response.http_status_code = 202
frappe.local.response.message = "ok"
frappe.db.commit()

View file

@ -208,7 +208,7 @@ def delete(doctype, name):
:param doctype: DocType of the document to be deleted
:param name: name of the document to be deleted'''
frappe.delete_doc(doctype, name)
frappe.delete_doc(doctype, name, ignore_missing=False)
@frappe.whitelist()
def set_default(key, value, parent=None):

View file

@ -246,7 +246,12 @@ class EmailAccount(Document):
else:
email_sync_rule = self.build_email_sync_rule()
email_server = self.get_incoming_server(in_receive=True, email_sync_rule=email_sync_rule)
email_server = None
try:
email_server = self.get_incoming_server(in_receive=True, email_sync_rule=email_sync_rule)
except Exception:
frappe.log_error(title=_("Error while connecting to email account {0}").format(self.name))
if not email_server:
return

View file

@ -15,7 +15,7 @@ from frappe.utils.global_search import delete_for_document
from six import string_types
def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reload=False,
ignore_permissions=False, flags=None, ignore_on_trash=False):
ignore_permissions=False, flags=None, ignore_on_trash=False, ignore_missing=True):
"""
Deletes a doc(dt, dn) and validates if it is not submitted and not linked in a live record
"""
@ -34,7 +34,10 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
# already deleted..?
if not frappe.db.exists(doctype, name):
return
if not ignore_missing:
raise frappe.DoesNotExistError
else:
return False
# delete passwords
delete_all_passwords_for(doctype, name)

View file

@ -13,3 +13,11 @@ class TestClient(unittest.TestCase):
frappe.set_value('ToDo', todo.name, {'description': 'test 2'})
self.assertEquals(frappe.get_value('ToDo', todo.name, 'description'), 'test 2')
def test_delete(self):
from frappe.client import delete
todo = frappe.get_doc(dict(doctype='ToDo', description='description')).insert()
delete("ToDo", todo.name)
self.assertFalse(frappe.db.exists("ToDo", todo.name))
self.assertRaises(frappe.DoesNotExistError, delete, "ToDo", todo.name)