* src/plugins/TestcaseGenerator.py: Small changes to family generation
* src/plugins/StatisticsChart.py: Added statistics for Surnames, Number of Families and Event Types svn: r4278
This commit is contained in:
parent
c2b556d9f4
commit
4abe4ea4be
@ -1,3 +1,8 @@
|
||||
2005-04-01 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||
* src/plugins/TestcaseGenerator.py: Small changes to family generation
|
||||
* src/plugins/StatisticsChart.py: Added statistics for Surnames,
|
||||
Number of Families and Event Types
|
||||
|
||||
2005-04-01 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
||||
* src/GrampsDBCallback.py: rewrite of new callback scheme using python signals
|
||||
* src/GrampsBSDDB.py: handle signals instead of callback functions
|
||||
|
@ -95,6 +95,8 @@ class Extract:
|
||||
self.extractors = {
|
||||
'data_title': ("Titles", _("Titles"),
|
||||
self.get_person, self.get_title),
|
||||
'data_sname': ("Surnames", _("Surnames"),
|
||||
self.get_person, self.get_surname),
|
||||
'data_fname': ("Forenames", _("Forenames"),
|
||||
self.get_person, self.get_forename),
|
||||
'data_gender': ("Genders", _("Genders"),
|
||||
@ -115,18 +117,22 @@ class Extract:
|
||||
self.get_death, self.get_place),
|
||||
'data_mplace': ("Marriage places", _("Marriage places"),
|
||||
self.get_marriage_handles, self.get_places),
|
||||
'data_mcount': ("Number of relationships", _("Number of relationships"),
|
||||
self.get_family_handles, self.get_handle_count),
|
||||
'data_fchild': ("Ages when first child born", _("Ages when first child born"),
|
||||
self.get_child_handles, self.get_first_child_age),
|
||||
'data_lchild': ("Ages when last child born", _("Ages when last child born"),
|
||||
self.get_child_handles, self.get_last_child_age),
|
||||
'data_ccount': ("Number of children", _("Number of children"),
|
||||
self.get_child_handles, self.get_child_count),
|
||||
self.get_child_handles, self.get_handle_count),
|
||||
'data_mage': ("Marriage ages", _("Marriage ages"),
|
||||
self.get_marriage_handles, self.get_event_ages),
|
||||
'data_dage': ("Ages at death", _("Ages at death"),
|
||||
self.get_person, self.get_death_age),
|
||||
'data_age': ("Ages", _("Ages"),
|
||||
self.get_person, self.get_person_age)
|
||||
self.get_person, self.get_person_age),
|
||||
'data_etypes': ("Event types", _("Event types"),
|
||||
self.get_event_handles, self.get_event_type)
|
||||
}
|
||||
|
||||
# ----------------- data extraction methods --------------------
|
||||
@ -150,6 +156,15 @@ class Extract:
|
||||
else:
|
||||
return [_("(Preferred) forename missing")]
|
||||
|
||||
def get_surname(self, person):
|
||||
"return surnames for given person"
|
||||
# TODO: return all surnames, not just primary ones...
|
||||
surnames = person.get_primary_name().get_surname().strip()
|
||||
if surnames:
|
||||
return [name.capitalize() for name in surnames.split()]
|
||||
else:
|
||||
return [_("(Preferred) surname missing")]
|
||||
|
||||
def get_gender(self, person):
|
||||
"return gender for given person"
|
||||
# TODO: why there's no Person.getGenderName?
|
||||
@ -233,6 +248,17 @@ class Extract:
|
||||
return ages
|
||||
return [_("Events missing")]
|
||||
|
||||
def get_event_type(self, data):
|
||||
"return event types at given (person,event_handles)"
|
||||
types = []
|
||||
person, event_handles = data
|
||||
for event_handle in event_handles:
|
||||
event = self.db.get_event_from_handle(event_handle)
|
||||
types.append(event.get_name())
|
||||
if types:
|
||||
return types
|
||||
return [_("Events missing")]
|
||||
|
||||
def get_first_child_age(self, data):
|
||||
"return age when first child in given (person,child_handles) was born"
|
||||
ages, errors = self.get_sorted_child_ages(data)
|
||||
@ -249,8 +275,8 @@ class Extract:
|
||||
return errors
|
||||
return [_("Children missing")]
|
||||
|
||||
def get_child_count(self, data):
|
||||
"return number of children in given (person,child_handles)"
|
||||
def get_handle_count(self, data):
|
||||
"return number of handles in given (person,handle_list) used for child count, family count"
|
||||
return [str(len(data[1]))]
|
||||
|
||||
# ------------------- utility methods -------------------------
|
||||
@ -336,6 +362,22 @@ class Extract:
|
||||
return (person, marriages)
|
||||
return None
|
||||
|
||||
def get_family_handles(self, person):
|
||||
"return list of family handles for given person or None"
|
||||
families = person.get_family_handle_list()
|
||||
|
||||
if families:
|
||||
return (person, families)
|
||||
return None
|
||||
|
||||
def get_event_handles(self, person):
|
||||
"return list of event handles for given person or None"
|
||||
events = person.get_event_list()
|
||||
|
||||
if events:
|
||||
return (person, events)
|
||||
return None
|
||||
|
||||
# ----------------- data collection methods --------------------
|
||||
|
||||
def get_person_data(self, person, collect):
|
||||
|
@ -133,6 +133,10 @@ class TestcaseGenerator:
|
||||
self.persons_todo.append( self.generate_person(0))
|
||||
for person_h in self.persons_todo:
|
||||
self.generate_family(person_h)
|
||||
if randint(0,3) == 0:
|
||||
self.generate_family(person_h)
|
||||
if randint(0,7) == 0:
|
||||
self.generate_family(person_h)
|
||||
if self.person_count > self.max_person_count:
|
||||
break
|
||||
for child_h in self.parents_todo:
|
||||
@ -438,6 +442,7 @@ class TestcaseGenerator:
|
||||
self.db.commit_person(child,self.trans)
|
||||
if randint(0,3) > 0:
|
||||
self.persons_todo.append(child_h)
|
||||
|
||||
def generate_parents(self,child_h):
|
||||
child = self.db.get_person_from_handle(child_h)
|
||||
if child.get_parent_family_handle_list():
|
||||
@ -448,9 +453,9 @@ class TestcaseGenerator:
|
||||
person1_h = self.generate_person(1,lastname)
|
||||
person2_h = self.generate_person(0)
|
||||
|
||||
if randint(0,2) > 0:
|
||||
if randint(0,2) > 1:
|
||||
self.parents_todo.append(person1_h)
|
||||
if randint(0,2) > 0:
|
||||
if randint(0,2) > 1:
|
||||
self.parents_todo.append(person2_h)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user