check and repair fixes

svn: r6235
This commit is contained in:
Don Allingham 2006-03-30 17:29:30 +00:00
parent f824eded45
commit f13f54c107
4 changed files with 33 additions and 27 deletions

View File

@ -4,6 +4,9 @@
* src/Editors/_EditPerson.py: setup autocomp list * src/Editors/_EditPerson.py: setup autocomp list
* src/GrampsWidgets.py: enable autocompletion on MonitoredEntry if * src/GrampsWidgets.py: enable autocompletion on MonitoredEntry if
a list is provided a list is provided
* src/plugins/Check.py: fix event_handle/event_ref conversion
* src/PluginUtils/_Options.py: Fix parsing of file if file does not exist
* src/PluginUtils/_Tool.py: Fix recursive __init__ in OptionHandler
2006-03-29 Brian Matherly <pez4brian@users.sourceforge.net> 2006-03-29 Brian Matherly <pez4brian@users.sourceforge.net>
* src/Sort.py: remove use of deprecated functions * src/Sort.py: remove use of deprecated functions

View File

@ -221,9 +221,10 @@ class OptionListCollection:
Loads the OptionList from the associated file, if it exists. Loads the OptionList from the associated file, if it exists.
""" """
try: try:
p = make_parser() if os.path.isfile(self.filename):
p.setContentHandler(OptionParser(self)) p = make_parser()
p.parse(self.filename) p.setContentHandler(OptionParser(self))
p.parse(self.filename)
except (IOError,OSError,SAXParseException): except (IOError,OSError,SAXParseException):
pass pass

View File

@ -240,7 +240,7 @@ def cli_tool(database,name,category,tool_class,options_class,options_str_dict):
# Class handling options for plugins # Class handling options for plugins
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
class OptionHandler(OptionHandler): class ToolOptionHandler(OptionHandler):
""" """
Implements handling of the options for the plugins. Implements handling of the options for the plugins.
""" """
@ -276,4 +276,4 @@ class ToolOptions(Options):
if self.enable_dict: if self.enable_dict:
self.options_dict.update(self.enable_dict) self.options_dict.update(self.enable_dict)
self.handler = OptionHandler(name,self.options_dict,person_id) self.handler = ToolOptionHandler(name,self.options_dict,person_id)

View File

@ -538,70 +538,72 @@ class CheckIntegrity:
self.progress.step() self.progress.step()
person = self.db.get_person_from_handle(key) person = self.db.get_person_from_handle(key)
birth_handle = person.get_birth_handle() birth_ref = person.get_birth_ref()
if birth_handle: if birth_ref:
birth_handle = birth_ref.ref
birth = self.db.get_event_from_handle(birth_handle) birth = self.db.get_event_from_handle(birth_handle)
if not birth: if not birth:
# The birth event referenced by the birth handle # The birth event referenced by the birth handle
# does not exist in the database # does not exist in the database
person.set_birth_handle("") person.set_birth_ref(None)
self.db.commit_person(person,self.trans) self.db.commit_person(person,self.trans)
self.invalid_events.append(key) self.invalid_events.append(key)
else: else:
if not birth.get_name() == "Birth": if not birth.get_type()[0] == RelLib.Event.BIRTH:
# Birth event was not of the type "Birth" # Birth event was not of the type "Birth"
birth.set_name("Birth"); birth.set_type((RelLib.Event.BIRTH,""))
self.db.commit_event(birth,self.trans) self.db.commit_event(birth,self.trans)
self.invalid_birth_events.append(key) self.invalid_birth_events.append(key)
death_handle = person.get_death_handle() death_ref = person.get_death_ref()
if death_handle: if death_ref:
death_handle = death_ref.ref
death = self.db.get_event_from_handle(death_handle) death = self.db.get_event_from_handle(death_handle)
if not death: if not death:
# The death event referenced by the death handle # The death event referenced by the death handle
# does not exist in the database # does not exist in the database
person.set_death_handle("") person.set_death_ref(None)
self.db.commit_person(person,self.trans) self.db.commit_person(person,self.trans)
self.invalid_events.append(key) self.invalid_events.append(key)
else: else:
if not death.get_name() == "Death": if not death.get_type()[0] == RelLib.Event.DEATH:
# Death event was not of the type "Death" # Death event was not of the type "Death"
death.set_name("Death"); death.set_type((RelLib.Event.DEATH,""))
self.db.commit_event(death,self.trans) self.db.commit_event(death,self.trans)
self.invalid_death_events.append(key) self.invalid_death_events.append(key)
if person.get_event_list(): if person.get_event_ref_list():
for event_handle in person.get_event_list(): for event_ref in person.get_event_ref_list():
event_handle = event_ref.ref
event = self.db.get_event_from_handle(event_handle) event = self.db.get_event_from_handle(event_handle)
if not event: if not event:
# The event referenced by the person # The event referenced by the person
# does not exist in the database # does not exist in the database
#TODO: There is no better way? #TODO: There is no better way?
person.set_event_list( person.get_event_ref_list().remove(event_ref)
person.get_event_list().remove(event_handle))
self.db.commit_person(person,self.trans) self.db.commit_person(person,self.trans)
self.invalid_events.append(key) self.invalid_events.append(key)
elif type(person.get_event_list()) != list: elif type(person.get_event_ref_list()) != list:
# event_list is None or other garbage # event_list is None or other garbage
person.set_event_list([]) person.set_event_ref_list([])
self.db.commit_person(person,self.trans) self.db.commit_person(person,self.trans)
self.invalid_events.append(key) self.invalid_events.append(key)
for key in self.db.get_family_handles(): for key in self.db.get_family_handles():
self.progress.step() self.progress.step()
family = self.db.get_family_from_handle(key) family = self.db.get_family_from_handle(key)
if family.get_event_list(): if family.get_event_ref_list():
for event_handle in family.get_event_list(): for event_ref in family.get_event_ref_list():
event_handle = event_ref.ref
event = self.db.get_event_from_handle(event_handle) event = self.db.get_event_from_handle(event_handle)
if not event: if not event:
# The event referenced by the family # The event referenced by the family
# does not exist in the database # does not exist in the database
family.set_event_list( family.get_event_list().remove(event_ref)
family.get_event_list().remove(event_handle))
self.db.commit_family(family,self.trans) self.db.commit_family(family,self.trans)
self.invalid_events.append(key) self.invalid_events.append(key)
elif type(family.get_event_list()) != list: elif type(family.get_event_ref_list()) != list:
# event_list is None or other garbage # event_list is None or other garbage
family.set_event_list([]) family.set_event_ref_list([])
self.db.commit_family(family,self.trans) self.db.commit_family(family,self.trans)
self.invalid_events.append(key) self.invalid_events.append(key)