summaryrefslogtreecommitdiff
path: root/odoo/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'odoo/api.py')
-rw-r--r--odoo/api.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/odoo/api.py b/odoo/api.py
index cf56718b032..b6a7f1acb8a 100644
--- a/odoo/api.py
+++ b/odoo/api.py
@@ -827,6 +827,21 @@ class Cache(object):
except KeyError:
pass
+ def get_until_miss(self, records, field):
+ """ Return the cached values of ``field`` for ``records`` until a value is not found. """
+ field_cache = self._data[field]
+ key = records.env.cache_key(field) if field.depends_context else None
+ vals = []
+ for record_id in records._ids:
+ try:
+ if key is not None:
+ vals.append(field_cache[record_id][key])
+ else:
+ vals.append(field_cache[record_id])
+ except KeyError:
+ break
+ return vals
+
def get_records_different_from(self, records, field, value):
""" Return the subset of ``records`` that has not ``value`` for ``field``. """
field_cache = self._data[field]