mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Change field_keys to sortable_keys
This commit is contained in:
parent
354db58545
commit
16266c6e70
@ -621,7 +621,7 @@ class ResultCache(SearchQueryParser):
|
||||
|
||||
def multisort(self, fields=[], subsort=False):
|
||||
fields = [(self.sanitize_sort_field_name(x), bool(y)) for x, y in fields]
|
||||
keys = self.field_metadata.field_keys()
|
||||
keys = self.field_metadata.sortable_keys()
|
||||
fields = [x for x in fields if x[0] in keys]
|
||||
if subsort and 'sort' not in [x[0] for x in fields]:
|
||||
fields += [('sort', True)]
|
||||
|
@ -348,8 +348,10 @@ class FieldMetadata(dict):
|
||||
def keys(self):
|
||||
return self._tb_cats.keys()
|
||||
|
||||
def field_keys(self):
|
||||
return [k for k in self._tb_cats.keys() if self._tb_cats[k]['kind']=='field']
|
||||
def sortable_keys(self):
|
||||
return [k for k in self._tb_cats.keys()
|
||||
if self._tb_cats[k]['kind']=='field' and
|
||||
self._tb_cats[k]['datatype'] is not None]
|
||||
|
||||
def iterkeys(self):
|
||||
for key in self._tb_cats:
|
||||
|
@ -56,7 +56,7 @@ class ContentServer(object):
|
||||
|
||||
def sort(self, items, field, order):
|
||||
field = self.db.data.sanitize_sort_field_name(field)
|
||||
if field not in self.db.field_metadata.field_keys():
|
||||
if field not in self.db.field_metadata.sortable_keys():
|
||||
raise cherrypy.HTTPError(400, '%s is not a valid sort field'%field)
|
||||
keyg = CSSortKeyGenerator([(field, order)], self.db.field_metadata)
|
||||
items.sort(key=keyg, reverse=not order)
|
||||
|
Loading…
x
Reference in New Issue
Block a user