update
svn: r3608
This commit is contained in:
		
							
								
								
									
										112
									
								
								src/RelLib.py
									
									
									
									
									
								
							
							
						
						
									
										112
									
								
								src/RelLib.py
									
									
									
									
									
								
							| @@ -552,118 +552,6 @@ class Person(PrimaryObject,SourceNote): | ||||
|         """Gets the LDS Sealing ordinance""" | ||||
|         return self.lds_seal | ||||
|  | ||||
|     def probably_alive(self,db): | ||||
|         """Returns true if the person may be alive.""" | ||||
|         if self.death_handle: | ||||
|             return False | ||||
|  | ||||
| 	# Look for Cause Of Death, Burial or Cremation events. | ||||
|         # These are fairly good indications that someone's not alive. | ||||
| 	for ev_handle in self.event_list: | ||||
|             ev = db.get_event_from_handle(ev_handle) | ||||
|             if ev.name in ["Cause Of Death", "Burial", "Cremation"]: | ||||
|                 return False | ||||
|  | ||||
|         if self.birth_handle: | ||||
|             birth = db.get_event_from_handle(self.birth_handle) | ||||
|             if birth.get_date_object().get_start_date() != Date.EMPTY: | ||||
|                 return not_too_old(birth.get_date_object()) | ||||
|  | ||||
|         # Neither birth nor death events are available.  Try looking | ||||
|         # for descendants that were born more than a lifespan ago. | ||||
|  | ||||
|         min_generation = 13 | ||||
|         max_generation = 60 | ||||
|         max_age_difference = 60 | ||||
|         def descendants_too_old (person, years): | ||||
|             for family_handle in person.get_family_handle_list(): | ||||
|                 family = db.get_family_from_handle(family_handle) | ||||
|                 for child_handle in family.get_child_handle_list(): | ||||
|                     child = db.get_person_from_handle(child_handle) | ||||
|                     if child.birth_handle: | ||||
|                         child_birth = db.get_event_from_handle(child.birth_handle) | ||||
|                         dobj = child_birth.get_date_object() | ||||
|                         if dobj.get_start_date() != Date.EMPTY: | ||||
|                             d = Date(dobj) | ||||
|                             d.set_year(d.get_year() - years) | ||||
|                             if not not_too_old (d): | ||||
|                                 return True | ||||
|  | ||||
|                     if child.death_handle: | ||||
|                         child_death = db.get_event_from_handle(child.death_handle) | ||||
|                         dobj = child_death.get_date_object() | ||||
|                         if dobj.get_start_date != Date.EMPTY: | ||||
|                             if not not_too_old (dobj): | ||||
|                                 return True | ||||
|  | ||||
|                     if descendants_too_old (child, years + min_generation): | ||||
|                         return True | ||||
|  | ||||
|         if descendants_too_old (self, min_generation): | ||||
|             return False | ||||
|  | ||||
|         return False | ||||
|      | ||||
|         # What about their parents? | ||||
|         def parents_too_old (person, age_difference): | ||||
|             family_handle = person.get_main_parents_family_handle() | ||||
|             if family_handle: | ||||
|                 family = db.get_family_from_handle(family_handle) | ||||
|                 for parent_id in [family.get_father_handle(), family.get_mother_handle()]: | ||||
|                     if not parent_id: | ||||
|                         continue | ||||
|  | ||||
|                     parent = db.get_person_from_handle(parent_id) | ||||
|                     if parent.birth_handle: | ||||
|                         parent_birth = db.get_event_from_handle(parent.birth_handle) | ||||
|                         if parent_birth.get_date(): | ||||
|                             d = SingleDate (parent_birth.get_date_object().get_start_date()) | ||||
|                             d.set_year (d.get_year() + max_generation + age_difference) | ||||
|                             if not not_too_old (d): | ||||
|                                 return True | ||||
|  | ||||
|                     if parent.death_handle: | ||||
|                         parent_death = db.get_event_from_handle(parent.death_handle) | ||||
|                         if parent_death.get_date() != "": | ||||
|                             d = SingleDate (parent_death.get_date_object(). | ||||
|                                         get_start_date()) | ||||
|                             d.set_year (d.get_year() + age_difference) | ||||
|                             if not not_too_old (d): | ||||
|                                 return True | ||||
|  | ||||
|         if parents_too_old (self, 0): | ||||
|             return False | ||||
|  | ||||
|         # As a last resort, trying seeing if their spouse's age gives | ||||
|         # any clue. | ||||
|         for family_handle in self.get_family_handle_list(): | ||||
|             family = db.get_family_from_handle(family_handle) | ||||
|             for spouse_id in [family.get_father_handle(), family.get_mother_handle()]: | ||||
|                 if not spouse_id or spouse_id == self.handle: | ||||
|                     continue | ||||
|                 spouse = db.get_person_from_handle(spouse_id) | ||||
|                 sp_birth_handle = spouse.get_birth_handle() | ||||
|                 sp_death_handle = spouse.get_death_handle() | ||||
|                 if sp_birth_handle: | ||||
|                     spouse_birth = db.get_event_from_handle(sp_birth_handle) | ||||
|                     if spouse_birth.get_date() != "": | ||||
|                         d = SingleDate (spouse_birth.get_date_object().get_start_date()) | ||||
|                         d.set_year (d.get_year() + max_age_difference) | ||||
|                         if not not_too_old (d): | ||||
|                             return False | ||||
|  | ||||
|                 if sp_death_handle: | ||||
|                     spouse_death = db.get_event_from_handle(sp_death_handle) | ||||
|                     if spouse_death.get_date() != "": | ||||
|                         d = SingleDate (spouse_death.get_date_object().get_start_date()) | ||||
|                         d.set_year (d.get_year() - min_generation) | ||||
|                         if not not_too_old (d): | ||||
|                             return False | ||||
|  | ||||
|                 if parents_too_old (spouse, max_age_difference): | ||||
|                     return False | ||||
|         return True | ||||
|  | ||||
| class Family(PrimaryObject,SourceNote): | ||||
|     """ | ||||
|     GRAMPS Family record. Represents a family unit, which defines the | ||||
|   | ||||
		Reference in New Issue
	
	Block a user