Fix two problems in bulk search/replace:

1) S/R of datetime fields generated an exception
2) Using {template} as a source generated an error until the destination field was filled in.
This commit is contained in:
Charles Haley 2013-12-01 12:40:16 +01:00
parent a87092ba4f
commit e87281a8d2

View File

@ -585,6 +585,8 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
fm = self.db.metadata_for_field(field) fm = self.db.metadata_for_field(field)
if field == 'sort': if field == 'sort':
val = mi.get('title_sort', None) val = mi.get('title_sort', None)
elif fm['datatype'] == 'datetime':
val = mi.format_field(field)[1]
else: else:
val = mi.get(field, None) val = mi.get(field, None)
if isinstance(val, (int, float, bool)): if isinstance(val, (int, float, bool)):
@ -731,8 +733,10 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
return '' return ''
dest = self.s_r_df_itemdata(None) dest = self.s_r_df_itemdata(None)
if dest == '': if dest == '':
if self.db.metadata_for_field(src)['datatype'] == 'composite': if (src == '{template}' or
raise Exception(_('You must specify a destination when source is a composite field')) self.db.metadata_for_field(src)['datatype'] == 'composite'):
raise Exception(_('You must specify a destination when source is '
'a composite field or a template'))
dest = src dest = src
dest_mode = self.replace_mode.currentIndex() dest_mode = self.replace_mode.currentIndex()