This commit is contained in:
Kovid Goyal 2016-02-17 16:29:36 +05:30
parent 6cadb702e9
commit 25875f8356

View File

@ -36,7 +36,7 @@ def get_preferred_format(metadata, output_format, input_formats):
break
return fmt.toUpperCase()
IGNORED_FIELDS = {'title', 'id', 'urls_from_identifiers', 'lang_names', 'last_modified'}
IGNORED_FIELDS = {'title', 'sort', 'uuid', 'id', 'urls_from_identifiers', 'lang_names', 'last_modified'}
default_sort = {f:i+1 for i, f in enumerate(('title', 'title_sort', 'authors', 'author_sort', 'series', 'rating', 'pubdate', 'tags', 'timestamp', 'pubdate', 'identifiers', 'languages', 'publisher', 'last_modified'))}
default_sort['formats'] = 999
@ -73,7 +73,7 @@ def render_metadata(mi, interface_data, table, field_list=None):
return True
fields = field_list or sorted(filter(allowed_fields, mi), key=field_sorter(interface_data.field_metadata))
comments = []
comments = {}
def add_row(name, val, is_searchable=False, is_html=False, join=None):
def add_val(v):
@ -81,7 +81,7 @@ def render_metadata(mi, interface_data, table, field_list=None):
v += ''
if is_searchable:
table.lastChild.lastChild.appendChild(E.a(
data_search=JSON.stringify([name, v]), onclick=execute_search,
data_search=JSON.stringify([is_searchable, v]), onclick=execute_search,
title=str.format(_('Click to see books with {0}: {1}'), name, v), href='javascript: void(0)', v))
else:
if v.appendChild:
@ -107,15 +107,15 @@ def render_metadata(mi, interface_data, table, field_list=None):
return
if fm.is_multiple and fm.is_multiple.list_to_ui:
all_vals = filter(None, map(str.strip, str.split(val, fm.is_multiple.list_to_ui)))
add_row(name, all_vals, is_searchable=True, join=fm.is_multiple.list_to_ui)
add_row(name, all_vals, is_searchable=field, join=fm.is_multiple.list_to_ui)
else:
add_row(name, val, is_searchable=True)
add_row(name, val, is_searchable=field)
def process_authors(field, fm, name, val):
add_row(name, val, is_searchable=True, join=' & ')
add_row(name, val, is_searchable=field, join=' & ')
def process_publisher(field, fm, name, val):
add_row(name, val, is_searchable=True)
add_row(name, val, is_searchable=field)
def process_formats(field, fm, name, val):
table.appendChild(E.tr(E.td(name + ':'), E.td()))
@ -190,7 +190,7 @@ def render_metadata(mi, interface_data, table, field_list=None):
ival = fmt_sidx(ival, use_roman=interface_data.use_roman_numerals_for_series_number)
table.appendChild(E.tr(E.td(name + ':'), E.td()))
table.lastChild.lastChild.appendChild(E.span(ival, _(' of '), E.a(
data_search=JSON.stringify([name, val]), onclick=execute_search,
data_search=JSON.stringify([field, val]), onclick=execute_search,
title=str.format(_('Click to see books with {0}: {1}'), name, val), href='javascript: void(0)', val)))
def process_field(field, fm):
@ -198,7 +198,7 @@ def render_metadata(mi, interface_data, table, field_list=None):
datatype = fm.datatype
val = mi[field]
if field == 'comments' or datatype == 'comments':
comments.append(val)
comments[field] = val
return
func = None
if datatype == 'composite':
@ -222,7 +222,9 @@ def render_metadata(mi, interface_data, table, field_list=None):
if func:
func(field, fm, name, val)
else:
pass
if datatype == 'text':
join = fm.is_multiple.list_to_ui if fm.is_multiple else None
add_row(name, val, join=join, is_searchable=field)
for field in fields:
fm = interface_data.field_metadata[field]
@ -234,7 +236,9 @@ def render_metadata(mi, interface_data, table, field_list=None):
print('Failed to render metadata field: ' + field)
print(err.toString())
print(err.stack)
for i, comment in enumerate(comments):
for i, field in enumerate(sorted(comments)):
comment = comments[field]
div = E.div()
div.innerHTML = comment
table.parentNode.appendChild(div)