mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Content server: Fix errors when library contains enough virtual libraries to cause grouping. Fixes #1446282 [virtual libraries fail on web access](https://bugs.launchpad.net/calibre/+bug/1446282)
This commit is contained in:
parent
6121c05446
commit
2be2fb844d
@ -507,7 +507,7 @@ class BrowseServer(object):
|
|||||||
items = get_category_items(category, items,
|
items = get_category_items(category, items,
|
||||||
datatype, self.opts.url_prefix)
|
datatype, self.opts.url_prefix)
|
||||||
else:
|
else:
|
||||||
getter = lambda x: unicode(getattr(x, 'sort', x.name))
|
getter = lambda x: unicode(getattr(x, 'sort', None) or x.name)
|
||||||
starts = set([])
|
starts = set([])
|
||||||
for x in items:
|
for x in items:
|
||||||
val = getter(x)
|
val = getter(x)
|
||||||
@ -571,7 +571,10 @@ class BrowseServer(object):
|
|||||||
raise cherrypy.HTTPError(404, 'category not found')
|
raise cherrypy.HTTPError(404, 'category not found')
|
||||||
|
|
||||||
category_meta = self.db.field_metadata
|
category_meta = self.db.field_metadata
|
||||||
datatype = category_meta[category]['datatype']
|
try:
|
||||||
|
datatype = category_meta[category]['datatype']
|
||||||
|
except KeyError:
|
||||||
|
datatype = 'text'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
group = unhexlify(group)
|
group = unhexlify(group)
|
||||||
@ -582,7 +585,7 @@ class BrowseServer(object):
|
|||||||
|
|
||||||
items = categories[category]
|
items = categories[category]
|
||||||
entries = []
|
entries = []
|
||||||
getter = lambda x: unicode(getattr(x, 'sort', x.name))
|
getter = lambda x: unicode(getattr(x, 'sort', None) or x.name)
|
||||||
for x in items:
|
for x in items:
|
||||||
val = getter(x)
|
val = getter(x)
|
||||||
if not val:
|
if not val:
|
||||||
@ -870,7 +873,7 @@ class BrowseServer(object):
|
|||||||
continue
|
continue
|
||||||
if m['datatype'] == 'comments' or field == 'comments' or (
|
if m['datatype'] == 'comments' or field == 'comments' or (
|
||||||
m['datatype'] == 'composite' and
|
m['datatype'] == 'composite' and
|
||||||
m['display'].get('contains_html', False)):
|
m['display'].get('contains_html', False)):
|
||||||
val = mi.get(field, '')
|
val = mi.get(field, '')
|
||||||
if val and val.strip():
|
if val and val.strip():
|
||||||
comments.append((m['name'], comments_to_html(val)))
|
comments.append((m['name'], comments_to_html(val)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user