From 7918f0c075a240f2fd06d781193017625afaf2e9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 4 Jan 2011 08:57:20 -0700 Subject: [PATCH] Template language: Make all column names case insensitive --- src/calibre/ebooks/metadata/book/base.py | 5 +++-- src/calibre/utils/formatter.py | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index e3fb8092e6..77df6b00c2 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -38,15 +38,16 @@ class SafeFormat(TemplateFormatter): def get_value(self, key, args, kwargs): try: + key = key.lower() if key != 'title_sort': - key = field_metadata.search_term_to_field_key(key.lower()) + key = field_metadata.search_term_to_field_key(key) b = self.book.get_user_metadata(key, False) if b and b['datatype'] == 'int' and self.book.get(key, 0) == 0: v = '' elif b and b['datatype'] == 'float' and self.book.get(key, 0.0) == 0.0: v = '' else: - ign, v = self.book.format_field(key.lower(), series_with_index=False) + ign, v = self.book.format_field(key, series_with_index=False) if v is None: return '' if v == '': diff --git a/src/calibre/utils/formatter.py b/src/calibre/utils/formatter.py index 4e9710ad14..f4e687b419 100644 --- a/src/calibre/utils/formatter.py +++ b/src/calibre/utils/formatter.py @@ -468,6 +468,7 @@ class EvalFormatter(TemplateFormatter): A template formatter that uses a simple dict instead of an mi instance ''' def get_value(self, key, args, kwargs): + key = key.lower() return kwargs.get(key, _('No such variable ') + key) eval_formatter = EvalFormatter()