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