[IMP] implement save export list functionality.

bzr revid: ysa@tinyerp.com-20110715102314-pvz1uyke4wjhk8xl
This commit is contained in:
Yogesh (OpenERP)
2011-07-15 15:53:14 +05:30
parent 8596daa98b
commit e16e35e00f
3 changed files with 81 additions and 14 deletions
+10 -2
View File
@@ -62,6 +62,14 @@ class Export(View):
result = {'resource':model, 'name':name, 'export_fields': []}
for field in field_list:
result['export_fields'].append((0, 0, {'name': field}))
req.session.model("ir.exports").create(result, req.session.eval_context(req.context))
return True
return req.session.model("ir.exports").create(result, req.session.eval_context(req.context))
@openerpweb.jsonrequest
def exist_export_lists(self, req, model):
export_model = req.session.model("ir.exports")
return export_model.read(export_model.search([('resource', '=', model)]), ['name'])
@openerpweb.jsonrequest
def delete_export(self, req, export_id):
req.session.model("ir.exports").unlink(export_id, req.session.eval_context(req.context))
return True
@@ -29,6 +29,7 @@ openerp.base_export.Export = openerp.base.Dialog.extend({
},
close: function(event, ui){ self.close();}
});
this.on_show_exists_export_list();
$('#add_field').click(function(){
for (var key in self.selected_fields) {
self.add_field(key, self.selected_fields[key])
@@ -44,7 +45,33 @@ openerp.base_export.Export = openerp.base.Dialog.extend({
self.on_show_save_list();
});
this.rpc("/base_export/export/get_fields", {"model": this.dataset.model}, this.on_show_data);
},
on_show_exists_export_list: function(){
var self = this;
if($("#saved_export_list").is(":hidden")){
$("#ExistsExportList").show();
}
else{
this.rpc("/base_export/export/exist_export_lists", {"model": this.dataset.model}, function(export_list){
if(export_list.length){
$("#ExistsExportList").append(QWeb.render('Exists.ExportList', {'existing_exports':export_list}));
$('#delete_export_list').click(function(){
select_exp = $("#saved_export_list option:selected")
if (select_exp.val()){
self.rpc("/base_export/export/delete_export", {"export_id": parseInt(select_exp.val())}, {});
select_exp.remove();
if($("#saved_export_list option").length <= 1){
$("#ExistsExportList").hide();
}
}
});
}
});
}
},
on_show_save_list: function(){
var self = this;
var current_node = $("#savenewlist");
@@ -58,7 +85,6 @@ openerp.base_export.Export = openerp.base.Dialog.extend({
else{
alert("Pleae Enter Save Field List Name");
}
});
}
else{
@@ -72,10 +98,23 @@ openerp.base_export.Export = openerp.base.Dialog.extend({
},
do_save_export_list: function(value){
var export_field = this.get_fields()
var self = this;
var export_field = self.get_fields()
if(export_field.length){
this.rpc("/base_export/export/save_export_lists", {"model": this.dataset.model, "name":value, "field_list":export_field}, {});
this.on_show_save_list()
self.rpc("/base_export/export/save_export_lists", {"model": self.dataset.model, "name":value, "field_list":export_field}, function(exp_id){
if(exp_id){
if($("#saved_export_list").length > 0){
$("#saved_export_list").append( new Option(value, exp_id));
}
else{
self.on_show_exists_export_list();
}
if($("#saved_export_list").is(":hidden")){
self.on_show_exists_export_list();
}
}
});
self.on_show_save_list()
$("#fields_list option").remove();
}
},
@@ -150,7 +189,11 @@ openerp.base_export.Export = openerp.base.Dialog.extend({
}
break;
case arrow.up:
$(this).prev().find('a').focus();
var elem = this;
while($(elem).prev().is(":visible") == false){
elem = $(elem).prev();
}
$(elem).prev().find('a').focus();
break;
case arrow.right:
if( jQuery(this).find('img').attr('src') == '/base/static/src/img/expand.gif'){
@@ -5,7 +5,7 @@
</t>
<t t-name="ExportTreeView">
<table class="view" cellspacing="5" border="0" width="100%">
<table class="view" width="100%">
<tr>
<td class="side_spacing" align="left">
This wizard will export all data that matches the current search criteria to a CSV file.
@@ -29,20 +29,21 @@
</tr>
<tr>
<td class="side_spacing">
<table class="fields-selector-export" cellspacing="5" border="0">
<td>
<table class="fields-selector-export" width="100%">
<tr>
<th class="oe_view_title">Available fields</th>
<th class="oe_view_title" valign="bottom">Available fields</th>
<th class="oe_view_title"></th>
<th class="oe_view_title">Fields to export
<a style="color: blue; text-decoration: none;" href="#" id="export_new_list">Save fields list</a>
<div id="savenewlist"></div>
<div id="ExistsExportList"></div>
</th>
</tr>
<tr>
<td class="fields-selector-left" height="400px">
<div id="fields_left">
<table class="fields-selector-export" cellspacing="5" border="0">
<table class="fields-selector-export">
<th class="header_title"> Name </th>
<tr>
<td>
@@ -55,7 +56,7 @@
</div>
</td>
<td class="fields-selector-center">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<table width="100%">
<tr>
<td align="center">
<button id="add_field">Add </button>
@@ -115,9 +116,24 @@
<t t-name="ExportNewList">
<tr>
<td><label>Save as:</label></td>
<th><label>Save as:</label></th>
<td><input size="10" type="text" id="savelist_name"/></td>
<td><button id="add_export_list">Ok</button></td>
</tr>
</t>
<t t-name="Exists.ExportList">
<tr><th align="right"><label >Saved exports:</label></th></tr>
<tr align="left">
<td>
<select id="saved_export_list" style="width: 100%;">
<option></option>
<t t-foreach="existing_exports" t-as="export">
<option t-att-value="export.id"><t t-esc="export.name"/></option>
</t>
</select>
</td>
<td><button id="delete_export_list">Delete</button></td>
</tr>
</t>
</template>