Use new iter_objects methods

svn: r13203
This commit is contained in:
Gerald Britton 2009-09-14 20:50:25 +00:00
parent 5001b771b5
commit 966d2bcd42
20 changed files with 98 additions and 171 deletions

View File

@ -67,10 +67,9 @@ class IsAncestorOfFilterMatch(IsAncestorOf,MatchesFilter):
filt = MatchesFilter(self.list[0:1]) filt = MatchesFilter(self.list[0:1])
filt.prepare(db) filt.prepare(db)
for person_handle in db.iter_person_handles(): for person in db.iter_people():
person = db.get_person_from_handle( person_handle) if filt.apply(db, person):
if filt.apply (db, person): self.init_ancestor_list(db, person, first)
self.init_ancestor_list (db,person,first)
filt.reset() filt.reset()
def reset(self): def reset(self):

View File

@ -53,10 +53,9 @@ class IsChildOfFilterMatch(MatchesFilter):
self.map = {} self.map = {}
filt = MatchesFilter(self.list) filt = MatchesFilter(self.list)
filt.prepare(db) filt.prepare(db)
for person_handle in db.iter_person_handles(): for person in db.iter_people():
person = db.get_person_from_handle( person_handle) if filt.apply(db, person):
if filt.apply (db, person): self.init_list(person)
self.init_list (person)
filt.reset() filt.reset()
def reset(self): def reset(self):

View File

@ -67,10 +67,9 @@ class IsDescendantOfFilterMatch(IsDescendantOf,MatchesFilter):
filt = MatchesFilter(self.list[0:1]) filt = MatchesFilter(self.list[0:1])
filt.prepare(db) filt.prepare(db)
for person_handle in db.iter_person_handles(): for person in db.iter_people():
person = db.get_person_from_handle( person_handle) if filt.apply(db, person):
if filt.apply (db, person): self.init_list(person, first)
self.init_list (person,first)
filt.reset() filt.reset()
def reset(self): def reset(self):

View File

@ -53,10 +53,9 @@ class IsParentOfFilterMatch(MatchesFilter):
self.map = {} self.map = {}
filt = MatchesFilter(self.list) filt = MatchesFilter(self.list)
filt.prepare(db) filt.prepare(db)
for person_handle in db.iter_person_handles(): for person in db.iter_people():
person = db.get_person_from_handle(person_handle) if filt.apply(db, person):
if filt.apply (db, person): self.init_list(person)
self.init_list (person)
filt.reset() filt.reset()
def reset(self): def reset(self):
@ -68,6 +67,6 @@ class IsParentOfFilterMatch(MatchesFilter):
def init_list(self,person): def init_list(self,person):
for fam_id in person.get_parent_family_handle_list(): for fam_id in person.get_parent_family_handle_list():
fam = self.db.get_family_from_handle(fam_id) fam = self.db.get_family_from_handle(fam_id)
for parent_id in [fam.get_father_handle (), fam.get_mother_handle ()]: for parent_id in [fam.get_father_handle(), fam.get_mother_handle()]:
if parent_id: if parent_id:
self.map[parent_id] = 1 self.map[parent_id] = 1

View File

@ -161,22 +161,21 @@ class MergePlaces(ManagedWindow.ManagedWindow):
# replace references in other objetcs # replace references in other objetcs
# people # people
for handle in self.db.iter_person_handles(): for person in self.db.iter_people():
person = self.db.get_person_from_handle(handle)
if person.has_handle_reference('Place',self.old_handle): if person.has_handle_reference('Place',self.old_handle):
person.replace_handle_reference('Place', person.replace_handle_reference('Place',
self.old_handle,self.new_handle) self.old_handle,self.new_handle)
self.db.commit_person(person,trans) self.db.commit_person(person,trans)
# families # families
for handle in self.db.iter_family_handles(): for family in self.db.iter_families():
family = self.db.get_family_from_handle(handle)
if family.has_handle_reference('Place',self.old_handle): if family.has_handle_reference('Place',self.old_handle):
family.replace_handle_reference('Place', family.replace_handle_reference('Place',
self.old_handle,self.new_handle) self.old_handle,self.new_handle)
self.db.commit_family(family,trans) self.db.commit_family(family,trans)
# events # events
for handle in self.db.get_event_handles(): for event in self.db.iter_events():
event = self.db.get_event_from_handle(handle)
if event.has_handle_reference('Place',self.old_handle): if event.has_handle_reference('Place',self.old_handle):
event.replace_handle_reference('Place', event.replace_handle_reference('Place',
self.old_handle,self.new_handle) self.old_handle,self.new_handle)

View File

@ -165,48 +165,42 @@ class MergeSources(ManagedWindow.ManagedWindow):
# replace handles # replace handles
# people # people
for handle in self.db.iter_person_handles(): for person in self.db.iter_people():
person = self.db.get_person_from_handle(handle)
if person.has_source_reference(self.old_handle): if person.has_source_reference(self.old_handle):
person.replace_source_references(self.old_handle, person.replace_source_references(self.old_handle,
self.new_handle) self.new_handle)
self.db.commit_person(person,trans) self.db.commit_person(person,trans)
# family # family
for handle in self.db.iter_family_handles(): for family in self.db.iter_families():
family = self.db.get_family_from_handle(handle)
if family.has_source_reference(self.old_handle): if family.has_source_reference(self.old_handle):
family.replace_source_references(self.old_handle, family.replace_source_references(self.old_handle,
self.new_handle) self.new_handle)
self.db.commit_family(family,trans) self.db.commit_family(family,trans)
# events # events
for handle in self.db.get_event_handles(): for event in self.db.iter_events():
event = self.db.get_event_from_handle(handle)
if event.has_source_reference(self.old_handle): if event.has_source_reference(self.old_handle):
event.replace_source_references(self.old_handle, event.replace_source_references(self.old_handle,
self.new_handle) self.new_handle)
self.db.commit_event(event,trans) self.db.commit_event(event,trans)
# sources # sources
for handle in self.db.get_source_handles(): for source in self.db.iter_sources():
source = self.db.get_source_from_handle(handle)
if source.has_source_reference(self.old_handle): if source.has_source_reference(self.old_handle):
source.replace_source_references(self.old_handle, source.replace_source_references(self.old_handle,
self.new_handle) self.new_handle)
self.db.commit_source(source,trans) self.db.commit_source(source,trans)
# places # places
for handle in self.iter.get_place_handles(): for place in self.db.iter_places():
place = self.db.get_place_from_handle(handle)
if place.has_source_reference(self.old_handle): if place.has_source_reference(self.old_handle):
place.replace_source_references(self.old_handle, place.replace_source_references(self.old_handle,
self.new_handle) self.new_handle)
self.db.commit_place(place,trans) self.db.commit_place(place,trans)
# media # media
for handle in self.db.get_media_object_handles(): for obj in self.db.iter_media_objects():
obj = self.db.get_object_from_handle(handle)
if obj.has_source_reference(self.old_handle): if obj.has_source_reference(self.old_handle):
obj.replace_source_references(self.old_handle, obj.replace_source_references(self.old_handle,
self.new_handle) self.new_handle)

View File

@ -111,9 +111,8 @@ class LastNameDialog(ManagedWindow.ManagedWindow):
progress = ProgressMeter(_('Finding Surnames')) progress = ProgressMeter(_('Finding Surnames'))
progress.set_pass(_('Finding surnames'), progress.set_pass(_('Finding surnames'),
database.get_number_of_people()) database.get_number_of_people())
for person_handle in database.iter_person_handles(): for person in database.iter_people():
progress.step() progress.step()
person = database.get_person_from_handle(person_handle)
key = person.get_primary_name().get_surname() key = person.get_primary_name().get_surname()
count = 0 count = 0
if key in surnames: if key in surnames:

View File

@ -82,7 +82,7 @@ def _validate_options(options, dbase):
if not person: if not person:
person = dbase.get_default_person() person = dbase.get_default_person()
if not person: if not person:
phandle = dbase.get_person_handles()[0] phandle = dbase.iter_person_handles().next()
person = dbase.get_person_from_handle(phandle) person = dbase.get_person_from_handle(phandle)
if not person: if not person:
print "ERROR: Please specify a person" print "ERROR: Please specify a person"
@ -101,8 +101,7 @@ def _validate_options(options, dbase):
if family_list: if family_list:
family_handle = family_list[0] family_handle = family_list[0]
else: else:
for family_handle in dbase.iter_family_handles(): family_handle = dbase.iter_family_handles().next()
break
if family_handle: if family_handle:
family = dbase.get_family_from_handle(family_handle) family = dbase.get_family_from_handle(family_handle)
option.set_value(family.get_gramps_id()) option.set_value(family.get_gramps_id())
@ -237,8 +236,7 @@ class CommandLineReport(object):
self.options_help[name].append(id_list) self.options_help[name].append(id_list)
elif isinstance(option, FamilyOption): elif isinstance(option, FamilyOption):
id_list = [] id_list = []
for fhandle in self.database.iter_family_handles(): for family in self.database.iter_families():
family = self.database.get_family_from_handle(fhandle)
mname = "" mname = ""
fname = "" fname = ""
mhandle = family.get_mother_handle() mhandle = family.get_mother_handle()

View File

@ -165,29 +165,25 @@ class BSDDBTxn(object):
""" """
Returns the data object associated with key Returns the data object associated with key
""" """
if txn == None: txn = self.txn return self.db.get(key, default, txn or self.txn, **kwargs)
return self.db.get(key, default, txn, **kwargs)
def pget(self, key, default=None, txn=None, **kwargs): def pget(self, key, default=None, txn=None, **kwargs):
""" """
Returns the primary key, given the secondary one, and associated data Returns the primary key, given the secondary one, and associated data
""" """
if txn == None: txn = self.txn return self.db.pget(key, default, txn or self.txn, **kwargs)
return self.db.pget(key, default, txn, **kwargs)
def put(self, key, data, txn=None, **kwargs): def put(self, key, data, txn=None, **kwargs):
""" """
Stores the key/data pair in the database Stores the key/data pair in the database
""" """
if txn == None: txn = self.txn return self.db.put(key, data, txn or self.txn, **kwargs)
return self.db.put(key, data, txn, **kwargs)
def delete(self, key, txn=None, **kwargs): def delete(self, key, txn=None, **kwargs):
""" """
Removes a key/data pair from the database Removes a key/data pair from the database
""" """
if txn == None: txn = self.txn self.db.delete(key, txn or self.txn, **kwargs)
self.db.delete(key, txn, **kwargs)
# test code # test code
if __name__ == "__main__": if __name__ == "__main__":

View File

@ -126,8 +126,7 @@ def _initialize_options(options, dbstate):
if family_list: if family_list:
family_handle = family_list[0] family_handle = family_list[0]
else: else:
for family_handle in dbase.iter_family_handles(): family_handle = dbase.iter_family_handles().next()
break
family = dbase.get_family_from_handle(family_handle) family = dbase.get_family_from_handle(family_handle)
option.set_value(family.get_gramps_id()) option.set_value(family.get_gramps_id())

View File

@ -84,10 +84,9 @@ class AgeStatsGramplet(Gramplet):
mother_handles = [[] for age in range(self.max_mother_diff)] mother_handles = [[] for age in range(self.max_mother_diff)]
father_handles = [[] for age in range(self.max_father_diff)] father_handles = [[] for age in range(self.max_father_diff)]
text = "" text = ""
handles = self.dbstate.db.iter_person_handles()
for h in handles: for p in self.dbstate.db.iter_people():
yield True yield True
p = self.dbstate.db.get_person_from_handle(h)
# if birth_date and death_date, compute age # if birth_date and death_date, compute age
birth_ref = p.get_birth_ref() birth_ref = p.get_birth_ref()
birth_date = None birth_date = None
@ -103,7 +102,7 @@ class AgeStatsGramplet(Gramplet):
age = death_date.get_year() - birth_date.get_year() age = death_date.get_year() - birth_date.get_year()
if age >= 0 and age < self.max_age: if age >= 0 and age < self.max_age:
age_dict[age] = age_dict.get(age, 0) + 1 age_dict[age] = age_dict.get(age, 0) + 1
age_handles[age].append(h) age_handles[age].append(p.handle)
#else: #else:
# print "Age out of range: %d for %s" % (age, # print "Age out of range: %d for %s" % (age,
# p.get_primary_name().get_first_name() # p.get_primary_name().get_first_name()

View File

@ -283,8 +283,7 @@ class DataEntryGramplet(Gramplet):
def get_or_create_place(self, place_name): def get_or_create_place(self, place_name):
if place_name == "": return (-1, None) if place_name == "": return (-1, None)
for place_handle in self.dbstate.db.iter_place_handles(): for place in self.dbstate.db.iter_places():
place = self.dbstate.db.get_place_from_handle(place_handle)
if place.get_title().strip() == place_name: if place.get_title().strip() == place_name:
return (0, place) # (old, object) return (0, place) # (old, object)
place = gen.lib.Place() place = gen.lib.Place()

View File

@ -78,22 +78,19 @@ class SurnameCloudGramplet(Gramplet):
def main(self): def main(self):
self.set_text(_("Processing...") + "\n") self.set_text(_("Processing...") + "\n")
yield True yield True
people = self.dbstate.db.iter_person_handles()
surnames = {} surnames = {}
representative_handle = {} representative_handle = {}
cnt = 0 cnt = 0
for person_handle in people: for person in self.dbstate.db.iter_people():
person = self.dbstate.db.get_person_from_handle(person_handle) allnames = [person.get_primary_name()] + person.get_alternate_names()
if person: allnames = set([name.get_group_name().strip() for name in allnames])
allnames = [person.get_primary_name()] + person.get_alternate_names() for surname in allnames:
allnames = set([name.get_group_name().strip() for name in allnames]) surnames[surname] = surnames.get(surname, 0) + 1
for surname in allnames: representative_handle[surname] = person.handle
surnames[surname] = surnames.get(surname, 0) + 1 cnt += 1
representative_handle[surname] = person_handle
if not cnt % _YIELD_INTERVAL: if not cnt % _YIELD_INTERVAL:
yield True yield True
cnt += 1
total_people = cnt total_people = cnt
surname_sort = [] surname_sort = []
@ -101,9 +98,9 @@ class SurnameCloudGramplet(Gramplet):
for surname in surnames: for surname in surnames:
surname_sort.append( (surnames[surname], surname) ) surname_sort.append( (surnames[surname], surname) )
total += surnames[surname] total += surnames[surname]
cnt += 1
if not cnt % _YIELD_INTERVAL: if not cnt % _YIELD_INTERVAL:
yield True yield True
cnt += 1
total_surnames = cnt total_surnames = cnt
surname_sort.sort(reverse=True) surname_sort.sort(reverse=True)
@ -114,8 +111,7 @@ class SurnameCloudGramplet(Gramplet):
cloud_values.append( count ) cloud_values.append( count )
cloud_names.sort(key=lambda k:k[1]) cloud_names.sort(key=lambda k:k[1])
counts = list(set(cloud_values)) counts = reversed(set(cloud_values))
counts.sort(reverse=True)
line = 0 line = 0
### All done! ### All done!
# Now, find out how many we can display without going over top_size: # Now, find out how many we can display without going over top_size:

View File

@ -62,20 +62,17 @@ class TopSurnamesGramplet(Gramplet):
def main(self): def main(self):
self.set_text(_("Processing...") + "\n") self.set_text(_("Processing...") + "\n")
people = self.dbstate.db.iter_person_handles()
surnames = {} surnames = {}
representative_handle = {} representative_handle = {}
cnt = 0 cnt = 0
for person_handle in people: for person in self.dbstate.db.iter_people():
person = self.dbstate.db.get_person_from_handle(person_handle) allnames = [person.get_primary_name()] + person.get_alternate_names()
if person: allnames = set([name.get_group_name().strip() for name in allnames])
cnt += 1 for surname in allnames:
allnames = [person.get_primary_name()] + person.get_alternate_names() surnames[surname] = surnames.get(surname, 0) + 1
allnames = set([name.get_group_name().strip() for name in allnames]) representative_handle[surname] = person.handle
for surname in allnames: cnt += 1
surnames[surname] = surnames.get(surname, 0) + 1
representative_handle[surname] = person_handle
if not cnt % _YIELD_INTERVAL: if not cnt % _YIELD_INTERVAL:
yield True yield True
@ -83,9 +80,11 @@ class TopSurnamesGramplet(Gramplet):
surname_sort = [] surname_sort = []
total = 0 total = 0
for cnt, surname in enumerate(surnames): cnt = 0
for surname in surnames:
surname_sort.append( (surnames[surname], surname) ) surname_sort.append( (surnames[surname], surname) )
total += surnames[surname] total += surnames[surname]
cnt += 1
if not cnt % _YIELD_INTERVAL: if not cnt % _YIELD_INTERVAL:
yield True yield True

View File

@ -53,10 +53,8 @@ def run(database, document, *args, **kwargs):
sdoc.paragraph("") sdoc.paragraph("")
matches = 0 matches = 0
stab.columns(_("Name"), _("Primary Name"), _("Name Type")) stab.columns(_("Name"), _("Primary Name"), _("Name Type"))
people = database.iter_person_handles()
names = [] # name, person names = [] # name, person
for person_handle in people: for person in database.iter_people():
person = database.get_person_from_handle(person_handle)
primary_name = person.get_primary_name() primary_name = person.get_primary_name()
if primary_name: if primary_name:
names += [(nd.display_name(primary_name), names += [(nd.display_name(primary_name),

View File

@ -60,16 +60,13 @@ def run(database, document, filter_name, *args, **kwargs):
matches = 0 matches = 0
if (filter_name == 'all people'): if (filter_name == 'all people'):
stab.columns(_("Person"), _("Birth Date"), _("Name type")) stab.columns(_("Person"), _("Birth Date"), _("Name type"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people:
person = database.get_person_from_handle(person_handle)
stab.row(person, sdb.birth_date_obj(person), stab.row(person, sdb.birth_date_obj(person),
str(person.get_primary_name().get_type())) str(person.get_primary_name().get_type()))
matches += 1 matches += 1
elif (filter_name == 'males'): elif (filter_name == 'males'):
stab.columns(_("Person"), _("Birth Date"), _("Name type")) stab.columns(_("Person"), _("Birth Date"), _("Name type"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people:
person = database.get_person_from_handle(person_handle) person = database.get_person_from_handle(person_handle)
if person.gender == Person.MALE: if person.gender == Person.MALE:
stab.row(person, sdb.birth_date_obj(person), stab.row(person, sdb.birth_date_obj(person),
@ -77,27 +74,21 @@ def run(database, document, filter_name, *args, **kwargs):
matches += 1 matches += 1
elif (filter_name == 'females'): elif (filter_name == 'females'):
stab.columns(_("Person"), _("Birth Date"), _("Name type")) stab.columns(_("Person"), _("Birth Date"), _("Name type"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people:
person = database.get_person_from_handle(person_handle)
if person.gender == Person.FEMALE: if person.gender == Person.FEMALE:
stab.row(person, sdb.birth_date_obj(person), stab.row(person, sdb.birth_date_obj(person),
str(person.get_primary_name().get_type())) str(person.get_primary_name().get_type()))
matches += 1 matches += 1
elif (filter_name == 'people with unknown gender'): elif (filter_name == 'people with unknown gender'):
stab.columns(_("Person"), _("Birth Date"), _("Name type")) stab.columns(_("Person"), _("Birth Date"), _("Name type"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people:
person = database.get_person_from_handle(person_handle)
if person.gender not in [Person.FEMALE, Person.MALE]: if person.gender not in [Person.FEMALE, Person.MALE]:
stab.row(person, sdb.birth_date_obj(person), stab.row(person, sdb.birth_date_obj(person),
str(person.get_primary_name().get_type())) str(person.get_primary_name().get_type()))
matches += 1 matches += 1
elif (filter_name == 'people with incomplete names'): elif (filter_name == 'people with incomplete names'):
stab.columns(_("Person"), _("Birth Date"), _("Name type")) stab.columns(_("Person"), _("Birth Date"), _("Name type"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people:
person = database.get_person_from_handle(person_handle)
for name in [person.get_primary_name()] + person.get_alternate_names(): for name in [person.get_primary_name()] + person.get_alternate_names():
if name.get_group_name() == "" or name.get_first_name() == "": if name.get_group_name() == "" or name.get_first_name() == "":
stab.row(person, sdb.birth_date_obj(person), stab.row(person, sdb.birth_date_obj(person),
@ -105,48 +96,36 @@ def run(database, document, filter_name, *args, **kwargs):
matches += 1 matches += 1
elif (filter_name == 'people with missing birth dates'): elif (filter_name == 'people with missing birth dates'):
stab.columns(_("Person"), _("Type")) stab.columns(_("Person"), _("Type"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people: birth_ref = person.get_birth_ref()
person = database.get_person_from_handle(person_handle) if birth_ref:
if person: birth = database.get_event_from_handle(birth_ref.ref)
birth_ref = person.get_birth_ref() if not DateHandler.get_date(birth):
if birth_ref: stab.row(person, _("birth event but no date"))
birth = database.get_event_from_handle(birth_ref.ref)
if not DateHandler.get_date(birth):
stab.row(person, _("birth event but no date"))
matches += 1
else:
stab.row(person, _("missing birth event"))
matches += 1 matches += 1
else:
stab.row(person, _("missing birth event"))
matches += 1
elif (filter_name == 'disconnected people'): elif (filter_name == 'disconnected people'):
stab.columns(_("Person"), _("Birth Date"), _("Name type")) stab.columns(_("Person"), _("Birth Date"), _("Name type"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people: if ((not person.get_main_parents_family_handle()) and
person = database.get_person_from_handle(person_handle) (not len(person.get_family_handle_list()))):
if person: stab.row(person, sdb.birth_date_obj(person),
if ((not person.get_main_parents_family_handle()) and str(person.get_primary_name().get_type()))
(not len(person.get_family_handle_list()))):
stab.row(person, sdb.birth_date_obj(person),
str(person.get_primary_name().get_type()))
matches += 1
elif (filter_name == 'all families'):
familyList = database.iter_family_handles()
stab.columns(_("Family"))
for family_handle in familyList:
family = database.get_family_from_handle(family_handle)
if family:
stab.row(family)
matches += 1 matches += 1
elif (filter_name == 'all families'):
stab.columns(_("Family"))
for family in database.iter_families():
stab.row(family)
matches += 1
elif (filter_name == 'unique surnames'): elif (filter_name == 'unique surnames'):
namelist = {} namelist = {}
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people: names = [person.get_primary_name()] + person.get_alternate_names()
person = database.get_person_from_handle(person_handle) surnames = list(set([name.get_group_name() for name in names]))
if person: for surname in surnames:
names = [person.get_primary_name()] + person.get_alternate_names() namelist[surname] = namelist.get(surname, 0) + 1
surnames = list(set([name.get_group_name() for name in names]))
for surname in surnames:
namelist[surname] = namelist.get(surname, 0) + 1
stab.columns(_("Surname"), _("Count")) stab.columns(_("Surname"), _("Count"))
for name in sorted(namelist): for name in sorted(namelist):
stab.row(name, namelist[name]) stab.row(name, namelist[name])
@ -158,39 +137,27 @@ def run(database, document, filter_name, *args, **kwargs):
name)) name))
elif (filter_name == 'people with media'): elif (filter_name == 'people with media'):
stab.columns(_("Person"), _("Media count")) stab.columns(_("Person"), _("Media count"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people:
person = database.get_person_from_handle(person_handle)
if not person:
continue
length = len(person.get_media_list()) length = len(person.get_media_list())
if length > 0: if length > 0:
stab.row(person, length) stab.row(person, length)
matches += 1 matches += 1
elif (filter_name == 'media references'): elif (filter_name == 'media references'):
stab.columns(_("Person"), _("Reference")) stab.columns(_("Person"), _("Reference"))
people = database.iter_person_handles() for person in database.iter_people():
for person_handle in people:
person = database.get_person_from_handle(person_handle)
if not person:
continue
medialist = person.get_media_list() medialist = person.get_media_list()
for item in medialist: for item in medialist:
stab.row(person, _("media")) stab.row(person, _("media"))
matches += 1 matches += 1
elif (filter_name == 'unique media'): elif (filter_name == 'unique media'):
stab.columns(_("Unique Media")) stab.columns(_("Unique Media"))
pobjects = database.get_media_object_handles() for photo in database.iter_media_objects():
for photo_id in database.get_media_object_handles():
photo = database.get_object_from_handle(photo_id)
fullname = media_path_full(database, photo.get_path()) fullname = media_path_full(database, photo.get_path())
stab.row(fullname) stab.row(fullname)
matches += 1 matches += 1
elif (filter_name == 'missing media'): elif (filter_name == 'missing media'):
stab.columns(_("Missing Media")) stab.columns(_("Missing Media"))
pobjects = database.get_media_object_handles() for photo in database.iter_media_objects():
for photo_id in database.get_media_object_handles():
photo = database.get_object_from_handle(photo_id)
fullname = media_path_full(database, photo.get_path()) fullname = media_path_full(database, photo.get_path())
try: try:
posixpath.getsize(fullname) posixpath.getsize(fullname)
@ -199,9 +166,7 @@ def run(database, document, filter_name, *args, **kwargs):
matches += 1 matches += 1
elif (filter_name == 'media by size'): elif (filter_name == 'media by size'):
stab.columns(_("Media"), _("Size in bytes")) stab.columns(_("Media"), _("Size in bytes"))
pobjects = database.get_media_object_handles() for photo in database.iter_media_objects():
for photo_id in database.get_media_object_handles():
photo = database.get_object_from_handle(photo_id)
fullname = media_path_full(database, photo.get_path()) fullname = media_path_full(database, photo.get_path())
try: try:
bytes = posixpath.getsize(fullname) bytes = posixpath.getsize(fullname)
@ -212,8 +177,7 @@ def run(database, document, filter_name, *args, **kwargs):
elif (filter_name == 'list of people'): elif (filter_name == 'list of people'):
stab.columns(_("Person"), _("Birth Date"), _("Name type")) stab.columns(_("Person"), _("Birth Date"), _("Name type"))
people = kwargs["handles"] people = kwargs["handles"]
for person_handle in people: for person in database.iter_people():
person = database.get_person_from_handle(person_handle)
stab.row(person, sdb.birth_date_obj(person), stab.row(person, sdb.birth_date_obj(person),
str(person.get_primary_name().get_type())) str(person.get_primary_name().get_type()))
matches += 1 matches += 1

View File

@ -100,12 +100,8 @@ class SummaryReport(Report):
self.doc.write_text(_("Individuals")) self.doc.write_text(_("Individuals"))
self.doc.end_paragraph() self.doc.end_paragraph()
person_list = self.__db.iter_person_handles()
num_people = 0 num_people = 0
for person_handle in person_list: for person in self.__db.iter_people():
person = self.__db.get_person_from_handle(person_handle)
if not person:
continue
num_people += 1 num_people += 1
# Count people with media. # Count people with media.
@ -191,7 +187,6 @@ class SummaryReport(Report):
self.doc.write_text(_("Family Information")) self.doc.write_text(_("Family Information"))
self.doc.end_paragraph() self.doc.end_paragraph()
family_list = self.__db.iter_family_handles()
self.doc.start_paragraph("SR-Normal") self.doc.start_paragraph("SR-Normal")
self.doc.write_text(_("Number of families: %d") % self.__db.get_number_of_families()) self.doc.write_text(_("Number of families: %d") % self.__db.get_number_of_families())
self.doc.end_paragraph() self.doc.end_paragraph()

View File

@ -83,8 +83,7 @@ class EventNames(Tool.BatchTool, ManagedWindow.ManagedWindow):
self.change = False self.change = False
counter = 0 counter = 0
for handle in self.db.iter_person_handles(): for person in self.db.iter_people():
person = self.db.get_person_from_handle(handle)
for event_ref in person.get_event_ref_list(): for event_ref in person.get_event_ref_list():
if event_ref.get_role() == gen.lib.EventRoleType.PRIMARY: if event_ref.get_role() == gen.lib.EventRoleType.PRIMARY:
event_handle = event_ref.ref event_handle = event_ref.ref
@ -95,8 +94,7 @@ class EventNames(Tool.BatchTool, ManagedWindow.ManagedWindow):
self.change = True self.change = True
counter += 1 counter += 1
for handle in self.db.iter_family_handles(): for family in self.db.iter_families():
family = self.db.get_family_from_handle(handle)
for event_ref in family.get_event_ref_list(): for event_ref in family.get_event_ref_list():
if event_ref.get_role() == gen.lib.EventRoleType.FAMILY: if event_ref.get_role() == gen.lib.EventRoleType.FAMILY:
event_handle = event_ref.ref event_handle = event_ref.ref

View File

@ -122,9 +122,8 @@ class PatchNames(Tool.BatchTool, ManagedWindow.ManagedWindow):
self.progress.set_pass(_('Analyzing names'), self.progress.set_pass(_('Analyzing names'),
self.db.get_number_of_people()) self.db.get_number_of_people())
for key in self.db.iter_person_handles(): for person in self.db.iter_people():
key = person.handle
person = self.db.get_person_from_handle(key)
name = person.get_primary_name() name = person.get_primary_name()
first = name.get_first_name() first = name.get_first_name()
sname = name.get_surname() sname = name.get_surname()

View File

@ -76,8 +76,7 @@ class SoundGen(Tool.Tool, ManagedWindow.ManagedWindow):
names = [] names = []
person = None person = None
for person_handle in self.db.iter_person_handles(): for person in self.db.iter_people():
person = self.db.get_person_from_handle(person_handle)
lastname = person.get_primary_name().get_surname() lastname = person.get_primary_name().get_surname()
if lastname not in names: if lastname not in names:
names.append(lastname) names.append(lastname)