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):
|
def multisort(self, fields=[], subsort=False):
|
||||||
fields = [(self.sanitize_sort_field_name(x), bool(y)) for x, y in fields]
|
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]
|
fields = [x for x in fields if x[0] in keys]
|
||||||
if subsort and 'sort' not in [x[0] for x in fields]:
|
if subsort and 'sort' not in [x[0] for x in fields]:
|
||||||
fields += [('sort', True)]
|
fields += [('sort', True)]
|
||||||
|
@ -348,8 +348,10 @@ class FieldMetadata(dict):
|
|||||||
def keys(self):
|
def keys(self):
|
||||||
return self._tb_cats.keys()
|
return self._tb_cats.keys()
|
||||||
|
|
||||||
def field_keys(self):
|
def sortable_keys(self):
|
||||||
return [k for k in self._tb_cats.keys() if self._tb_cats[k]['kind']=='field']
|
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):
|
def iterkeys(self):
|
||||||
for key in self._tb_cats:
|
for key in self._tb_cats:
|
||||||
|
@ -56,7 +56,7 @@ class ContentServer(object):
|
|||||||
|
|
||||||
def sort(self, items, field, order):
|
def sort(self, items, field, order):
|
||||||
field = self.db.data.sanitize_sort_field_name(field)
|
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)
|
raise cherrypy.HTTPError(400, '%s is not a valid sort field'%field)
|
||||||
keyg = CSSortKeyGenerator([(field, order)], self.db.field_metadata)
|
keyg = CSSortKeyGenerator([(field, order)], self.db.field_metadata)
|
||||||
items.sort(key=keyg, reverse=not order)
|
items.sort(key=keyg, reverse=not order)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user