[updates][data-import] call validate after importing child tables data
This commit is contained in:
parent
bc09ead75e
commit
3bfb3b5b8a
1 changed files with 19 additions and 0 deletions
|
|
@ -202,6 +202,7 @@ def upload():
|
|||
|
||||
ret = []
|
||||
error = False
|
||||
parent_list = []
|
||||
for i, row in enumerate(data):
|
||||
# bypass empty rows
|
||||
if not row: continue
|
||||
|
|
@ -223,6 +224,7 @@ def upload():
|
|||
doc.save()
|
||||
ret.append('Inserted row for %s at #%s' % (getlink(parenttype,
|
||||
doc.parent), unicode(doc.idx)))
|
||||
parent_list.append(doc.parent)
|
||||
else:
|
||||
ret.append(import_doc(d, doctype, overwrite, row_idx, params.get("_submit")))
|
||||
except Exception, e:
|
||||
|
|
@ -231,6 +233,8 @@ def upload():
|
|||
len(row)>1 and row[1] or "", cstr(e)))
|
||||
webnotes.errprint(webnotes.getTraceback())
|
||||
|
||||
ret, error = validate_parent(parent_list, parenttype, ret, error)
|
||||
|
||||
if error:
|
||||
webnotes.conn.rollback()
|
||||
else:
|
||||
|
|
@ -240,6 +244,21 @@ def upload():
|
|||
|
||||
return {"messages": ret, "error": error}
|
||||
|
||||
def validate_parent(parent_list, parenttype, ret, error):
|
||||
if parent_list:
|
||||
parent_list = list(set(parent_list))
|
||||
for p in parent_list:
|
||||
try:
|
||||
obj = webnotes.bean(parenttype, p)
|
||||
obj.run_method("validate")
|
||||
obj.run_method("on_update")
|
||||
except Exception, e:
|
||||
error = True
|
||||
ret.append('Validation Error for %s %s: %s' % (parenttype, p, cstr(e)))
|
||||
webnotes.errprint(webnotes.getTraceback())
|
||||
|
||||
return ret, error
|
||||
|
||||
def get_parent_field(doctype, parenttype):
|
||||
parentfield = None
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue