@@ -28,11 +28,7 @@ def get_page_api_endpoint(page, language=None, fallback=True):
2828 if page .is_home :
2929 return reverse ("page-root" , kwargs = {"language" : language })
3030 path = page .get_path (language , fallback )
31- return (
32- reverse ("page-detail" , kwargs = {"language" : language , "path" : path })
33- if path
34- else None
35- )
31+ return reverse ("page-detail" , kwargs = {"language" : language , "path" : path }) if path else None
3632 except NoReverseMatch :
3733 return None
3834
@@ -51,6 +47,10 @@ def inner(self, page_content: PageContent, *args, **kwargs):
5147 page_content .page ,
5248 page_content .language ,
5349 )
50+ # To save API calls, we add the page's path to the node attributes
51+ node .attr ["path" ] = page_content .page .get_path (
52+ page_content .language ,
53+ )
5454 return node
5555
5656 return inner
@@ -59,9 +59,7 @@ def inner(self, page_content: PageContent, *args, **kwargs):
5959def patch_page_menu (menu : type [CMSMenu ]):
6060 """Patch the CMSMenu to use the REST API endpoint for pages."""
6161 if hasattr (menu , "get_menu_node_for_page_content" ):
62- menu .get_menu_node_for_page_content = patch_get_menu_node_for_page_content (
63- menu .get_menu_node_for_page_content
64- )
62+ menu .get_menu_node_for_page_content = patch_get_menu_node_for_page_content (menu .get_menu_node_for_page_content )
6563
6664
6765class NavigationNodeMixin :
@@ -101,9 +99,7 @@ class RESTToolbarMixin:
10199 def __init__ (self , * args , ** kwargs ):
102100 super ().__init__ (* args , ** kwargs )
103101
104- if getattr (
105- settings , "REST_JSON_RENDERING" , not getattr (settings , "CMS_TEMPLATES" , False )
106- ):
102+ if getattr (settings , "REST_JSON_RENDERING" , not getattr (settings , "CMS_TEMPLATES" , False )):
107103 try :
108104 from djangocms_text import settings
109105
0 commit comments