From cecb8b5f414e3e3347ae6855cdac4220a80b193f Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Thu, 14 Apr 2011 11:15:39 +0100 Subject: [PATCH] Make tags-like composite columns work in the content server --- src/calibre/library/database2.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index aad33e808e..b5155368c7 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -1224,7 +1224,12 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): if field['datatype'] == 'composite': dex = field['rec_index'] for book in self.data.iterall(): - if book[dex] == id_: + if field['is_multiple']: + vals = [v.strip() for v in book[dex].split(field['is_multiple']) + if v.strip()] + if id_ in vals: + ans.add(book[0]) + elif book[dex] == id_: ans.add(book[0]) return ans @@ -1402,11 +1407,12 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): except: prints('get_categories: item', val, 'is not in', cat, 'list!') else: - vals = [v.strip() for v in book[dex].split(mult) if v] + vals = book[dex].split(mult) if is_comp: + vals = [v.strip() for v in vals if v.strip()] for val in vals: if val not in tids: - tids[cat][val] = (0, val) + tids[cat][val] = (val, val) item = tcategories[cat].get(val, None) if not item: item = tag_class(val, val)