This commit is contained in:
Akhilesh Darjee 2013-07-04 12:53:37 +05:30
commit e02de9e2c5
2 changed files with 63 additions and 46 deletions

View file

@ -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();
}

View file

@ -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)