Stats Gramplet: remove sequential scan through person
This commit is contained in:
parent
59bad09650
commit
8350859c0c
@ -68,18 +68,12 @@ class StatsGramplet(Gramplet):
|
|||||||
def main(self):
|
def main(self):
|
||||||
self.set_text(_("Processing..."))
|
self.set_text(_("Processing..."))
|
||||||
database = self.dbstate.db
|
database = self.dbstate.db
|
||||||
personList = database.iter_people()
|
|
||||||
|
|
||||||
with_media = 0
|
|
||||||
total_media = 0
|
total_media = 0
|
||||||
incomp_names = 0
|
|
||||||
disconnected = 0
|
|
||||||
missing_bday = 0
|
|
||||||
males = 0
|
males = 0
|
||||||
females = 0
|
females = 0
|
||||||
unknowns = 0
|
unknowns = 0
|
||||||
bytes = 0
|
bytes = 0
|
||||||
namelist = []
|
|
||||||
notfound = []
|
notfound = []
|
||||||
|
|
||||||
mobjects = database.get_number_of_media()
|
mobjects = database.get_number_of_media()
|
||||||
@ -96,49 +90,9 @@ class StatsGramplet(Gramplet):
|
|||||||
except OSError:
|
except OSError:
|
||||||
notfound.append(media.get_path())
|
notfound.append(media.get_path())
|
||||||
|
|
||||||
for cnt, person in enumerate(personList):
|
males = sum([v[0] for v in database.genderStats.stats.values()]) # male, female, unknown
|
||||||
length = len(person.get_media_list())
|
females = sum([v[1] for v in database.genderStats.stats.values()]) # male, female, unknown
|
||||||
if length > 0:
|
unknown = sum([v[2] for v in database.genderStats.stats.values()]) # male, female, unknown
|
||||||
with_media += 1
|
|
||||||
total_media += length
|
|
||||||
|
|
||||||
for name in [person.get_primary_name()] + person.get_alternate_names():
|
|
||||||
|
|
||||||
# Count unique surnames
|
|
||||||
if not name.get_surname().strip() in namelist \
|
|
||||||
and not name.get_surname().strip() == "":
|
|
||||||
namelist.append(name.get_surname().strip())
|
|
||||||
|
|
||||||
if name.get_first_name().strip() == "":
|
|
||||||
incomp_names += 1
|
|
||||||
else:
|
|
||||||
if name.get_surname_list():
|
|
||||||
for surname in name.get_surname_list():
|
|
||||||
if surname.get_surname().strip() == "":
|
|
||||||
incomp_names += 1
|
|
||||||
else:
|
|
||||||
incomp_names += 1
|
|
||||||
|
|
||||||
if (not person.get_main_parents_family_handle() and
|
|
||||||
not len(person.get_family_handle_list())):
|
|
||||||
disconnected += 1
|
|
||||||
|
|
||||||
birth_ref = person.get_birth_ref()
|
|
||||||
if birth_ref:
|
|
||||||
birth = database.get_event_from_handle(birth_ref.ref)
|
|
||||||
if not get_date(birth):
|
|
||||||
missing_bday += 1
|
|
||||||
else:
|
|
||||||
missing_bday += 1
|
|
||||||
|
|
||||||
if person.get_gender() == Person.FEMALE:
|
|
||||||
females += 1
|
|
||||||
elif person.get_gender() == Person.MALE:
|
|
||||||
males += 1
|
|
||||||
else:
|
|
||||||
unknowns += 1
|
|
||||||
if not cnt % _YIELD_INTERVAL:
|
|
||||||
yield True
|
|
||||||
|
|
||||||
self.clear_text()
|
self.clear_text()
|
||||||
self.append_text(_("Individuals") + "\n")
|
self.append_text(_("Individuals") + "\n")
|
||||||
@ -157,18 +111,6 @@ class StatsGramplet(Gramplet):
|
|||||||
'Filter', 'people with unknown gender')
|
'Filter', 'people with unknown gender')
|
||||||
self.append_text(" %s" % unknowns)
|
self.append_text(" %s" % unknowns)
|
||||||
self.append_text("\n")
|
self.append_text("\n")
|
||||||
self.link("%s:" % _("Incomplete names"),
|
|
||||||
'Filter', 'incomplete names')
|
|
||||||
self.append_text(" %s" % incomp_names)
|
|
||||||
self.append_text("\n")
|
|
||||||
self.link("%s:" % _("Individuals missing birth dates"),
|
|
||||||
'Filter', 'people with missing birth dates')
|
|
||||||
self.append_text(" %s" % missing_bday)
|
|
||||||
self.append_text("\n")
|
|
||||||
self.link("%s:" % _("Disconnected individuals"),
|
|
||||||
'Filter', 'disconnected people')
|
|
||||||
self.append_text(" %s" % disconnected)
|
|
||||||
self.append_text("\n")
|
|
||||||
self.append_text("\n%s\n" % _("Family Information"))
|
self.append_text("\n%s\n" % _("Family Information"))
|
||||||
self.append_text("----------------------------\n")
|
self.append_text("----------------------------\n")
|
||||||
self.link("%s:" % _("Number of families"),
|
self.link("%s:" % _("Number of families"),
|
||||||
@ -177,14 +119,10 @@ class StatsGramplet(Gramplet):
|
|||||||
self.append_text("\n")
|
self.append_text("\n")
|
||||||
self.link("%s:" % _("Unique surnames"),
|
self.link("%s:" % _("Unique surnames"),
|
||||||
'Filter', 'unique surnames')
|
'Filter', 'unique surnames')
|
||||||
self.append_text(" %s" % len(namelist))
|
self.append_text(" %s" % len(set(database.surname_list)))
|
||||||
self.append_text("\n")
|
self.append_text("\n")
|
||||||
self.append_text("\n%s\n" % _("Media Objects"))
|
self.append_text("\n%s\n" % _("Media Objects"))
|
||||||
self.append_text("----------------------------\n")
|
self.append_text("----------------------------\n")
|
||||||
self.link("%s:" % _("Individuals with media objects"),
|
|
||||||
'Filter', 'people with media')
|
|
||||||
self.append_text(" %s" % with_media)
|
|
||||||
self.append_text("\n")
|
|
||||||
self.link("%s:" % _("Total number of media object references"),
|
self.link("%s:" % _("Total number of media object references"),
|
||||||
'Filter', 'media references')
|
'Filter', 'media references')
|
||||||
self.append_text(" %s" % total_media)
|
self.append_text(" %s" % total_media)
|
||||||
|
Loading…
Reference in New Issue
Block a user