From 79cb66b0f14f0b65643be6a1d3f64616af6ef8ac Mon Sep 17 00:00:00 2001 From: romjerome Date: Sat, 26 Nov 2016 12:56:43 +0100 Subject: [PATCH] 8555: Database repair tool always modify all source objects --- gramps/plugins/tool/check.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gramps/plugins/tool/check.py b/gramps/plugins/tool/check.py index 74f652c63..3965a2ca1 100644 --- a/gramps/plugins/tool/check.py +++ b/gramps/plugins/tool/check.py @@ -1962,6 +1962,7 @@ class CheckIntegrity: self.progress.step() source = self.db.get_source_from_handle(handle) new_media_ref_list = [] + citation_changed = False for media_ref in source.get_media_list(): citation_list = media_ref.get_citation_list() new_citation_list = [] @@ -1984,6 +1985,7 @@ class CheckIntegrity: citation_handle = create_id() new_citation.set_handle(citation_handle) self.replaced_sourceref.append(handle) + citation_changed = True logging.warning(' FAIL: the source "%s" has a media' ' reference with a source citation ' 'which is invalid', (source.gramps_id)) @@ -1994,8 +1996,9 @@ class CheckIntegrity: media_ref.set_citation_list(new_citation_list) new_media_ref_list.append(media_ref) - source.set_media_list(new_media_ref_list) - self.db.commit_source(source, self.trans) + if citation_changed: + source.set_media_list(new_media_ref_list) + self.db.commit_source(source, self.trans) if len(self.replaced_sourceref) > 0: logging.info(' OK: no broken source citations on mediarefs '