Sort is_multiple composite columns when displaying them in the book list

This commit is contained in:
Kovid Goyal 2013-08-25 11:52:15 +05:30
parent 7c9b460f52
commit 167d44f234

View File

@ -683,9 +683,19 @@ class BooksModel(QAbstractTableModel): # {{{
def func(idx):
return by if fffunc(field_obj, idfunc(idx)) else bb
elif dt in {'text', 'comments', 'composite', 'enumeration'}:
if m['is_multiple'] and not field_obj.is_composite:
if m['is_multiple']:
jv = m['is_multiple']['list_to_ui']
do_sort = '&' not in jv
if field_obj.is_composite:
if do_sort:
sv = m['is_multiple']['cache_to_list']
def func(idx):
val = fffunc(field_obj, idfunc(idx), default_value='') or ''
return QVariant(jv.join(sorted((x.strip() for x in val.split(sv)), key=sort_key)))
else:
def func(idx):
return QVariant(fffunc(field_obj, idfunc(idx), default_value=''))
else:
if do_sort:
def func(idx):
return QVariant(jv.join(sorted(fffunc(field_obj, idfunc(idx), default_value=()), key=sort_key)))