[IMP]Improve code for preview records.

bzr revid: kch@tinyerp.com-20110808062703-sv394tf2rr79na34
This commit is contained in:
Kunal Chavda (OpenERP)
2011-08-08 11:57:03 +05:30
parent 2075da0365
commit dd2e69fcc1
3 changed files with 55 additions and 55 deletions
+1 -2
View File
@@ -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=[]):
+7 -38
View File
@@ -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() {
+47 -15
View File
@@ -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>