Yogesh(Open ERP) has proposed merging 
lp:~openerp-dev/openobject-server/trunk-bug-783961-ysa into 
lp:openobject-server.

Requested reviews:
  Naresh(OpenERP) (nch-openerp)
Related bugs:
  Bug #783961 in OpenERP Server: "dead reference to sales order in opportunity 
causes permission error"
  https://bugs.launchpad.net/openobject-server/+bug/783961

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-783961-ysa/+merge/65770
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-783961-ysa/+merge/65770
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-server/trunk-bug-783961-ysa.
=== modified file 'openerp/osv/fields.py'
--- openerp/osv/fields.py	2011-06-17 07:26:08 +0000
+++ openerp/osv/fields.py	2011-06-24 08:49:35 +0000
@@ -148,9 +148,23 @@
 
 class reference(_column):
     _type = 'reference'
+    _classic_read = False # post-process to handle missing target
+
     def __init__(self, string, selection, size, **args):
         _column.__init__(self, string=string, size=size, selection=selection, **args)
 
+    def get(self, cr, obj, ids, name, uid=None, context=None, values=None):
+        result = {}
+        # copy initial values fetched previously.
+        for row in values:
+            result[row['id']] = row[name]
+        # verify target object exists
+        for id, value in result.iteritems():
+            if value:
+                model, res_id = value.split(',')
+                if not obj.pool.get(model).exists(cr, uid, [int(res_id)], context=context):
+                    result[id] = False
+        return result
 
 class char(_column):
     _type = 'char'

_______________________________________________
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