Skip to content

Commit 69dda8d

Browse files
authored
Merge branch 'main' into feat/search
2 parents 46d9966 + 68036fc commit 69dda8d

File tree

4 files changed

+21
-19
lines changed

4 files changed

+21
-19
lines changed

.github/workflows/codeql.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@ jobs:
2727
uses: actions/checkout@v5
2828

2929
- name: Initialize CodeQL
30-
uses: github/codeql-action/init@v3
30+
uses: github/codeql-action/init@v4
3131
with:
3232
languages: ${{ matrix.language }}
3333
queries: +security-and-quality
3434

3535
- name: Autobuild
36-
uses: github/codeql-action/autobuild@v3
36+
uses: github/codeql-action/autobuild@v4
3737
if: ${{ matrix.language == 'javascript' || matrix.language == 'python' }}
3838

3939
- name: Perform CodeQL Analysis
40-
uses: github/codeql-action/analyze@v3
40+
uses: github/codeql-action/analyze@v4
4141
with:
4242
category: "/language:${{ matrix.language }}"

djangocms_rest/serializers/menus.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ class NavigationNodeSerializer(serializers.Serializer):
99
namespace = serializers.CharField(allow_null=True)
1010
title = serializers.CharField()
1111
url = serializers.URLField(allow_null=True)
12+
path = serializers.CharField(allow_null=True)
1213
api_endpoint = serializers.URLField(allow_null=True)
1314
visible = serializers.BooleanField()
1415
selected = serializers.BooleanField()
@@ -22,24 +23,19 @@ def __init__(self, *args, **kwargs):
2223

2324
def get_children(self, obj: NavigationNode) -> list[dict]:
2425
# Assuming obj.children is a list of NavigationNode-like objects
25-
serializer = NavigationNodeSerializer(
26-
obj.children or [], many=True, context=self.context
27-
)
26+
serializer = NavigationNodeSerializer(obj.children or [], many=True, context=self.context)
2827
return serializer.data
2928

3029
def to_representation(self, obj: NavigationNode) -> dict:
3130
"""Customize the base representation of the NavigationNode."""
3231
return {
3332
"namespace": getattr(obj, "namespace", None),
3433
"title": obj.title,
35-
"url": get_absolute_frontend_url(self.request, obj.url),
36-
"api_endpoint": get_absolute_frontend_url(
37-
self.request, getattr(obj, "api_endpoint", None)
38-
),
34+
"url": get_absolute_frontend_url(self.request, obj.url) or "",
35+
"api_endpoint": get_absolute_frontend_url(self.request, getattr(obj, "api_endpoint", None)) or "",
36+
"path": getattr(obj, "api_endpoint", ""),
3937
"visible": obj.visible,
40-
"selected": obj.selected
41-
or obj.attr.get("is_home", False)
42-
and getattr(self.request, "is_home", False),
38+
"selected": obj.selected or obj.attr.get("is_home", False) and getattr(self.request, "is_home", False),
4339
"attr": obj.attr,
4440
"level": obj.level,
4541
"children": self.get_children(obj),

djangocms_rest/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ def get_menu_structure(
341341

342342
request.api_endpoint = api_endpoint
343343
request.LANGUAGE_CODE = language
344-
request.current_page = get_object(self.site, path)
344+
request.current_page = get_object(self.site, path) # Used to identify the current page in menus
345345
self.check_object_permissions(request, request.current_page)
346346
menu_renderer = menu_pool.get_renderer(request)
347347
menu_renderer.site = self.site

djangocms_rest/views_base.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
)
2525
]
2626
)
27-
except ImportError: # pragma: no cover
27+
except ImportError: # pragma: no cover
28+
2829
class OpenApiTypes:
2930
BOOL = "boolean"
3031

@@ -40,11 +41,13 @@ def __init__(self, *args, **kwargs):
4041
def extend_schema(*_args, **_kwargs): # pragma: no cover
4142
def _decorator(obj: T) -> T:
4243
return obj
44+
4345
return _decorator
4446

45-
def preview_schema(obj: T) -> T: # pragma: no cover
47+
def preview_schema(obj: T) -> T: # pragma: no cover
4648
return obj
4749

50+
4851
@preview_schema
4952
class BaseAPIMixin:
5053
"""
@@ -62,9 +65,12 @@ def site(self):
6265
return site if site is not None else get_current_site(self.request)
6366

6467
def _preview_requested(self):
65-
return "preview" in self.request.GET and self.request.GET.get(
66-
"preview", ""
67-
).lower() not in ("0", "false")
68+
preview_mode = "preview" in self.request.GET and self.request.GET.get("preview", "").lower() not in (
69+
"0",
70+
"false",
71+
)
72+
self.request.toolbar.preview_mode_active = preview_mode
73+
return preview_mode
6874

6975
@property
7076
def content_getter(self):

0 commit comments

Comments
 (0)