From a3884f22f5fde66cac13b8b6c0b48939f38867eb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 14 Jul 2013 10:25:08 +0530 Subject: [PATCH] title and title_sort setters --- src/calibre/db/legacy.py | 11 +++++++---- src/calibre/db/tests/legacy.py | 5 +++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/calibre/db/legacy.py b/src/calibre/db/legacy.py index ec2d6ffec4..f21d938009 100644 --- a/src/calibre/db/legacy.py +++ b/src/calibre/db/legacy.py @@ -376,10 +376,11 @@ LibraryDatabase.get_identifiers = MT( for field in ( '!authors', 'author_sort', 'comment', 'has_cover', 'identifiers', 'languages', 'pubdate', '!publisher', 'rating', '!series', 'series_index', 'timestamp', 'uuid', + 'title', 'title_sort', ): def setter(field): has_case_change = field.startswith('!') - field = {'comment':'comments',}.get(field, field) + field = {'comment':'comments', 'title_sort':'sort'}.get(field, field) if has_case_change: field = field[1:] acc = field == 'series' @@ -392,13 +393,15 @@ for field in ( def func(self, book_id, val): self.new_api.set_field('cover', {book_id:bool(val)}) else: + null_field = field in {'title', 'sort', 'uuid'} + retval = (True if field == 'sort' else None) def func(self, book_id, val, notify=True, commit=True): - if not val and field == 'uuid': - return + if not val and null_field: + return (False if field == 'sort' else None) ret = self.new_api.set_field(field, {book_id:val}) if notify: self.notify([book_id]) - return ret if field == 'languages' else None + return ret if field == 'languages' else retval return func setattr(LibraryDatabase, 'set_%s' % field.replace('!', ''), MT(setter(field))) # }}} diff --git a/src/calibre/db/tests/legacy.py b/src/calibre/db/tests/legacy.py index b3b8d86d59..6c67fcea36 100644 --- a/src/calibre/db/tests/legacy.py +++ b/src/calibre/db/tests/legacy.py @@ -420,9 +420,12 @@ class LegacyTest(BaseTest): ('set_rating', 1, 2.3), ('set_rating', 2, 0), ('set_rating', 3, 8), ('set_timestamp', 1, None), ('set_timestamp', 2, '2011-1-7'), ('set_uuid', 1, None), ('set_uuid', 2, 'a test uuid'), + ('set_title', 1, 'title two'), ('set_title', 2, None), ('set_title', 3, 'The Test Title'), (db.refresh,), + ('title', 0), ('title', 1), ('title', 2), + ('title_sort', 0), ('title_sort', 1), ('title_sort', 2), ('authors', 0), ('authors', 1), ('authors', 2), ('author_sort', 0), ('author_sort', 1), ('author_sort', 2), ('has_cover', 3), ('has_cover', 1), ('has_cover', 2), @@ -435,9 +438,11 @@ class LegacyTest(BaseTest): ('series_index', 0), ('series_index', 1), ('series_index', 2), ('uuid', 0), ('uuid', 1), ('uuid', 2), + ('set_title_sort', 1, 'Title Two'), ('set_title_sort', 2, None), ('set_title_sort', 3, 'The Test Title_sort'), ('set_series_index', 1, 2.3), ('set_series_index', 2, 0), ('set_series_index', 3, 8), (db.refresh,), ('series_index', 0), ('series_index', 1), ('series_index', 2), + ('title_sort', 0), ('title_sort', 1), ('title_sort', 2), )) db.close()