Local Update src

This commit is contained in:
Starson17 2010-07-18 16:23:37 -04:00
parent abed2f1480
commit c724ec4f2f

View File

@ -806,11 +806,11 @@ class EditMetadataAction(object): # {{{
for src_id in src_ids: for src_id in src_ids:
src_mi = db.get_metadata(src_id, index_is_id=True, get_cover=True) src_mi = db.get_metadata(src_id, index_is_id=True, get_cover=True)
if src_mi.comments and orig_dest_comments != src_mi.comments: if src_mi.comments and orig_dest_comments != src_mi.comments:
if not dest_mi.comments or len(dest_mi.comments) == 0: if not dest_mi.comments:
dest_mi.comments = src_mi.comments dest_mi.comments = src_mi.comments
else: else:
dest_mi.comments = unicode(dest_mi.comments) + u'\n\n' + unicode(src_mi.comments) dest_mi.comments = unicode(dest_mi.comments) + u'\n\n' + unicode(src_mi.comments)
if src_mi.title and src_mi.title and (not dest_mi.title or if src_mi.title and (not dest_mi.title or
dest_mi.title == _('Unknown')): dest_mi.title == _('Unknown')):
dest_mi.title = src_mi.title dest_mi.title = src_mi.title
if src_mi.title and (not dest_mi.authors or dest_mi.authors[0] == if src_mi.title and (not dest_mi.authors or dest_mi.authors[0] ==
@ -821,8 +821,7 @@ class EditMetadataAction(object): # {{{
if not dest_mi.tags: if not dest_mi.tags:
dest_mi.tags = src_mi.tags dest_mi.tags = src_mi.tags
else: else:
for tag in src_mi.tags: dest_mi.tags.extend(src_mi.tags)
dest_mi.tags.append(tag)
if src_mi.cover and not dest_mi.cover: if src_mi.cover and not dest_mi.cover:
dest_mi.cover = src_mi.cover dest_mi.cover = src_mi.cover
if not dest_mi.publisher: if not dest_mi.publisher:
@ -833,6 +832,44 @@ class EditMetadataAction(object): # {{{
dest_mi.series = src_mi.series dest_mi.series = src_mi.series
dest_mi.series_index = src_mi.series_index dest_mi.series_index = src_mi.series_index
db.set_metadata(dest_id, dest_mi, ignore_errors=False) db.set_metadata(dest_id, dest_mi, ignore_errors=False)
for key in db.field_metadata: #loop thru all defined fields
if db.field_metadata[key]['is_custom']:
colnum = db.field_metadata[key]['colnum']
# Get orig_dest_comments before it gets changed
if db.field_metadata[key]['datatype'] == 'comments':
orig_dest_value = db.get_custom(dest_id, num=colnum, index_is_id=True)
for src_id in src_ids:
dest_value = db.get_custom(dest_id, num=colnum, index_is_id=True)
src_value = db.get_custom(src_id, num=colnum, index_is_id=True)
if db.field_metadata[key]['datatype'] == 'comments':
if src_value and src_value != orig_dest_value:
if not dest_value:
db.set_custom(dest_id, src_value, num=colnum)
else:
dest_value = unicode(dest_value) + u'\n\n' + unicode(src_value)
db.set_custom(dest_id, dest_value, num=colnum)
if db.field_metadata[key]['datatype'] in \
('bool', 'int', 'float', 'rating', 'datetime') \
and not dest_value:
db.set_custom(dest_id, src_value, num=colnum)
if db.field_metadata[key]['datatype'] == 'series' \
and not dest_value:
if src_value:
src_index = db.get_custom_extra(src_id, num=colnum, index_is_id=True)
db.set_custom(dest_id, src_value, num=colnum, extra=src_index)
if db.field_metadata[key]['datatype'] == 'text' \
and not db.field_metadata[key]['is_multiple'] \
and not dest_value:
db.set_custom(dest_id, src_value, num=colnum)
if db.field_metadata[key]['datatype'] == 'text' \
and db.field_metadata[key]['is_multiple']:
if src_value:
if not dest_value:
dest_value = src_value
else:
dest_value.extend(src_value)
db.set_custom(dest_id, dest_value, num=colnum)
# }}} # }}}
def edit_device_collections(self, view, oncard=None): def edit_device_collections(self, view, oncard=None):