8000 Fixed #6225 -- Added get_root method to Page model (#6226) · django-cms/django-cms@cfee4ec · GitHub
[go: up one dir, main page]

Skip to content

Commit cfee4ec

Browse files
authored
Fixed #6225 -- Added get_root method to Page model (#6226)
1 parent 6fb9ab0 commit cfee4ec

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

cms/models/pagemodel.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,6 +1024,13 @@ def get_descendant_pages(self):
10241024
)
10251025
return pages
10261026

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+
10271034
def get_parent_page(self):
10281035
if not self.node.parent_id:
10291036
return None

cms/tests/test_page.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# -*- coding: utf-8 -*-
22
import datetime
33
import os.path
4+
import functools
45
from unittest import skipIf
56

67
from django.conf import settings
@@ -66,6 +67,26 @@ def test_absolute_url(self):
6667
self.assertEqual(page_2.get_absolute_url(language='en'), '/en/inner/')
6768
self.assertEqual(page_2.get_absolute_url(language='fr'), '/fr/french-inner/')
6869

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+
6990
def test_treebeard_delete(self):
7091
"""
7192
This is a test for #4102

0 commit comments

Comments
 (0)
0