diff --git a/arkindex/documents/managers.py b/arkindex/documents/managers.py index de754299ac8b47ec1de2592d92ea1e92dbfc5891..5bb515bc8259e7e0c6f86e9d63ab1d1d698ec8b4 100644 --- a/arkindex/documents/managers.py +++ b/arkindex/documents/managers.py @@ -1,4 +1,3 @@ -import uuid from itertools import chain import django @@ -127,38 +126,6 @@ class ElementManager(models.Manager): """ return self.filter(paths__path__contains=[parent_id], **filters).order_by('paths__ordering').distinct() - def get_descendings(self, parents_ids, prefetch=(), **filters): - """ - Get all child elements for some element IDs. - """ - assert all(isinstance(x, uuid.UUID) for x in parents_ids), 'UUIDs are required' - - # Loads paths and group them by element ids - # The map to str is needed to avoid a cast error in PG - from arkindex.documents.models import ElementPath - paths = ElementPath.objects.filter(path__overlap=map(str, parents_ids)).order_by('element_id', 'ordering') - tree = { - parent_id: [ - p.element_id - for p in paths - if parent_id in p.path - ] - for parent_id in parents_ids - } - - # Load children elements in bulk - children = self.filter(id__in=[p.element_id for p in paths], **filters) - if prefetch: - children = children.prefetch_related(*prefetch) - return { - parent_id: [ - child - for child in children - if child.id in tree.get(parent_id) - ] - for parent_id in parents_ids - } - def get_neighbor_paths(self, element, n=1): """ Get n neighbor paths: current, previous and next element paths diff --git a/arkindex/documents/tests/test_element_manager.py b/arkindex/documents/tests/test_element_manager.py index 4c2908c6a7cf20a7cd8008a49c683551dab49969..3c27ed533a5fd409278131864dae060bd8b9af48 100644 --- a/arkindex/documents/tests/test_element_manager.py +++ b/arkindex/documents/tests/test_element_manager.py @@ -38,13 +38,6 @@ class TestElementManager(FixtureTestCase): ids = Element.objects.get_descending(self.p2.id) self.assertCountEqual(ids, []) - def test_get_descendings(self): - # Use all pages, expect Act and nothing else - ids = Element.objects.get_descendings([self.p1.id, self.p2.id, self.p3.id]) - self.assertCountEqual(ids[self.p1.id], [self.act]) - self.assertCountEqual(ids[self.p2.id], []) - self.assertCountEqual(ids[self.p3.id], []) - def test_get_neighbors(self): with self.assertNumQueries(4): self.assertEqual(len(Element.objects.get_neighbors(self.p1, 0)), 1)