Reviewers: ,


Please review this at http://codereview.tryton.org/285001/

Affected files:
  M trytond/model/browse.py
  M trytond/model/model.py
  M trytond/model/modelstorage.py


Index: trytond/model/browse.py
===================================================================

--- a/trytond/model/browse.py
+++ b/trytond/model/browse.py
@@ -197,9 +197,7 @@
                                     LRUDict(RECORD_CACHE_SIZE))
                                 data[i] = BrowseRecord(data[i], model,
                                     ids, local_cache)
-                    elif (model
-                            and j._type in ('one2many', 'many2many')
-                            and len(data[i])):
+                    elif (model and j._type in ('one2many', 'many2many')):
                         _datetime = None
if hasattr(j, 'datetime_field') and j.datetime_field:
                             _datetime = data[j.datetime_field]

Index: trytond/model/model.py
===================================================================

--- a/trytond/model/model.py
+++ b/trytond/model/model.py
@@ -20,7 +20,6 @@
     _inherits = {}
     _description = ''
     __columns = None
-    __xxx2many_targets = None
     __defaults = None
     _rec_name = 'name'

@@ -28,7 +27,6 @@

     def _reset_columns(self):
         self.__columns = None
-        self._reset_xxx2many_targets()

     def _getcolumns(self):
         if self.__columns:
@@ -141,55 +139,6 @@
             if self._name in obj._inherits:
                 obj._inherits_reload()

-    def _reset_xxx2many_targets(self):
-        self.__xxx2many_targets = None
-
-    def _getxxx2many_targets(self):
-        if self.__xxx2many_targets:
-            return self.__xxx2many_targets
-        to_cache = True
-
-        res = [(field_name, field.model_name)
-                for field_name, field in self._columns.iteritems()
-                if field._type == 'one2many']
-
-        for field_name, field in self._columns.iteritems():
-            if field._type != 'many2many':
-                continue
-            if hasattr(field, 'get_target'):
-                try:
-                    model_name = field.get_target()._name
-                except KeyError:
-                    to_cache = False
-                    continue
-            else:
-                model_name = field.model_name
-            res.append((field_name, model_name))
-
-        res += [(field_name, field.model_name)
-                for _, (_, field_name, field) in \
-                        self._inherit_fields.iteritems()
-                if field._type == 'one2many']
-
-        for _, (_, field_name, field) in self._inherit_fields.iteritems():
-            if field._type != 'many2many':
-                continue
-            if hasattr(field, 'get_target'):
-                try:
-                    model_name = field.get_target()._name
-                except KeyError:
-                    to_cache = False
-                    continue
-            else:
-                model_name = field.model_name
-            res.append((field_name, model_name))
-
-        if to_cache:
-            self.__xxx2many_targets = res
-        return res
-
-    _xxx2many_targets = property(fget=_getxxx2many_targets)
-
     def init(self, module_name):
         """
         Add model in ir.model and ir.model.field.

Index: trytond/model/modelstorage.py
===================================================================

--- a/trytond/model/modelstorage.py
+++ b/trytond/model/modelstorage.py
@@ -64,20 +64,6 @@
         "Default value for create_date field."
         return datetime.datetime.today()

-    def __clean_xxx2many_cache(self):
-        # Clean cursor cache
-        to_clean = [(model._name, field_name)
-                for model_name, model in Pool().iterobject(type='model')
-                for field_name, target_name in model._xxx2many_targets
-                if target_name == self._name]
-        for cache in Transaction().cursor.cache.values():
- for cache in (cache, cache.get('_language_cache', {}).values()):
-                for model_name, field_name in to_clean:
-                    if model_name in cache:
-                        for model_id in cache[model_name]:
-                            if field_name in cache[model_name][model_id]:
-                                del cache[model_name][model_id][field_name]
-
     def create(self, values):
         '''
         Create records.
@@ -93,7 +79,6 @@
         model_access_obj.check(self._name, 'create')
         model_field_access_obj.check(self._name,
                 [x for x in values if x in self._columns], 'write')
-        self.__clean_xxx2many_cache()
         return False

     def trigger_create(self, id):
@@ -162,8 +147,6 @@
                     for i in ids:
                         if i in cache[self._name]:
                             cache[self._name][i] = {}
-        if ids:
-            self.__clean_xxx2many_cache()
         return False

     def trigger_write_get_eligibles(self, ids):
@@ -232,8 +215,6 @@
                     for i in ids:
                         if i in cache[self._name]:
                             del cache[self._name][i]
-        if ids:
-            self.__clean_xxx2many_cache()
         return False

     def trigger_delete(self, ids):



--
[email protected] mailing list

Reply via email to