mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
newdb: Fix displaying the languages column
Displaying the languages column for a book with no languages was causing an error.
This commit is contained in:
parent
00a6f4593c
commit
1d9a3dcb5f
@ -336,7 +336,7 @@ class Cache(object):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
return default_value
|
return default_value
|
||||||
if field.is_multiple:
|
if field.is_multiple:
|
||||||
default_value = {} if name == 'identifiers' else ()
|
default_value = field.default_value
|
||||||
try:
|
try:
|
||||||
return field.for_book(book_id, default_value=default_value)
|
return field.for_book(book_id, default_value=default_value)
|
||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
@ -347,6 +347,8 @@ class Cache(object):
|
|||||||
' Same as field_for, except that it avoids the extra lookup to get the field object '
|
' Same as field_for, except that it avoids the extra lookup to get the field object '
|
||||||
if field_obj.is_composite:
|
if field_obj.is_composite:
|
||||||
return field_obj.get_value_with_cache(book_id, self._get_proxy_metadata)
|
return field_obj.get_value_with_cache(book_id, self._get_proxy_metadata)
|
||||||
|
if field_obj.is_multiple:
|
||||||
|
default_value = field_obj.default_value
|
||||||
try:
|
try:
|
||||||
return field_obj.for_book(book_id, default_value=default_value)
|
return field_obj.for_book(book_id, default_value=default_value)
|
||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
|
@ -48,6 +48,7 @@ class Field(object):
|
|||||||
self._sort_key = lambda x:sort_key(calibre_langcode_to_name(x))
|
self._sort_key = lambda x:sort_key(calibre_langcode_to_name(x))
|
||||||
self.is_multiple = (bool(self.metadata['is_multiple']) or self.name ==
|
self.is_multiple = (bool(self.metadata['is_multiple']) or self.name ==
|
||||||
'formats')
|
'formats')
|
||||||
|
self.default_value = {} if name == 'identifiers' else () if self.is_multiple else None
|
||||||
self.category_formatter = type(u'')
|
self.category_formatter = type(u'')
|
||||||
if dt == 'rating':
|
if dt == 'rating':
|
||||||
self.category_formatter = lambda x:'\u2605'*int(x/2)
|
self.category_formatter = lambda x:'\u2605'*int(x/2)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user