mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix error when using tag browser if a user category contains a reference to a deleted custom column
This commit is contained in:
parent
ca01ac7326
commit
cc19a77298
@ -809,11 +809,11 @@ class Cache:
|
|||||||
|
|
||||||
@read_api
|
@read_api
|
||||||
def get_item_id(self, field, item_name):
|
def get_item_id(self, field, item_name):
|
||||||
' Return the item id for item_name (case-insensitive) '
|
' Return the item id for item_name (case-insensitive) or None if not found '
|
||||||
try:
|
try:
|
||||||
rmap = {icu_lower(v) if isinstance(v, str) else v:k for k, v in iteritems(self.fields[field].table.id_map)}
|
rmap = {icu_lower(v) if isinstance(v, str) else v:k for k, v in iteritems(self.fields[field].table.id_map)}
|
||||||
except KeyError:
|
except KeyError:
|
||||||
rmap = {}
|
return None
|
||||||
return rmap.get(icu_lower(item_name) if isinstance(item_name, str) else item_name, None)
|
return rmap.get(icu_lower(item_name) if isinstance(item_name, str) else item_name, None)
|
||||||
|
|
||||||
@read_api
|
@read_api
|
||||||
|
@ -1469,9 +1469,10 @@ class TagsModel(QAbstractItemModel): # {{{
|
|||||||
datatype = cache.field_metadata.get(key, {}).get('datatype', '*****')
|
datatype = cache.field_metadata.get(key, {}).get('datatype', '*****')
|
||||||
if datatype != 'composite':
|
if datatype != 'composite':
|
||||||
id_ = cache.get_item_id(key, val)
|
id_ = cache.get_item_id(key, val)
|
||||||
v = cache.books_for_field(key, id_)
|
if id_ is not None:
|
||||||
if v:
|
v = cache.books_for_field(key, id_)
|
||||||
new_cat.append([val, key, 0])
|
if v:
|
||||||
|
new_cat.append([val, key, 0])
|
||||||
if new_cat:
|
if new_cat:
|
||||||
all_cats[cat] = new_cat
|
all_cats[cat] = new_cat
|
||||||
self.db.new_api.set_pref('user_categories', all_cats)
|
self.db.new_api.set_pref('user_categories', all_cats)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user