DB: New method, db.remove_instance(instance, transaction)

Delete an instance of a primary object from the database.
This commit is contained in:
Doug Blank 2015-08-17 13:42:14 -04:00
parent bc2d7167e6
commit 6980bb62d6

View File

@ -1844,3 +1844,27 @@ class DbWriteBase(DbReadBase):
person.birth_ref_index = birth_ref_index person.birth_ref_index = birth_ref_index
person.death_ref_index = death_ref_index person.death_ref_index = death_ref_index
def remove_instance(self, instance, transaction):
"""
Given the instance of an object, delete it from the database.
"""
if instance.__class__.__name__ == "Person":
self.remove_person(instance.handle, transaction)
elif instance.__class__.__name__ == "Place":
self.remove_place(instance.handle, transaction)
elif instance.__class__.__name__ == "Event":
self.remove_event(instance.handle, transaction)
elif instance.__class__.__name__ == "Repository":
self.remove_repository(instance.handle, transaction)
elif instance.__class__.__name__ == "Citation":
self.remove_citation(instance.handle, transaction)
elif instance.__class__.__name__ == "Source":
self.remove_source(instance.handle, transaction)
elif instance.__class__.__name__ == "Media":
self.remove_object(instance.handle, transaction)
elif instance.__class__.__name__ == "Note":
self.remove_note(instance.handle, transaction)
elif instance.__class__.__name__ == "Family":
self.remove_family(instance.handle, transaction)
else:
raise ValueError("invalid instance type: %s" % instance.__class__.__name__)