[IMP]Improve code for preview records.
bzr revid: kch@tinyerp.com-20110808062703-sv394tf2rr79na34
This commit is contained in:
@@ -1256,7 +1256,6 @@ class Import(View):
|
||||
fields = []
|
||||
word=''
|
||||
limit = 3
|
||||
|
||||
try:
|
||||
for i, row in enumerate(data):
|
||||
records.append(row)
|
||||
@@ -1280,7 +1279,7 @@ class Import(View):
|
||||
error=dict(error, preview=csvfile.file.read(200))
|
||||
return simplejson.dumps({'error':error})
|
||||
|
||||
return simplejson.dumps({'records':records})
|
||||
return simplejson.dumps({'records':records[1:],'fields':fields})
|
||||
|
||||
@openerpweb.httprequest
|
||||
def import_data(self, req, session_id, model, id, csvfile, csvsep, csvdel, csvcode, csvskip, fields=[]):
|
||||
|
||||
@@ -19,7 +19,6 @@ openerp.base.DataImport = openerp.base.Dialog.extend({
|
||||
self.stop();
|
||||
},
|
||||
"Import File" : function() {
|
||||
//$("#import_data").submit();
|
||||
self.do_import();
|
||||
}
|
||||
},
|
||||
@@ -53,47 +52,17 @@ openerp.base.DataImport = openerp.base.Dialog.extend({
|
||||
});
|
||||
},
|
||||
import_results:function(res){
|
||||
var self = this;
|
||||
var results = $.parseJSON(res);
|
||||
|
||||
$('#result, #success').empty();
|
||||
var result_node = $("#result");
|
||||
if (results['records']){
|
||||
var result = results['records'];
|
||||
if ($('#error').find('table')){
|
||||
$("#error table").remove();
|
||||
}
|
||||
if ($('#records_data').find('tr')){
|
||||
$("#records_data tr").remove();
|
||||
}
|
||||
for (i in result) {
|
||||
if (i == 0){
|
||||
$('#records_data').append('<tr class="grid-header"></tr>');
|
||||
for (m in result[i]){
|
||||
$('.grid-header').append('<th class="grid-cell">'+result[i][m]+'</th>');
|
||||
}
|
||||
}else{
|
||||
$('#records_data tr:last').after('<tr id='+i+' class="grid-row"></tr>');
|
||||
for (n in result[i]){
|
||||
$("tr[id="+i+"]").append('<td class="grid-cell">'+result[i][n]+'</td>');
|
||||
}
|
||||
}
|
||||
}
|
||||
records = {'header':results['fields'],'row':results['records']};
|
||||
result_node.append(QWeb.render('ImportView-result',{'records':records}));
|
||||
}else if(results['error']){
|
||||
var result = results['error'];
|
||||
if ($('#records_data').find('tr')){
|
||||
$("#records_data tr").remove();
|
||||
}
|
||||
if ($('#error').find('table')){
|
||||
$("#error table").remove();
|
||||
}
|
||||
$("#error").append('<table id="error_tbl"><tr style="white-space: pre-line;">The import failed due to:'+result['message']+'</tr></table>');
|
||||
if (result['preview']){
|
||||
$("#error_tbl tr:last").after('<tr>Here is a preview of the file we could not import:</tr>');
|
||||
$("#error_tbl tr:last").after('<tr><pre>'+result['preview']+'</pre></tr>');
|
||||
}
|
||||
result_node.append(QWeb.render('ImportView-result',{'error': results['error']}));
|
||||
}else if(results['success']){
|
||||
var result = results['success'];
|
||||
$("#imported_success").css('display','block');
|
||||
$("#res").append('<td>'+result['message']+'</td>')
|
||||
var success_node = $("#success");
|
||||
success_node.append(QWeb.render('ImportView-result',{'success': results['success']}));
|
||||
}
|
||||
},
|
||||
stop: function() {
|
||||
|
||||
@@ -1328,10 +1328,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="error">
|
||||
</div>
|
||||
<table id="records_data" class="grid" width="100%" style="margin: 5px 0;">
|
||||
</table>
|
||||
<div id="result"></div>
|
||||
<fieldset>
|
||||
<legend style="cursor:pointer;">CSV Options</legend>
|
||||
<table style="display:none">
|
||||
@@ -1359,20 +1356,55 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="100%">
|
||||
<div id="imported_success" style="display:none;">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td width="100%" valign="middle" colspan="4">
|
||||
<h2 class="separator horizontal">3. File imported</h2>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="res">
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="success"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</t>
|
||||
<t t-name="ImportView-result">
|
||||
<t t-if="error">
|
||||
<table id="error_tbl">
|
||||
<tr style="white-space:pre-line;">The import failed due to:<t t-esc="error.message"/></tr>
|
||||
<t t-if="error.preview">
|
||||
<tr>Here is a preview of the file we could not import:</tr>
|
||||
<tr><pre><t t-esc="error.preview"/></pre></tr>
|
||||
</t>
|
||||
</table>
|
||||
</t>
|
||||
<t t-if="records">
|
||||
<table id="records_data" class="grid" width="100%" style="margin: 5px 0;">
|
||||
<t t-foreach="records" t-as="record">
|
||||
<t t-if="record=='header'">
|
||||
<tr class="grid-header">
|
||||
<t t-foreach="records.header" t-as="header">
|
||||
<th class="grid-cell"><t t-esc="header[0]"/></th>
|
||||
</t>
|
||||
</tr>
|
||||
</t>
|
||||
<t t-if="record=='row'">
|
||||
<t t-foreach="records.row" t-as="row">
|
||||
<tr class="grid-row">
|
||||
<t t-foreach="row" t-as="column">
|
||||
<td class="grid-cell"><t t-esc="column"/></td>
|
||||
</t>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
</t>
|
||||
</table>
|
||||
</t>
|
||||
<t t-if="success">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td width="100%" valign="middle" colspan="4">
|
||||
<h2 class="separator horizontal">3. File imported</h2>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<t t-esc="success.message"/>
|
||||
</tr>
|
||||
</table>
|
||||
</t>
|
||||
</t>
|
||||
</templates>
|
||||
|
||||
Reference in New Issue
Block a user