Merge branch 'master' of https://github.com/webnotes/wnframework
This commit is contained in:
commit
e02de9e2c5
2 changed files with 63 additions and 46 deletions
|
|
@ -49,9 +49,20 @@ wn.pages['data-import-tool'].onload = function(wrapper) {
|
|||
method:'core.page.data_import_tool.data_import_tool.get_doctypes',
|
||||
callback: function(r) {
|
||||
$select.add_options(['Select...'].concat(r.message));
|
||||
wrapper.doctypes = r.message;
|
||||
wrapper.set_route_options();
|
||||
}
|
||||
});
|
||||
|
||||
wrapper.set_route_options = function() {
|
||||
if(wn.route_options
|
||||
&& wn.route_options.doctype
|
||||
&& in_list(wrapper.doctypes, wn.route_options.doctype)) {
|
||||
$select.val(wn.route_options.doctype).change();
|
||||
wn.route_options = null;
|
||||
}
|
||||
}
|
||||
|
||||
// load options
|
||||
$select.change(function() {
|
||||
var val = $(this).val()
|
||||
|
|
@ -93,53 +104,53 @@ wn.pages['data-import-tool'].onload = function(wrapper) {
|
|||
}
|
||||
});
|
||||
|
||||
write_messages = function(r) {
|
||||
$(wrapper).find(".dit-progress-area").toggle(false);
|
||||
$("#dit-output").empty();
|
||||
|
||||
$.each(r.messages, function(i, v) {
|
||||
var $p = $('<p>').html(v).appendTo('#dit-output');
|
||||
if(v.substr(0,5)=='Error') {
|
||||
$p.css('color', 'red');
|
||||
} else if(v.substr(0,8)=='Inserted') {
|
||||
$p.css('color', 'green');
|
||||
} else if(v.substr(0,7)=='Updated') {
|
||||
$p.css('color', 'green');
|
||||
} else if(v.substr(0,5)=='Valid') {
|
||||
$p.css('color', '#777');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// upload
|
||||
wn.upload.make({
|
||||
parent: $('#dit-upload-area'),
|
||||
args: {
|
||||
method: 'core.page.data_import_tool.data_import_tool.upload'
|
||||
},
|
||||
callback: function(r) {
|
||||
$(wrapper).find(".dit-progress-area").toggle(false);
|
||||
|
||||
if(!r.messages) r.messages = [];
|
||||
|
||||
// clear output area
|
||||
$("#dit-output").empty();
|
||||
|
||||
// replace links if error has occured
|
||||
if(r.exc || r.error) {
|
||||
r.messages = $.map(r.messages, function(v) {
|
||||
var msg = v.replace("Inserted", "Valid")
|
||||
.replace("Updated", "Valid").split("<");
|
||||
if (msg.length > 1) {
|
||||
v = msg[0] + (msg[1].split(">").slice(-1)[0]);
|
||||
} else {
|
||||
v = msg[0];
|
||||
}
|
||||
return v;
|
||||
});
|
||||
|
||||
r.messages = ["<h4 style='color:red'>Import Failed!</h4>"]
|
||||
.concat(r.messages)
|
||||
} else {
|
||||
r.messages = ["<h4 style='color:green'>Import Successful!</h4>"].
|
||||
concat(r.messages)
|
||||
}
|
||||
|
||||
$.each(r.messages, function(i, v) {
|
||||
var $p = $('<p>').html(v).appendTo('#dit-output');
|
||||
if(v.substr(0,5)=='Error') {
|
||||
$p.css('color', 'red');
|
||||
} else if(v.substr(0,8)=='Inserted') {
|
||||
$p.css('color', 'green');
|
||||
} else if(v.substr(0,7)=='Updated') {
|
||||
$p.css('color', 'green');
|
||||
} else if(v.substr(0,5)=='Valid') {
|
||||
$p.css('color', '#777');
|
||||
onerror: function(r) {
|
||||
r.messages = $.map(r.message.messages, function(v) {
|
||||
var msg = v.replace("Inserted", "Valid")
|
||||
.replace("Updated", "Valid").split("<");
|
||||
if (msg.length > 1) {
|
||||
v = msg[0] + (msg[1].split(">").slice(-1)[0]);
|
||||
} else {
|
||||
v = msg[0];
|
||||
}
|
||||
return v;
|
||||
});
|
||||
|
||||
r.messages = ["<h4 style='color:red'>Import Failed!</h4>"]
|
||||
.concat(r.messages);
|
||||
|
||||
write_messages(r);
|
||||
},
|
||||
callback: function(r) {
|
||||
// replace links if error has occured
|
||||
r.messages = ["<h4 style='color:green'>Import Successful!</h4>"].
|
||||
concat(r.messages)
|
||||
|
||||
write_messages(r);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -169,4 +180,8 @@ wn.pages['data-import-tool'].onload = function(wrapper) {
|
|||
$('#dit-output').empty();
|
||||
$(wrapper).find(".dit-progress-area").toggle(true);
|
||||
});
|
||||
}
|
||||
|
||||
wn.pages['data-import-tool'].onshow = function(wrapper) {
|
||||
wrapper.set_route_options && wrapper.set_route_options();
|
||||
}
|
||||
|
|
@ -33,7 +33,11 @@ def get_template():
|
|||
parenttype = webnotes.form_dict.get('parent_doctype')
|
||||
|
||||
doctype_dl = webnotes.model.doctype.get(doctype)
|
||||
tablecolumns = [f[0] for f in webnotes.conn.sql('desc `tab%s`' % doctype)]
|
||||
|
||||
tablecolumns = filter(None,
|
||||
[doctype_dl.get_field(f[0]) for f in webnotes.conn.sql('desc `tab%s`' % doctype)])
|
||||
|
||||
tablecolumns.sort(lambda a, b: a.idx - b.idx)
|
||||
|
||||
def getinforow(docfield):
|
||||
"""make info comment"""
|
||||
|
|
@ -85,17 +89,15 @@ def get_template():
|
|||
inforow = ['Info:', '']
|
||||
columns = [key]
|
||||
|
||||
def append_row(t, mandatory):
|
||||
docfield = doctype_dl.get_field(t)
|
||||
|
||||
def append_row(docfield, mandatory):
|
||||
if docfield and ((mandatory and docfield.reqd) or not (mandatory or docfield.reqd)) \
|
||||
and (t not in ('parenttype', 'trash_reason')) and not docfield.hidden:
|
||||
fieldrow.append(t)
|
||||
and (docfield.fieldname not in ('parenttype', 'trash_reason')) and not docfield.hidden:
|
||||
fieldrow.append(docfield.fieldname)
|
||||
labelrow.append(docfield.label)
|
||||
mandatoryrow.append(docfield.reqd and 'Yes' or 'No')
|
||||
typerow.append(docfield.fieldtype)
|
||||
inforow.append(getinforow(docfield))
|
||||
columns.append(t)
|
||||
columns.append(docfield.fieldname)
|
||||
|
||||
# get all mandatory fields
|
||||
for t in tablecolumns:
|
||||
|
|
@ -213,6 +215,7 @@ def upload():
|
|||
d['doctype'] = doctype
|
||||
|
||||
try:
|
||||
webnotes.message_log = []
|
||||
check_record(d, parenttype, doctype_dl)
|
||||
if parenttype:
|
||||
# child doc
|
||||
|
|
@ -233,7 +236,6 @@ def upload():
|
|||
ret.append('Error for row (#%d) %s : %s' % (row_idx,
|
||||
len(row)>1 and row[1] or "", err_msg))
|
||||
webnotes.errprint(webnotes.getTraceback())
|
||||
webnotes.message_log = []
|
||||
|
||||
ret, error = validate_parent(parent_list, parenttype, ret, error)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue