* src/GrampsBSDDB.py (upgrade_8): Insert check for event_list.
* src/plugins/Check.py (check_events): Add checks for family events; Replace garbage event_list with empty list for both types. svn: r5067
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
2005-08-12 Alex Roitman <shura@gramps-project.org>
|
||||||
|
* src/GrampsBSDDB.py (upgrade_8): Insert check for event_list.
|
||||||
|
* src/plugins/Check.py (check_events): Add checks for family
|
||||||
|
events; Replace garbage event_list with empty list for both
|
||||||
|
types.
|
||||||
|
|
||||||
2005-08-12 Jiri Pejchal <jiri.pejchal@gmail.com>
|
2005-08-12 Jiri Pejchal <jiri.pejchal@gmail.com>
|
||||||
* src/po/cs.po: Updated Czech translation.
|
* src/po/cs.po: Updated Czech translation.
|
||||||
|
|
||||||
|
@@ -847,6 +847,8 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
while data:
|
while data:
|
||||||
handle,val = data
|
handle,val = data
|
||||||
handle_list = val[8]
|
handle_list = val[8]
|
||||||
|
if type(handle_list) == list:
|
||||||
|
# Check to prevent crash on corrupted data (event_list=None)
|
||||||
for handle in handle_list:
|
for handle in handle_list:
|
||||||
event = self.get_event_from_handle(handle)
|
event = self.get_event_from_handle(handle)
|
||||||
self.individual_event_names.add(event.name)
|
self.individual_event_names.add(event.name)
|
||||||
@@ -858,9 +860,10 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
while data:
|
while data:
|
||||||
handle,val = data
|
handle,val = data
|
||||||
handle_list = val[6]
|
handle_list = val[6]
|
||||||
|
if type(handle_list) == list:
|
||||||
|
# Check to prevent crash on corrupted data (event_list=None)
|
||||||
for handle in handle_list:
|
for handle in handle_list:
|
||||||
event = self.get_event_from_handle(handle)
|
event = self.get_event_from_handle(handle)
|
||||||
self.family_event_names.add(event.name)
|
self.family_event_names.add(event.name)
|
||||||
data = cursor.next()
|
data = cursor.next()
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
|
@@ -431,7 +431,8 @@ class CheckIntegrity:
|
|||||||
|
|
||||||
def check_events(self):
|
def check_events(self):
|
||||||
self.progress.set_pass(_('Looking for event problems'),
|
self.progress.set_pass(_('Looking for event problems'),
|
||||||
self.db.get_number_of_people())
|
self.db.get_number_of_people()
|
||||||
|
+self.db.get_number_of_families())
|
||||||
|
|
||||||
for key in self.db.get_person_handles(sort_handles=False):
|
for key in self.db.get_person_handles(sort_handles=False):
|
||||||
self.progress.step()
|
self.progress.step()
|
||||||
@@ -441,7 +442,8 @@ class CheckIntegrity:
|
|||||||
if birth_handle:
|
if birth_handle:
|
||||||
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 does not exist in the database
|
# The birth event referenced by the birth handle
|
||||||
|
# does not exist in the database
|
||||||
person.set_birth_handle("")
|
person.set_birth_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)
|
||||||
@@ -455,7 +457,8 @@ class CheckIntegrity:
|
|||||||
if death_handle:
|
if death_handle:
|
||||||
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 does not exist in the database
|
# The death event referenced by the death handle
|
||||||
|
# does not exist in the database
|
||||||
person.set_death_handle("")
|
person.set_death_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)
|
||||||
@@ -465,15 +468,42 @@ class CheckIntegrity:
|
|||||||
death.set_name("Death");
|
death.set_name("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_list():
|
||||||
for event_handle in person.get_event_list():
|
for event_handle in person.get_event_list():
|
||||||
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 does not exist in the database
|
# The event referenced by the person
|
||||||
|
# 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_list().remove(event_handle))
|
person.set_event_list(
|
||||||
|
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:
|
||||||
|
# event_list is None or other garbage
|
||||||
|
person.set_event_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():
|
||||||
|
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))
|
||||||
|
self.db.commit_family(family,self.trans)
|
||||||
|
self.invalid_events.append(key)
|
||||||
|
elif type(family.get_event_list()) != list:
|
||||||
|
# event_list is None or other garbage
|
||||||
|
family.set_event_list([])
|
||||||
|
self.db.commit_family(family,self.trans)
|
||||||
|
self.invalid_events.append(key)
|
||||||
|
|
||||||
def check_place_references(self):
|
def check_place_references(self):
|
||||||
elist = self.db.get_event_handles()
|
elist = self.db.get_event_handles()
|
||||||
|
Reference in New Issue
Block a user