Naresh(OpenERP) has proposed merging lp:~openerp-dev/openobject-client/trunk-bug-805243-nch into lp:openobject-client.
Requested reviews: OpenERP sa GTK client R&D (openerp-dev-gtk) Related bugs: Bug #805243 in OpenERP GTK Client: "[V6.0.2] No check when loading ir.reports" https://bugs.launchpad.net/openobject-client/+bug/805243 For more details, see: https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-805243-nch/+merge/67690 -- https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-805243-nch/+merge/67690 Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client/trunk-bug-805243-nch.
=== modified file 'bin/modules/gui/window/win_export.py' --- bin/modules/gui/window/win_export.py 2011-01-25 10:26:37 +0000 +++ bin/modules/gui/window/win_export.py 2011-07-12 12:44:40 +0000 @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). # @@ -15,7 +15,7 @@ # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## @@ -105,7 +105,7 @@ common.error(_('Error Opening Excel !'),'') def datas_read(ids, model, fields, fields_view, prefix='', context=None): - ctx = context.copy() + ctx = context.copy() ctx.update(rpc.session.context) datas = rpc.session.rpc_exec_auth('/object', 'execute', model, 'export_data', ids, fields, ctx) return datas @@ -165,7 +165,7 @@ self.wid_action = self.glade.get_widget('win_saveas_combo') self.wid_write_field_names = self.glade.get_widget('add_field_names_cb') action = self.wid_action.set_active(os.name!='nt') - + if os.name != 'nt': self.wid_action.remove_text(0) else: @@ -198,14 +198,26 @@ self.pref_export.connect('key_press_event', self.del_export_list_key) # Fill the predefined export tree view and show everything + self.predef_rec = {} + ir_export = rpc.RPCProxy('ir.exports') + export_ids = ir_export.search([('resource', '=', self.model)]) + self.predef_rec = self.get_predef_exports(export_ids) self.fill_predefwin() self.pref_export.show_all() + def get_predef_exports(self, export_ids=[]): + values = {} + ir_export = rpc.RPCProxy('ir.exports') + ir_export_line = rpc.RPCProxy('ir.exports.line') + for export in ir_export.read(export_ids): + values[export['name']] = ir_export_line.read(export['export_fields']) + return values + def model_populate(self, fields, prefix_node='', prefix=None, prefix_value='', level=2): import_comp = self.wid_import_compatible.get_active() fields = fields.copy() fields.update({'id':{'string':_('ID')}}) - fields.update({'.id':{'string':_('Database ID')}}) + fields.update({'.id':{'string':_('Database ID')}}) fields_order = fields.keys() fields_order.sort(lambda x,y: -cmp(fields[x].get('string', ''), fields[y].get('string', ''))) @@ -219,7 +231,7 @@ self.fields_data[prefix_node+field] = fields[field] if prefix_node: self.fields_data[prefix_node + field]['string'] = '%s%s' % (prefix_value, self.fields_data[prefix_node + field]['string']) - st_name = fields[field]['string'] or field + st_name = fields[field]['string'] or field node = self.model1.insert(prefix, 0, [st_name, prefix_node+field, (fields[field].get('required', False) and '#ddddff') or 'white']) self.fields[prefix_node+field] = (st_name, fields[field].get('relation', False)) if fields[field].get('relation', False) and level>0: @@ -235,7 +247,7 @@ def del_export_list_key(self,widget, event, *args): if event.keyval==gtk.keysyms.Delete: self.del_selected_export_list() - + def del_export_list_btn(self, widget=None): self.del_selected_export_list() @@ -289,20 +301,18 @@ def import_toggled(self, widget=None): self.model1.clear() self.model2.clear() + self.fields_data.clear() self.model_populate(self.fields_original) + self.fill_predefwin() def sig_unsel_all(self, widget=None): self.model2.clear() - + def fill_predefwin(self): self.predef_model = gtk.ListStore(gobject.TYPE_PYOBJECT, gobject.TYPE_STRING, gobject.TYPE_STRING) - ir_export = rpc.RPCProxy('ir.exports') - ir_export_line = rpc.RPCProxy('ir.exports.line') - export_ids = ir_export.search([('resource', '=', self.model)]) - for export in ir_export.read(export_ids): - fields = ir_export_line.read(export['export_fields']) + for name, value in self.predef_rec.iteritems(): try: - self.predef_model.append(([f['name'] for f in fields], export['name'], ', '.join([self.fields_data[f['name']]['string'] for f in fields]))) + self.predef_model.append(([f['name'] for f in value], name, ', '.join([self.fields_data[f['name']]['string'] for f in value]))) except: pass self.pref_export.set_model(self.predef_model) @@ -310,7 +320,7 @@ def add_predef(self, button): name = common.ask(_('What is the name of this export ?')) if not name: - return + return ir_export = rpc.RPCProxy('ir.exports') iter = self.model2.get_iter_root() fields = [] @@ -318,9 +328,10 @@ field_name = self.model2.get_value(iter, 1) fields.append(field_name) iter = self.model2.iter_next(iter) - ir_export.create({'name' : name, 'resource' : self.model, 'export_fields' : [(0, 0, {'name' : f}) for f in fields]}) - self.predef_model.append((fields, name, ','.join([self.fields_data[f]['string'] for f in fields]))) - + export_id = ir_export.create({'name' : name, 'resource' : self.model, 'export_fields' : [(0, 0, {'name' : f}) for f in fields]}) + self.predef_rec.update(self.get_predef_exports([export_id])) + self.fill_predefwin() + def sel_predef(self, treeview, path, column): self.model2.clear() for field in self.predef_model[path[0]][0]:
_______________________________________________ Mailing list: https://launchpad.net/~openerp-dev-gtk Post to : [email protected] Unsubscribe : https://launchpad.net/~openerp-dev-gtk More help : https://help.launchpad.net/ListHelp

