mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Merge branch 'master' of https://github.com/cbhaley/calibre
This commit is contained in:
commit
1eea54d6b5
@ -118,12 +118,14 @@ def clean_user_categories(dbcache):
|
||||
numeric_collation = prefs['numeric_collation']
|
||||
|
||||
|
||||
def first_digit(x):
|
||||
c = icu_upper(x.sort or x.name or ' ')[0]
|
||||
def sort_key_for_name_and_first_letter(x):
|
||||
v1 = icu_upper(x.sort or x.name)
|
||||
v2 = v1 or ' '
|
||||
# The idea is that '9999999999' is larger than any digit so all digits
|
||||
# will sort in front. Non-digits will sort according to their ICU first letter
|
||||
return c if numeric_collation and c.isdigit() else '9999999999'
|
||||
|
||||
c = v2[0]
|
||||
return (c if numeric_collation and c.isdigit() else '9999999999',
|
||||
collation_order(v2), sort_key(v1))
|
||||
|
||||
category_sort_keys = {True:{}, False: {}}
|
||||
category_sort_keys[True]['popularity'] = category_sort_keys[False]['popularity'] = \
|
||||
@ -131,7 +133,7 @@ category_sort_keys[True]['popularity'] = category_sort_keys[False]['popularity']
|
||||
category_sort_keys[True]['rating'] = category_sort_keys[False]['rating'] = \
|
||||
lambda x:(-getattr(x, 'avg_rating', 0.0), sort_key(x.sort or x.name))
|
||||
category_sort_keys[True]['name'] = \
|
||||
lambda x:(first_digit(x), collation_order(icu_upper(x.sort or x.name or ' ')), sort_key(x.sort or x.name))
|
||||
sort_key_for_name_and_first_letter
|
||||
category_sort_keys[False]['name'] = \
|
||||
lambda x:sort_key(x.sort or x.name)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user