Have db2.get_metadata put the current value of a composite field into its value

This commit is contained in:
Kovid Goyal 2011-02-09 10:25:48 -07:00
commit 9a3d8d19bc
2 changed files with 5 additions and 5 deletions

View file

@ -129,10 +129,7 @@ def __setattr__(self, field, val, extra=None):
val = NULL_VALUES.get(field, None)
_data[field] = val
elif field in _data['user_metadata'].iterkeys():
if _data['user_metadata'][field]['datatype'] == 'composite':
_data['user_metadata'][field]['#value#'] = None
else:
_data['user_metadata'][field]['#value#'] = val
_data['user_metadata'][field]['#value#'] = val
_data['user_metadata'][field]['#extra#'] = extra
else:
# You are allowed to stick arbitrary attributes onto this object as

View file

@ -787,7 +787,10 @@ def get_metadata(self, idx, index_is_id=False, get_cover=False):
mi.id = id
for key, meta in self.field_metadata.custom_iteritems():
mi.set_user_metadata(key, meta)
mi.set(key, val=self.get_custom(idx, label=meta['label'],
if meta['datatype'] == 'composite':
mi.set(key, val=row[meta['rec_index']])
else:
mi.set(key, val=self.get_custom(idx, label=meta['label'],
index_is_id=index_is_id),
extra=self.get_custom_extra(idx, label=meta['label'],
index_is_id=index_is_id))