From db6ff017b35f89917050ede229ab103f8e818466 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Wed, 9 Feb 2011 17:09:34 +0000 Subject: [PATCH] Have db2.get_metadata put the current value of a composite field into its value --- src/calibre/ebooks/metadata/book/base.py | 5 +---- src/calibre/library/database2.py | 5 ++++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index 799bdef8e6..4cca94a6c6 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -129,10 +129,7 @@ class Metadata(object): 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 diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 5702b75317..b0497eb53e 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -787,7 +787,10 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): 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))