← Back to team overview

openerp-dev-web team mailing list archive

lp:~openerp-dev/openobject-server/6.0-bug-766944-dont-inherit-x-fields-vmt into lp:openobject-server/6.0

 

Vo Minh Thu (OpenERP) has proposed merging lp:~openerp-dev/openobject-server/6.0-bug-766944-dont-inherit-x-fields-vmt into lp:openobject-server/6.0.

Requested reviews:
  OpenERP Core Team (openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-bug-766944-dont-inherit-x-fields-vmt/+merge/62296

Forgot the --fixes flag:
https://bugs.launchpad.net/openobject-server/+bug/766944
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-bug-766944-dont-inherit-x-fields-vmt/+merge/62296
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-server/6.0-bug-766944-dont-inherit-x-fields-vmt.
=== modified file 'bin/osv/fields.py'
--- bin/osv/fields.py	2011-02-01 13:07:21 +0000
+++ bin/osv/fields.py	2011-05-25 13:29:26 +0000
@@ -63,7 +63,13 @@
     _symbol_set = (_symbol_c, _symbol_f)
     _symbol_get = None
 
-    def __init__(self, string='unknown', required=False, readonly=False, domain=None, context=None, states=None, priority=0, change_default=False, size=None, ondelete="set null", translate=False, select=False, **args):
+    def __init__(self, string='unknown', required=False, readonly=False, domain=None, context=None, states=None, priority=0, change_default=False, size=None, ondelete="set null", translate=False, select=False, manual=False, **args):
+        """
+
+        The 'manual' kayword argument specify if the field is a custom one. It
+        correspond to the 'state' column in ir_model_fields.
+
+        """
         if domain is None:
             domain = []
         if context is None:
@@ -84,6 +90,7 @@
         self.read = False
         self.view_load = 0
         self.select = select
+        self.manual = manual
         self.selectable = True
         self.group_operator = args.get('group_operator', False)
         for a in args:

=== modified file 'bin/osv/orm.py'
--- bin/osv/orm.py	2011-04-11 10:08:47 +0000
+++ bin/osv/orm.py	2011-05-25 13:29:26 +0000
@@ -2826,6 +2826,7 @@
                     'size': field['size'],
                     'ondelete': field['on_delete'],
                     'translate': (field['translate']),
+                    'manual': True,
                     #'select': int(field['select_level'])
                 }
 

=== modified file 'bin/osv/osv.py'
--- bin/osv/osv.py	2011-01-17 09:47:50 +0000
+++ bin/osv/osv.py	2011-05-25 13:29:26 +0000
@@ -298,6 +298,11 @@
                 nattr = {}
                 for s in ('_columns', '_defaults'):
                     new = copy.copy(getattr(pool.get(parent_name), s))
+                    if s == '_columns':
+                        # Don't _inherit custom fields.
+                        for c in new.keys():
+                            if new[c].manual:
+                                del new[c]
                     if hasattr(new, 'update'):
                         new.update(cls.__dict__.get(s, {}))
                     else:
@@ -332,6 +337,11 @@
                 nattr = {}
                 for s in ('_columns', '_defaults', '_inherits', '_constraints', '_sql_constraints'):
                     new = copy.copy(getattr(pool.get(parent_name), s))
+                    if s == '_columns':
+                        # Don't _inherit custom fields.
+                        for c in new.keys():
+                            if new[c].manual:
+                                del new[c]
                     if hasattr(new, 'update'):
                         new.update(cls.__dict__.get(s, {}))
                     else:


Follow ups