[IMP] add onchange event of selection box and base on load field name in export list.

bzr revid: ysa@tinyerp.com-20110715122201-9x60axor2glholzb
This commit is contained in:
Yogesh (OpenERP)
2011-07-15 17:52:01 +05:30
parent e16e35e00f
commit dc8889a339
2 changed files with 80 additions and 16 deletions
+52 -2
View File
@@ -7,14 +7,13 @@ class Export(View):
def fields_get(self, req, model):
Model = req.session.model(model)
fields = Model.fields_get(False, req.session.eval_context(req.context))
fields.update({'id': {'string': 'ID'}, '.id': {'string': 'Database ID'}})
return fields
@openerpweb.jsonrequest
def get_fields(self, req, model, prefix='', field_parent=None, name= ''):
fields = self.fields_get(req, model)
fields.update({'id': {'string': 'ID'}, '.id': {'string': 'Database ID'}})
records = []
for key, value in fields.items():
record = {}
@@ -73,3 +72,54 @@ class Export(View):
def delete_export(self, req, export_id):
req.session.model("ir.exports").unlink(export_id, req.session.eval_context(req.context))
return True
@openerpweb.jsonrequest
def namelist(self,req, model, export_id):
result = self.get_data(req, model, req.session.eval_context(req.context))
ir_export_obj = req.session.model("ir.exports")
ir_export_line_obj = req.session.model("ir.exports.line")
field = ir_export_obj.read(export_id)
fields = ir_export_line_obj.read(field['export_fields'])
name_list = {}
[name_list.update({field['name']: result.get(field['name'])}) for field in fields]
print ":name_list::\n\n\n\n\n:",name_list
return name_list
def get_data(self, req, model, context=None):
ids = []
context = context or {}
fields_data = {}
proxy = req.session.model(model)
fields = self.fields_get(req, model)
if not ids:
f1 = proxy.fields_view_get(False, 'tree', context)['fields']
f2 = proxy.fields_view_get(False, 'form', context)['fields']
fields = dict(f1)
fields.update(f2)
def rec(fields):
_fields = {'id': 'ID' , '.id': 'Database ID' }
def model_populate(fields, prefix_node='', prefix=None, prefix_value='', level=2):
fields_order = fields.keys()
fields_order.sort(lambda x,y: -cmp(fields[x].get('string', ''), fields[y].get('string', '')))
for field in fields_order:
fields_data[prefix_node+field] = fields[field]
if prefix_node:
fields_data[prefix_node + field]['string'] = '%s%s' % (prefix_value, fields_data[prefix_node + field]['string'])
st_name = fields[field]['string'] or field
_fields[prefix_node+field] = st_name
if fields[field].get('relation', False) and level>0:
fields2 = self.fields_get(req, fields[field]['relation'])
model_populate(fields2, prefix_node+field+'/', None, st_name+'/', level-1)
model_populate(fields)
return _fields
return rec(fields)
+28 -14
View File
@@ -54,21 +54,35 @@ openerp.base_export.Export = openerp.base.Dialog.extend({
$("#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){
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}));
$("#saved_export_list").change(function(){
$("#fields_list option").remove();
export_id = $("#saved_export_list option:selected").val();
if (export_id){
self.rpc("/base_export/export/namelist", {"model": self.dataset.model, export_id: parseInt(export_id)}, self.do_load_export_field);
}
});
$('#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();
}
}
});
}
});
}
}
});
}
});
}
},
do_load_export_field: function(field_list){
var export_node = $("#fields_list");
for (var key in field_list) {
export_node.append(new Option(field_list[key], key));
}
},