Antony Lesuisse (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-server/trunk-bug-712254 into lp:openobject-server.

Requested reviews:
  OpenERP Core Team (openerp)
Related bugs:
  Bug #712254 in OpenERP Server: "[stable 6.0][trunk]property fields deleted 
for other companies if Admin user in multiple companies"
  https://bugs.launchpad.net/openobject-server/+bug/712254

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-712254/+merge/93051
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-712254/+merge/93051
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-server/trunk-bug-712254.
=== modified file 'openerp/osv/fields.py'
--- openerp/osv/fields.py	2012-02-14 12:57:25 +0000
+++ openerp/osv/fields.py	2012-02-14 19:15:37 +0000
@@ -1393,11 +1393,11 @@
             res[prop_name] = prop.get(cr, uid, prop_name, obj._name, context=context)
         return res
 
-    def _get_by_id(self, obj, cr, uid, prop_name, ids, context=None):
+    def _get_by_id(self, obj, cr, uid, prop_name, ids, context=None, company_id=False):
         prop = obj.pool.get('ir.property')
         vids = [obj._name + ',' + str(oid) for oid in  ids]
 
-        domain = [('fields_id.model', '=', obj._name), ('fields_id.name', 'in', prop_name)]
+        domain = [('fields_id.model', '=', obj._name), ('fields_id.name', 'in', prop_name), ('company_id','=',company_id)]
         #domain = prop._get_domain(cr, uid, prop_name, obj._name, context)
         if vids:
             domain = [('res_id', 'in', vids)] + domain
@@ -1408,6 +1408,11 @@
         if context is None:
             context = {}
 
+        def_id = self._field_get(cr, uid, obj._name, prop_name)
+        company = obj.pool.get('res.company')
+        cid = company._company_default_get(cr, uid, obj._name, def_id,
+                                           context=context)
+
         nids = self._get_by_id(obj, cr, uid, [prop_name], [id], context)
         if nids:
             cr.execute('DELETE FROM ir_property WHERE id IN %s', (tuple(nids),))
@@ -1422,10 +1427,6 @@
             property_create = True
 
         if property_create:
-            def_id = self._field_get(cr, uid, obj._name, prop_name)
-            company = obj.pool.get('res.company')
-            cid = company._company_default_get(cr, uid, obj._name, def_id,
-                                               context=context)
             propdef = obj.pool.get('ir.model.fields').browse(cr, uid, def_id,
                                                              context=context)
             prop = obj.pool.get('ir.property')

_______________________________________________
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

Reply via email to