File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -1024,6 +1024,13 @@ def get_descendant_pages(self):
1024
1024
)
1025
1025
return pages
1026
1026
1027
+ def get_root (self ):
1028
+ node = self .node
1029
+ return self .__class__ .objects .get (
1030
+ node__path = node .path [0 :node .steplen ],
1031
+ publisher_is_draft = self .publisher_is_draft ,
1032
+ )
1033
+
1027
1034
def get_parent_page (self ):
1028
1035
if not self .node .parent_id :
1029
1036
return None
Original file line number Diff line number Diff line change 1
1
# -*- coding: utf-8 -*-
2
2
import datetime
3
3
import os .path
4
+ import functools
4
5
from unittest import skipIf
5
6
6
7
from django .conf import settings
@@ -66,6 +67,26 @@ def test_absolute_url(self):
66
67
self .assertEqual (page_2 .get_absolute_url (language = 'en' ), '/en/inner/' )
67
68
self .assertEqual (page_2 .get_absolute_url (language = 'fr' ), '/fr/french-inner/' )
68
69
70
+ def test_get_root_page (self ):
71
+ _create = functools .partial (
72
+ create_page ,
73
+ template = 'nav_playground.html' ,
74
+ language = 'en' ,
75
+ published = True ,
76
+ )
77
+ page_a = _create ('page_a' )
78
+ page_a_a = _create ('page_a_a_a' , parent = page_a )
79
+ page_a_a_a = _create ('page_a_a_a' , parent = page_a_a )
80
+ page_tree_with_root = [
81
+ (page_a , page_a ),
82
+ (page_a_a , page_a ),
83
+ (page_a_a_a , page_a ),
84
+ ]
85
+
86
+ for page , root in page_tree_with_root :
87
+ self .assertEqual (page .get_root (), root )
88
+ self .assertEqual (page .publisher_public .get_root (), root .publisher_public )
89
+
69
90
def test_treebeard_delete (self ):
70
91
"""
71
92
This is a test for #4102
You can’t perform that action at this time.
0 commit comments