Convert NarrativeWeb report to use PrivateProxyDb.
svn: r8809
This commit is contained in:
@@ -1179,216 +1179,6 @@ def estimate_age_on_date(db, person, ddata=_TODAY):
|
||||
age = (-1, -1)
|
||||
return age
|
||||
|
||||
def sanitize_list(obj_list,exclude_private):
|
||||
"""
|
||||
Removes private objects from the list.
|
||||
|
||||
@param obj_list: objects that have a privacy flag
|
||||
@type obj_list: list
|
||||
@param exclude_private: indicates if objects marked private
|
||||
are eliminated from the list
|
||||
@type exclude_private: bool
|
||||
@returns: objects that match the privacy request
|
||||
@rtype: list
|
||||
"""
|
||||
if exclude_private:
|
||||
return [obj for obj in obj_list if not obj.get_privacy()]
|
||||
else:
|
||||
return obj_list
|
||||
|
||||
def sanitize_media_ref_list(db, media_ref_list, exclude_private):
|
||||
"""
|
||||
Removes private references and references to private objects
|
||||
from the list.
|
||||
|
||||
@param db: GRAMPS database to which the references belongs
|
||||
@type db: GrampsDbBase
|
||||
@param ref_list: references to objects that have a privacy flag
|
||||
@type ref_list: list
|
||||
@param exclude_private: indicates if objects marked private
|
||||
are eliminated from the list
|
||||
@type exclude_private: bool
|
||||
@returns: references to objects that match the privacy request
|
||||
@rtype: list
|
||||
"""
|
||||
if exclude_private == True:
|
||||
new_list = []
|
||||
for media_ref in media_ref_list:
|
||||
if media_ref.get_privacy() == False:
|
||||
handle = media_ref.get_reference_handle()
|
||||
media_object = db.get_object_from_handle(handle)
|
||||
if media_object.get_privacy() == False:
|
||||
new_list.append(media_ref)
|
||||
return new_list
|
||||
else:
|
||||
return media_ref_list
|
||||
|
||||
def sanitize_person(db,person):
|
||||
"""
|
||||
Creates a new Person instance based off the passed Person
|
||||
instance. The returned instance has all private records
|
||||
removed from it.
|
||||
|
||||
@param db: GRAMPS database to which the Person object belongs
|
||||
@type db: GrampsDbBase
|
||||
@param person: source Person object that will be copied with
|
||||
privacy records removed
|
||||
@type person: Person
|
||||
@returns: 'cleansed' Person object
|
||||
@rtype: Person
|
||||
"""
|
||||
new_person = RelLib.Person()
|
||||
|
||||
# copy gender
|
||||
new_person.set_gender(person.get_gender())
|
||||
new_person.set_gramps_id(person.get_gramps_id())
|
||||
new_person.set_handle(person.get_handle())
|
||||
|
||||
# copy names if not private
|
||||
name = person.get_primary_name()
|
||||
if name.get_privacy() or person.get_privacy():
|
||||
name = RelLib.Name()
|
||||
name.set_surname(_('Private'))
|
||||
|
||||
new_person.set_primary_name(name)
|
||||
# copy Family reference list
|
||||
for handle in person.get_family_handle_list():
|
||||
new_person.add_family_handle(handle)
|
||||
|
||||
# copy Family reference list
|
||||
for handle in person.get_parent_family_handle_list():
|
||||
family = db.get_family_from_handle(handle)
|
||||
child_ref_list = family.get_child_ref_list()
|
||||
for child_ref in child_ref_list:
|
||||
if child_ref.get_reference_handle() == person.get_handle():
|
||||
if child_ref.get_privacy() == False:
|
||||
new_person.add_parent_family_handle(handle)
|
||||
break
|
||||
|
||||
|
||||
if person.get_privacy():
|
||||
return new_person
|
||||
|
||||
for name in person.get_alternate_names():
|
||||
if not name.get_privacy():
|
||||
new_person.add_alternate_name(name)
|
||||
|
||||
# set complete flag
|
||||
new_person.set_marker(person.get_marker())
|
||||
|
||||
# copy event list
|
||||
for event_ref in person.get_event_ref_list():
|
||||
if event_ref and event_ref.get_privacy() == False:
|
||||
event = db.get_event_from_handle(event_ref.ref)
|
||||
if not event.get_privacy():
|
||||
new_person.add_event_ref(event_ref)
|
||||
|
||||
# Copy birth and death after event list to maintain the order.
|
||||
# copy birth event
|
||||
event_ref = person.get_birth_ref()
|
||||
if event_ref and event_ref.get_privacy() == False:
|
||||
event = db.get_event_from_handle(event_ref.ref)
|
||||
if not event.get_privacy():
|
||||
new_person.set_birth_ref(event_ref)
|
||||
|
||||
# copy death event
|
||||
event_ref = person.get_death_ref()
|
||||
if event_ref and event_ref.get_privacy() == False:
|
||||
event = db.get_event_from_handle(event_ref.ref)
|
||||
if not event.get_privacy():
|
||||
new_person.set_death_ref(event_ref)
|
||||
|
||||
# copy address list
|
||||
for address in person.get_address_list():
|
||||
if not address.get_privacy():
|
||||
new_person.add_address(RelLib.Address(address))
|
||||
|
||||
# copy attribute list
|
||||
for attribute in person.get_attribute_list():
|
||||
if not attribute.get_privacy():
|
||||
new_person.add_attribute(RelLib.Attribute(attribute))
|
||||
|
||||
# copy source references
|
||||
for ref in person.get_source_references():
|
||||
if not ref.get_privacy():
|
||||
handle = ref.get_reference_handle()
|
||||
source = db.get_source_from_handle(handle)
|
||||
if source.get_privacy() == False:
|
||||
new_person.add_source_reference(RelLib.SourceRef(ref))
|
||||
|
||||
# copy URL list
|
||||
for url in person.get_url_list():
|
||||
if not url.get_privacy():
|
||||
new_person.add_url(url)
|
||||
|
||||
# copy Media reference list
|
||||
clean_list = sanitize_media_ref_list(db,person.get_media_list(),True)
|
||||
for ref in clean_list:
|
||||
new_person.add_media_reference(RelLib.MediaRef(ref))
|
||||
|
||||
# LDS ordinances
|
||||
for lds_ord in person.get_lds_ord_list():
|
||||
lds_type = lds_ord.get_type()
|
||||
if lds_type == RelLib.LdsOrd.BAPTISM or \
|
||||
lds_type == RelLib.LdsOrd.ENDOWMENT or \
|
||||
lds_type == RelLib.LdsOrd.SEAL_TO_PARENTS or \
|
||||
lds_type == RelLib.LdsOrd.SEAL_TO_SPOUSE :
|
||||
new_person.add_lds_ord( lds_ord )
|
||||
|
||||
new_person.set_note_list(person.get_note_list())
|
||||
|
||||
return new_person
|
||||
|
||||
def dont_restrict(db,person):
|
||||
return person
|
||||
|
||||
def restrict_with_names(db,person):
|
||||
return restrict_person(db,person,False)
|
||||
|
||||
def restrict_no_names(db,person):
|
||||
return restrict_person(db,person,True)
|
||||
|
||||
def restrict_person(db,person,no_names=False):
|
||||
"""
|
||||
Creates a new Person instance based off the passed Person
|
||||
instance. The returned instance has all private records
|
||||
removed from it.
|
||||
|
||||
@param db: GRAMPS database to which the Person object belongs
|
||||
@type db: GrampsDbBase
|
||||
@param person: source Person object that will be copied with
|
||||
privacy records removed
|
||||
@type person: Person
|
||||
@returns: 'cleansed' Person object
|
||||
@rtype: Person
|
||||
"""
|
||||
new_person = RelLib.Person()
|
||||
|
||||
# copy gender
|
||||
new_person.set_gender(person.get_gender())
|
||||
new_person.set_gramps_id(person.get_gramps_id())
|
||||
new_person.set_handle(person.get_handle())
|
||||
|
||||
# copy names if not private
|
||||
if no_names:
|
||||
name = RelLib.Name()
|
||||
name.set_surname(_('Private'))
|
||||
else:
|
||||
name = person.get_primary_name()
|
||||
name.set_source_reference_list([])
|
||||
|
||||
new_person.set_primary_name(name)
|
||||
|
||||
# copy Family reference list
|
||||
for handle in person.get_family_handle_list():
|
||||
new_person.add_family_handle(handle)
|
||||
|
||||
# copy Family reference list
|
||||
for item in person.get_parent_family_handle_list():
|
||||
new_person.add_parent_family_handle(item[0],item[1],item[2])
|
||||
|
||||
return new_person
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Roman numbers
|
||||
|
Reference in New Issue
Block a user