← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-client/trunk-bug-771801-rga into lp:openobject-client

 

Ravi Gadhia (OpenERP) has proposed merging lp:~openerp-dev/openobject-client/trunk-bug-771801-rga into lp:openobject-client.

Requested reviews:
  Naresh(OpenERP) (nch-openerp)
Related bugs:
  Bug #771801 in OpenERP GTK Client: "Export data save doesn't work with not import compatible data"
  https://bugs.launchpad.net/openobject-client/+bug/771801

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-771801-rga/+merge/60368
-- 
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-771801-rga/+merge/60368
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client/trunk-bug-771801-rga.
=== 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-05-09 12:05:18 +0000
@@ -119,6 +119,7 @@
         self.model = model
         self.fields_data = {}
         self.fields = {}
+        self.save_fields= {}
         if context is None:
             context = {}
         self.context = context
@@ -201,6 +202,7 @@
         self.fill_predefwin()
         self.pref_export.show_all()
 
+
     def model_populate(self, fields, prefix_node='', prefix=None, prefix_value='', level=2):
         import_comp = self.wid_import_compatible.get_active()
         fields = fields.copy()
@@ -275,9 +277,6 @@
         sel.selected_foreach(self._sig_sel_add)
 
     def _sig_sel_add(self, store, path, iter):
-        name, relation = self.fields[store.get_value(iter,1)]
-        #if relation:
-        #    return
         num = self.model2.append()
         self.model2.set(num, 0, store.get_value(iter,0), 1, store.get_value(iter,1))
 
@@ -290,19 +289,28 @@
         self.model1.clear()
         self.model2.clear()
         self.model_populate(self.fields_original)
+        self.fill_predefwin()
 
     def sig_unsel_all(self, widget=None):
         self.model2.clear()
     
     def fill_predefwin(self):
+        def foreach_handler(model, path, iter, fields_list):
+            for field in fields_list:
+                if model.get_value(iter,1) == field:
+                    self.save_fields[field] = model.get_value(iter,0)
+                
         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'])
+            fields_list = [f['name'] for f in fields]
+            self.save_fields ={}
+            self.model1.foreach(foreach_handler, fields_list)
             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((self.save_fields.keys(), export['name'], ', '.join(self.save_fields.values())))
             except:
                 pass
         self.pref_export.set_model(self.predef_model)
@@ -324,7 +332,8 @@
     def sel_predef(self, treeview, path, column):
         self.model2.clear()
         for field in self.predef_model[path[0]][0]:
-            self.model2.append((self.fields_data[field]['string'], field))
+            if self.fields_data.get(field, False):
+                self.model2.append((self.fields_data[field]['string'], field))
 
     def go(self):
         button = self.win.run()


Follow ups