From 845cfce36082e8cb5d5b611394cdf4286cb4dc31 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Wed, 15 Oct 2014 18:22:07 +0200 Subject: [PATCH] Bug 1381323: composite columns aren't links in book details --- src/calibre/ebooks/metadata/book/render.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/calibre/ebooks/metadata/book/render.py b/src/calibre/ebooks/metadata/book/render.py index eea0970ced..f54abc72e6 100644 --- a/src/calibre/ebooks/metadata/book/render.py +++ b/src/calibre/ebooks/metadata/book/render.py @@ -92,13 +92,25 @@ def mi_to_html(mi, field_list=None, default_author_link=None, use_roman_numbers= u'%s%s'%( name, rating_font, u'\u2605'*int(val)))) - elif metadata['datatype'] == 'composite' and \ - metadata['display'].get('contains_html', False): + elif metadata['datatype'] == 'composite': val = getattr(mi, field) if val: val = force_unicode(val) - ans.append((field, - row % (name, comments_to_html(val)))) + if metadata['display'].get('contains_html', False): + ans.append((field, row % (name, comments_to_html(val)))) + else: + if not metadata['is_multiple']: + val = '%s' % ( + search_href(field, val), + _('Click to see books with {0}: {1}').format(metadata['name'], val), val) + else: + all_vals = [v.strip() + for v in val.split(metadata['is_multiple']['list_to_ui']) if v.strip()] + links = ['%s' % ( + search_href(field, x), _('Click to see books with {0}: {1}').format( + metadata['name'], a(x)), p(x)) for x in all_vals] + val = metadata['is_multiple']['list_to_ui'].join(links) + ans.append((field, row % (name, val))) elif field == 'path': if mi.path: path = force_unicode(mi.path, filesystem_encoding)