mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Refactor to make the template rendering logic its own function
This commit is contained in:
parent
066b749ebb
commit
1d96946752
@ -405,7 +405,7 @@ class Cache(object):
|
||||
if mi is None:
|
||||
return f.get_value_with_cache(book_id, self._get_proxy_metadata)
|
||||
else:
|
||||
return f.render_composite(book_id, mi)
|
||||
return f.render_composite_with_cache(book_id, mi, mi.formatter, mi.template_cache)
|
||||
|
||||
@read_api
|
||||
def field_ids_for(self, name, book_id):
|
||||
|
@ -253,10 +253,7 @@ class CompositeField(OneToOneField):
|
||||
def bool_sort_key(self, val):
|
||||
return self._bool_sort_key(force_to_bool(val))
|
||||
|
||||
def render_composite_with_cache(self, book_id, mi, formatter, template_cache):
|
||||
with self._lock:
|
||||
ans = self._render_cache.get(book_id, None)
|
||||
if ans is None:
|
||||
def render_composite(self, book_id, mi, formatter, template_cache):
|
||||
ans = formatter.safe_format(
|
||||
self.metadata['display']['composite_template'], mi, _('TEMPLATE ERROR'),
|
||||
mi, column_name=self._composite_name, template_cache=template_cache).strip()
|
||||
@ -264,13 +261,11 @@ class CompositeField(OneToOneField):
|
||||
self._render_cache[book_id] = ans
|
||||
return ans
|
||||
|
||||
def render_composite(self, book_id, mi):
|
||||
def render_composite_with_cache(self, book_id, mi, formatter, template_cache):
|
||||
with self._lock:
|
||||
ans = self._render_cache.get(book_id, None)
|
||||
if ans is None:
|
||||
ans = mi.get(self._composite_name)
|
||||
with self._lock:
|
||||
self._render_cache[book_id] = ans
|
||||
return self.render_composite(book_id, mi, formatter, template_cache)
|
||||
return ans
|
||||
|
||||
def clear_caches(self, book_ids=None):
|
||||
@ -286,9 +281,7 @@ class CompositeField(OneToOneField):
|
||||
ans = self._render_cache.get(book_id, None)
|
||||
if ans is None:
|
||||
mi = get_metadata(book_id)
|
||||
ans = mi.get(self._composite_name)
|
||||
with self._lock:
|
||||
self._render_cache[book_id] = ans
|
||||
return self.render_composite(book_id, mi, mi.formatter, mi.template_cache)
|
||||
return ans
|
||||
|
||||
def sort_keys_for_books(self, get_metadata, lang_map):
|
||||
|
Loading…
x
Reference in New Issue
Block a user