* doc/gramps-manual/C/getstart.xml: fixed spelling

* doc/gramps-manual/C/mainwin.xml: fixed spelling
* src/Errors.py: Add a DatabaseError type
* src/Utils.py: detect database loops in descendants_too_old
* src/WriteGedcom.py: report error message when database loop is detected
* src/po/template.po: added new error message. May be too late for some
translations to get this message.


svn: r5149
This commit is contained in:
Don Allingham
2005-08-30 19:56:43 +00:00
parent c6d2319c09
commit ce31ffcb84
7 changed files with 239 additions and 203 deletions

View File

@@ -42,6 +42,15 @@ class DateError(Exception):
def __str__(self):
return self.value
class DatabaseError(Exception):
"""Error used to report Date errors"""
def __init__(self,value=""):
Exception.__init__(self)
self.value = value
def __str__(self):
return self.value
class ReportError(Exception):
"""Error used to report Report errors"""
def __init__(self,value,value2=""):

View File

@@ -27,6 +27,7 @@
#-------------------------------------------------------------------------
import os
import locale
import sets
from gettext import gettext as _
#-------------------------------------------------------------------------
@@ -514,7 +515,17 @@ def probably_alive(person,db,current_year=None,limit=0):
max_generation = 60
max_age_difference = 60
def descendants_too_old (person, years):
def descendants_too_old (person, years, current=None):
if current == None:
current = sets.Set()
if person.handle not in current:
current.add(person.handle)
else:
import Errors
raise Errors.DatabaseError(_("Database error: %s is defined as his or her own ancestor") %
NameDisplay.displayer.display(person))
for family_handle in person.get_family_handle_list():
family = db.get_family_from_handle(family_handle)
family_list = family.get_child_handle_list()
@@ -539,7 +550,7 @@ def probably_alive(person,db,current_year=None,limit=0):
if not not_too_old (dobj,current_year):
return True
if descendants_too_old (child, years + min_generation):
if descendants_too_old (child, years + min_generation,current):
return True
return False

View File

@@ -1269,6 +1269,8 @@ def exportData(database,filename,person,option_box):
try:
gw = GedcomWriter(database,person,0,filename,option_box)
ret = gw.export_data(filename)
except Errors.DatabaseError,msg:
ErrorDialog(_("Export failed"),str(msg))
except:
import DisplayTrace
DisplayTrace.DisplayTrace()

File diff suppressed because it is too large Load Diff