[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:
@@ -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)
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user