diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index 08172cbe8..ec0e82744 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -4,6 +4,9 @@ * src/Editors/_EditPerson.py: setup autocomp list * src/GrampsWidgets.py: enable autocompletion on MonitoredEntry if 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 * src/Sort.py: remove use of deprecated functions diff --git a/gramps2/src/PluginUtils/_Options.py b/gramps2/src/PluginUtils/_Options.py index 6752b23c2..63f6a365e 100644 --- a/gramps2/src/PluginUtils/_Options.py +++ b/gramps2/src/PluginUtils/_Options.py @@ -221,9 +221,10 @@ class OptionListCollection: Loads the OptionList from the associated file, if it exists. """ try: - p = make_parser() - p.setContentHandler(OptionParser(self)) - p.parse(self.filename) + if os.path.isfile(self.filename): + p = make_parser() + p.setContentHandler(OptionParser(self)) + p.parse(self.filename) except (IOError,OSError,SAXParseException): pass diff --git a/gramps2/src/PluginUtils/_Tool.py b/gramps2/src/PluginUtils/_Tool.py index 8f457d284..5ff095b4c 100644 --- a/gramps2/src/PluginUtils/_Tool.py +++ b/gramps2/src/PluginUtils/_Tool.py @@ -240,7 +240,7 @@ def cli_tool(database,name,category,tool_class,options_class,options_str_dict): # Class handling options for plugins # #------------------------------------------------------------------------- -class OptionHandler(OptionHandler): +class ToolOptionHandler(OptionHandler): """ Implements handling of the options for the plugins. """ @@ -276,4 +276,4 @@ class ToolOptions(Options): if 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) diff --git a/gramps2/src/plugins/Check.py b/gramps2/src/plugins/Check.py index 7e89a5c45..4a1cdb0cf 100644 --- a/gramps2/src/plugins/Check.py +++ b/gramps2/src/plugins/Check.py @@ -538,70 +538,72 @@ class CheckIntegrity: self.progress.step() person = self.db.get_person_from_handle(key) - birth_handle = person.get_birth_handle() - if birth_handle: + birth_ref = person.get_birth_ref() + if birth_ref: + birth_handle = birth_ref.ref birth = self.db.get_event_from_handle(birth_handle) if not birth: # The birth event referenced by the birth handle # does not exist in the database - person.set_birth_handle("") + person.set_birth_ref(None) self.db.commit_person(person,self.trans) self.invalid_events.append(key) 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.set_name("Birth"); + birth.set_type((RelLib.Event.BIRTH,"")) self.db.commit_event(birth,self.trans) self.invalid_birth_events.append(key) - death_handle = person.get_death_handle() - if death_handle: + death_ref = person.get_death_ref() + if death_ref: + death_handle = death_ref.ref death = self.db.get_event_from_handle(death_handle) if not death: # The death event referenced by the death handle # does not exist in the database - person.set_death_handle("") + person.set_death_ref(None) self.db.commit_person(person,self.trans) self.invalid_events.append(key) 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.set_name("Death"); + death.set_type((RelLib.Event.DEATH,"")) self.db.commit_event(death,self.trans) self.invalid_death_events.append(key) - if person.get_event_list(): - for event_handle in person.get_event_list(): + if person.get_event_ref_list(): + for event_ref in person.get_event_ref_list(): + event_handle = event_ref.ref event = self.db.get_event_from_handle(event_handle) if not event: # The event referenced by the person # does not exist in the database #TODO: There is no better way? - person.set_event_list( - person.get_event_list().remove(event_handle)) + person.get_event_ref_list().remove(event_ref) self.db.commit_person(person,self.trans) 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 - person.set_event_list([]) + person.set_event_ref_list([]) self.db.commit_person(person,self.trans) self.invalid_events.append(key) for key in self.db.get_family_handles(): self.progress.step() family = self.db.get_family_from_handle(key) - if family.get_event_list(): - for event_handle in family.get_event_list(): + if family.get_event_ref_list(): + for event_ref in family.get_event_ref_list(): + event_handle = event_ref.ref event = self.db.get_event_from_handle(event_handle) if not event: # The event referenced by the family # does not exist in the database - family.set_event_list( - family.get_event_list().remove(event_handle)) + family.get_event_list().remove(event_ref) self.db.commit_family(family,self.trans) 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 - family.set_event_list([]) + family.set_event_ref_list([]) self.db.commit_family(family,self.trans) self.invalid_events.append(key)