← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-server/trunk-bug-export_method-rga into lp:openobject-server

 

Naresh(OpenERP) has proposed merging lp:~openerp-dev/openobject-server/trunk-bug-export_method-rga into lp:openobject-server.

Requested reviews:
  Naresh(OpenERP) (nch-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-export_method-rga/+merge/61744

merge the client branch too lp:~openerp-dev/openobject-client/trunk-bug-771801-rga to test.
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-export_method-rga/+merge/61744
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-server/trunk-bug-export_method-rga.
=== modified file 'openerp/addons/base/ir/ir_exports.py'
--- openerp/addons/base/ir/ir_exports.py	2010-12-20 23:17:43 +0000
+++ openerp/addons/base/ir/ir_exports.py	2011-05-20 11:31:11 +0000
@@ -25,12 +25,52 @@
 class ir_exports(osv.osv):
     _name = "ir.exports"
     _order = 'name'
+    _export_model_list =[]
+    _export_data = {}
+    _count = 0
     _columns = {
         'name': fields.char('Export Name', size=128),
         'resource': fields.char('Resource', size=128, select=True),
         'export_fields': fields.one2many('ir.exports.line', 'export_id',
                                          'Export ID'),
     }
+   
+    def export_list(self, cr, uid, fields, prefix_node='', prefix=0, prefix_value='', level=2, import_comp=True, context={}): 
+        if context.get('reset',False):
+            self._export_model_list =[]
+            self. _export_data = {}
+            self._count = 0
+            del context['reset']
+            
+        fields = fields.copy()
+        fields.update({'id':{'string':'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', '')))
+        for field in fields_order:
+            if import_comp and fields[field].get('readonly', False):
+                ok = False
+                for sl in fields[field].get('states', {}).values():
+                    for s in sl:
+                        ok = ok or (s==('readonly',False))
+                if not ok: continue
+            self._export_data[prefix_node+field] = fields[field]
+            if prefix_node:
+                self._export_data[prefix_node + field]['string'] = '%s%s' % (prefix_value, self._export_data[prefix_node + field]['string'])
+            st_name = fields[field]['string'] or field 
+            self._count = self._count + 1
+            self._export_model_list.append([prefix, self._count, [st_name, prefix_node+field, (fields[field].get('required', False) and '#ddddff') or 'white']])
+            if fields[field].get('relation', False) and level>0:
+                if (fields[field]['type'] in ['many2many']) and import_comp:
+                    pass
+                else:
+                    if (not import_comp) or (fields[field]['type'] in ['one2many']):
+                        fields2= self.pool.get(fields[field]['relation']).fields_get(cr, uid, False, context)
+                        self.export_list(cr, uid, fields2, prefix_node+field+'/',   self._count, st_name+'/', level-1, import_comp, context)
+                    else:
+                        self.export_list(cr, uid, {}, prefix_node+field+'/',   self._count, st_name+'/', level-1, import_comp, context)
+        return self._export_model_list
+    
 ir_exports()
 
 


Follow ups