Skip to content

Commit 38f06c9

Browse files
authored
Merge pull request #61 from ticosax/path_to_root_reverse
Allow to specify ordering of path_to_root
2 parents 3f92bb7 + 4dd2fd6 commit 38f06c9

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

sqlalchemy_mptt/mixins.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ def drilldown_tree(self, session=None, json=False, json_fields=None):
336336
query=self._drilldown_query
337337
)
338338

339-
def path_to_root(self, session=None):
339+
def path_to_root(self, session=None, order=desc):
340340
"""Generate path from a leaf or intermediate node to the root.
341341
342342
For example:
@@ -364,7 +364,7 @@ def path_to_root(self, session=None):
364364
table = self.__class__
365365
query = self._base_query_obj(session=session)
366366
query = query.filter(table.is_ancestor_of(self, inclusive=True))
367-
return self._base_order(query, order=desc)
367+
return self._base_order(query, order=order)
368368

369369
@classmethod
370370
def rebuild_tree(cls, session, tree_id):

sqlalchemy_mptt/tests/cases/get_tree.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from sqlalchemy import asc
2+
3+
14
def get_obj(session, model, id):
25
return session.query(model).filter(model.get_pk_column() == id).one()
36

@@ -317,3 +320,6 @@ def go(id):
317320
self.assertEqual(path_8_to_root, [go(8), go(7), go(1)])
318321
self.assertEqual(path_6_to_root, [go(6), go(4), go(1)])
319322
self.assertEqual(path_1_to_root, [go(1)])
323+
324+
asc_path_11_to_root = node11.path_to_root(self.session, order=asc).all()
325+
self.assertEqual(asc_path_11_to_root, [go(1), go(7), go(10), go(11)])

0 commit comments

Comments
 (0)