Fixes #1950758 [Book details: Adjustments to search when clicking on a datetime column](https://bugs.launchpad.net/calibre/+bug/1950758)
This commit is contained in:
Kovid Goyal 2021-11-12 17:23:44 +05:30
commit 51478dd24e
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -16,7 +16,7 @@ from calibre.constants import filesystem_encoding
from calibre.library.comments import comments_to_html, markdown from calibre.library.comments import comments_to_html, markdown
from calibre.utils.icu import sort_key from calibre.utils.icu import sort_key
from calibre.utils.formatter import EvalFormatter from calibre.utils.formatter import EvalFormatter
from calibre.utils.date import is_date_undefined from calibre.utils.date import is_date_undefined, format_date
from calibre.utils.localization import calibre_langcode_to_name from calibre.utils.localization import calibre_langcode_to_name
from calibre.utils.serialize import json_dumps from calibre.utils.serialize import json_dumps
from polyglot.binary import as_hex_unicode from polyglot.binary import as_hex_unicode
@ -281,9 +281,15 @@ def mi_to_html(
aval = getattr(mi, field) aval = getattr(mi, field)
if is_date_undefined(aval): if is_date_undefined(aval):
continue continue
val = '<a href="%s" title="%s">%s</a>' % ( aval = format_date(aval, 'yyyy-MM-dd')
search_action_with_data(field, str(aval), book_id, None, original_value=val), a( if val == aval:
_('Click to see books with {0}: {1} (derived from {2})').format( val = '<a href="%s" title="%s">%s</a>' % (
search_action_with_data(field, str(aval), book_id, None, original_value=val), a(
_('Click to see books with {0}: {1}').format(metadata['name'] or field, val)), val)
else:
val = '<a href="%s" title="%s">%s</a>' % (
search_action_with_data(field, str(aval), book_id, None, original_value=val), a(
_('Click to see books with {0}: {1} (derived from {2})').format(
metadata['name'] or field, aval, val)), val) metadata['name'] or field, aval, val)), val)
elif metadata['datatype'] == 'text' and metadata['is_multiple']: elif metadata['datatype'] == 'text' and metadata['is_multiple']:
try: try: