Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion gramps/gen/proxy/private.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
Address,
EventRef,
Person,
PersonRef,
Name,
Source,
RepoRef,
Expand Down Expand Up @@ -165,6 +166,7 @@ def get_note_from_handle(self, handle):
"""
note = self.db.get_note_from_handle(handle)
if note and not note.get_privacy():
# Nothing to sanitize in note object:
return note
return None

Expand Down Expand Up @@ -550,7 +552,8 @@ def copy_associations(db, original_obj, clean_obj):
if person_ref and not person_ref.get_privacy():
associated_person = db.get_person_from_handle(person_ref.ref)
if associated_person and not associated_person.get_privacy():
new_person_ref_list.append(person_ref)
new_person_ref = sanitize_person_ref(db, person_ref)
new_person_ref_list.append(new_person_ref)
clean_obj.set_person_ref_list(new_person_ref_list)


Expand Down Expand Up @@ -1176,3 +1179,16 @@ def sanitize_repository(db, repository):
copy_urls(db, repository, new_repository)

return new_repository


def sanitize_person_ref(db, person_ref: PersonRef) -> PersonRef:
"""
Given a PersonRef, sanitize it.
"""
new_person_ref = PersonRef()
new_person_ref.ref = person_ref.ref
new_person_ref.rel = person_ref.rel
new_person_ref.private = person_ref.private
copy_citation_ref_list(db, person_ref, new_person_ref)
copy_notes(db, person_ref, new_person_ref)
return new_person_ref