fix localname logic

This commit is contained in:
Pratik Vyas 2014-04-28 10:48:29 +05:30
parent e3ee3ebf69
commit 2d8ec58694
2 changed files with 14 additions and 3 deletions

View file

@ -13,8 +13,6 @@ def set_new_name(doc):
doc._new_name_set = True
autoname = frappe.get_meta(doc.doctype).autoname
doc.localname = doc.name # for passing back to client
doc.name = None
# amendments
if getattr(doc, "amended_from", None):
@ -24,7 +22,7 @@ def set_new_name(doc):
if tmp and not isinstance(tmp, basestring):
# autoname in a function, not a property
doc.autoname()
if doc.name and doc.localname != doc.name:
if doc.name:
return
# based on a field

View file

@ -9,6 +9,7 @@ def savedocs():
"""save / submit / update doclist"""
try:
doc = frappe.get_doc(json.loads(frappe.form_dict.doc))
set_local_name(doc)
# action
doc.docstatus = {"Save":0, "Submit": 1, "Update": 1, "Cancel": 2}[frappe.form_dict.action]
@ -50,3 +51,15 @@ def send_updated_docs(doc):
d["localname"] = doc.localname
frappe.response.docs.append(d)
def set_local_name(doc):
def _set_local_name(d):
if d.get('__islocal'):
d.localname = d.name
d.name = None
_set_local_name(doc)
if doc.get('__islocal'):
for child in doc.get_all_children():
_set_local_name(child)