def get(self, cr, obj, ids, name, user=None, context=None, values=None): if not context: context = {} if not values: values = {} res = {} if self._method: res = self._fnct(obj, cr, user, ids, name, self._arg, context) else: res = self._fnct(cr, obj._table, ids, name, self._arg, context) if self._type == "many2one": # Filtering only integer/long values if passed res_ids = [x for x in res.values() if x and isinstance(x, (int, long))] if res_ids: obj_model = obj.pool.get(self._obj) dict_names = dict(obj_model.name_get(cr, user, res_ids, context)) for r in res.keys(): if res[r] and res[r] in dict_names: res[r] = (res[r], dict_names[res[r]]) if self._type == "binary" and context.get("bin_size", False): # convert the data returned by the function with the size of that data... res = dict(map(lambda (x, y): (x, tools.human_size(len(y or ""))), res.items())) return res
def get_memory(self, cr, obj, ids, name, user=None, context=None, values=None): if not context: context = {} if not values: values = [] res = {} for i in ids: val = None for v in values: if v["id"] == i: val = v[name] break if context.get("bin_size", False) and val: res[i] = tools.human_size(long(val)) else: res[i] = val return res