Fix for correct unique surname statistics.

svn: r20686
This commit is contained in:
Peter Landgren 2012-11-21 12:32:46 +00:00
parent ace8790379
commit ee2f5a990d
3 changed files with 17 additions and 4 deletions

View File

@ -104,6 +104,12 @@ class StatsGramplet(Gramplet):
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:

View File

@ -92,6 +92,7 @@ class SurnameCloudGramplet(Gramplet):
representative_handle = {}
cnt = 0
namelist =[]
for person in self.dbstate.db.iter_people():
allnames = [person.get_primary_name()] + person.get_alternate_names()
allnames = set([name.get_group_name().strip() for name in allnames])
@ -101,6 +102,11 @@ class SurnameCloudGramplet(Gramplet):
cnt += 1
if not cnt % _YIELD_INTERVAL:
yield True
# Count unique surnames
for name in [person.get_primary_name()] + person.get_alternate_names():
if not name.get_surname().strip() in namelist \
and not name.get_surname().strip() == "":
namelist.append(name.get_surname().strip())
total_people = cnt
surname_sort = []
@ -112,7 +118,6 @@ class SurnameCloudGramplet(Gramplet):
if not cnt % _YIELD_INTERVAL:
yield True
total_surnames = cnt
surname_sort.sort(reverse=True)
cloud_names = []
cloud_values = []
@ -165,7 +170,7 @@ class SurnameCloudGramplet(Gramplet):
self.append_text(("\n\n" + _("Total unique surnames") + ": %d\n") %
total_surnames)
self.append_text((_("Total surnames showing") + ": %d\n") % showing)
self.append_text((_("Total people") + ": %d") % total_people, "begin")
self.append_text((_("Total people") + ": %d") % len(namelist), "begin")
def build_options(self):
from gramps.gen.plug.menu import NumberOption

View File

@ -147,8 +147,10 @@ class SummaryReport(Report):
unknowns += 1
# Count unique surnames
if name.get_surname() not in namelist:
namelist.append(name.get_surname())
for name in [person.get_primary_name()] + person.get_alternate_names():
if not name.get_surname().strip() in namelist \
and not name.get_surname().strip() == "":
namelist.append(name.get_surname().strip())
self.doc.start_paragraph("SR-Normal")
self.doc.write_text(_("Number of individuals: %d") % num_people)