mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Small cleanup of composite field code.
This commit is contained in:
parent
7881286274
commit
83fc5b2cc0
@ -46,7 +46,10 @@ composite_formatter = SafeFormat()
|
|||||||
compress_spaces = re.compile(r'\s+')
|
compress_spaces = re.compile(r'\s+')
|
||||||
|
|
||||||
def format_composite(x, mi):
|
def format_composite(x, mi):
|
||||||
ans = composite_formatter.vformat(x, [], mi).strip()
|
try:
|
||||||
|
ans = composite_formatter.vformat(x, [], mi).strip()
|
||||||
|
except:
|
||||||
|
ans = x
|
||||||
return compress_spaces.sub(' ', ans)
|
return compress_spaces.sub(' ', ans)
|
||||||
|
|
||||||
class Metadata(object):
|
class Metadata(object):
|
||||||
@ -86,7 +89,10 @@ class Metadata(object):
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass
|
pass
|
||||||
if field in _data['user_metadata'].iterkeys():
|
if field in _data['user_metadata'].iterkeys():
|
||||||
return _data['user_metadata'][field]['#value#']
|
d = _data['user_metadata'][field]
|
||||||
|
if d['datatype'] != 'composite':
|
||||||
|
return d['#value#']
|
||||||
|
return format_composite(d['display']['composite_template'], self)
|
||||||
raise AttributeError(
|
raise AttributeError(
|
||||||
'Metadata object has no attribute named: '+ repr(field))
|
'Metadata object has no attribute named: '+ repr(field))
|
||||||
|
|
||||||
@ -386,8 +392,6 @@ class Metadata(object):
|
|||||||
res = format_date(res, cmeta['display'].get('date_format','dd MMM yyyy'))
|
res = format_date(res, cmeta['display'].get('date_format','dd MMM yyyy'))
|
||||||
elif datatype == 'bool':
|
elif datatype == 'bool':
|
||||||
res = _('Yes') if res else _('No')
|
res = _('Yes') if res else _('No')
|
||||||
elif datatype == 'composite':
|
|
||||||
res = format_composite(cmeta['display']['composite_template'], self)
|
|
||||||
return (name, res, orig_res, cmeta)
|
return (name, res, orig_res, cmeta)
|
||||||
|
|
||||||
if key in field_metadata and field_metadata[key]['kind'] == 'field':
|
if key in field_metadata and field_metadata[key]['kind'] == 'field':
|
||||||
|
@ -605,7 +605,7 @@ class BooksModel(QAbstractTableModel): # {{{
|
|||||||
|
|
||||||
def composite_type(r, key=None):
|
def composite_type(r, key=None):
|
||||||
mi = self.get_cached_metadata(r)
|
mi = self.get_cached_metadata(r)
|
||||||
return QVariant(mi.format_field(key)[1])
|
return QVariant(mi.get(key, ''))
|
||||||
|
|
||||||
self.dc = {
|
self.dc = {
|
||||||
'title' : functools.partial(text_type,
|
'title' : functools.partial(text_type,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user