def remove_object_from_handle(self, handle): """ Remove the selected objects from the database after getting user verification. """ the_lists = get_media_referents(handle, self.dbstate.db) object = self.dbstate.db.get_media_from_handle(handle) query = DeleteMediaQuery(self.dbstate, self.uistate, handle, the_lists) is_used = any(the_lists) return (query, is_used, object)
def delete_media(db_handle: DbWriteBase, handle: str, trans: DbTxn) -> None: """Delete an media object and its references.""" ( person_list, family_list, event_list, place_list, source_list, citation_list, ) = get_media_referents(handle, db_handle) for _handle in person_list: person = db_handle.get_person_from_handle(_handle) new_list = [ photo for photo in person.get_media_list() if photo.get_reference_handle() != handle ] person.set_media_list(new_list) db_handle.commit_person(person, trans) for _handle in family_list: family = db_handle.get_family_from_handle(_handle) new_list = [ photo for photo in family.get_media_list() if photo.get_reference_handle() != handle ] family.set_media_list(new_list) db_handle.commit_family(family, trans) for _handle in event_list: event = db_handle.get_event_from_handle(_handle) new_list = [ photo for photo in event.get_media_list() if photo.get_reference_handle() != handle ] event.set_media_list(new_list) db_handle.commit_event(event, trans) for _handle in place_list: place = db_handle.get_place_from_handle(_handle) new_list = [ photo for photo in place.get_media_list() if photo.get_reference_handle() != handle ] place.set_media_list(new_list) db_handle.commit_place(place, trans) for _handle in source_list: source = db_handle.get_source_from_handle(_handle) new_list = [ photo for photo in source.get_media_list() if photo.get_reference_handle() != handle ] source.set_media_list(new_list) db_handle.commit_source(source, trans) for _handle in citation_list: citation = db_handle.get_citation_from_handle(_handle) new_list = [ photo for photo in citation.get_media_list() if photo.get_reference_handle() != handle ] citation.set_media_list(new_list) db_handle.commit_citation(citation, trans) db_handle.remove_media(handle, trans)