Skip to content

Commit c3c0a65

Browse files
authored
Merge branch 'main' into feat/placeholder-order
2 parents 3642938 + 7ae3042 commit c3c0a65

File tree

11 files changed

+577
-231
lines changed

11 files changed

+577
-231
lines changed

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424

2525
steps:
2626
- name: Checkout
27-
uses: actions/checkout@v5
27+
uses: actions/checkout@v6
2828

2929
- name: Initialize CodeQL
3030
uses: github/codeql-action/init@v4

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
steps:
1010
- name: Checkout
11-
uses: actions/checkout@v5
11+
uses: actions/checkout@v6
1212
- name: Set up Python
1313
uses: actions/setup-python@v6
1414
with:

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
requirements-file: dj60_cms50.txt
4646
os: ubuntu-latest
4747
steps:
48-
- uses: actions/checkout@v5
48+
- uses: actions/checkout@v6
4949
- name: Set up Python ${{ matrix.python-version }}
5050
uses: actions/setup-python@v6
5151
with:
@@ -66,7 +66,7 @@ jobs:
6666
coverage xml
6767
6868
- name: Upload Coverage to Codecov
69-
uses: codecov/codecov-action@v5.5.1
69+
uses: codecov/codecov-action@v5.5.2
7070
with:
7171
token: ${{ secrets.CODECOV_TOKEN }}
7272
files: ./coverage.xml

README.md

Lines changed: 103 additions & 206 deletions
Large diffs are not rendered by default.

djangocms_rest/cms_config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ def patch_page_menu(menu: type[CMSMenu]):
6565
class NavigationNodeMixin:
6666
"""Mixin to add API endpoint and selection logic to NavigationNode."""
6767

68+
api_endpoint = None
69+
6870
def get_api_endpoint(self):
6971
"""Get the API endpoint for the navigation node."""
7072
return self.api_endpoint

djangocms_rest/serializers/placeholders.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def to_representation(self, instance):
6363
instance,
6464
context=Context({"request": self.request}),
6565
language=self.language,
66-
use_cache=True,
66+
use_cache=not getattr(self.request, "_preview_mode", False),
6767
)
6868
if self.request.GET.get("html", False):
6969
html = render_html(self.request, instance, self.language)

djangocms_rest/serializers/utils/cache.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,11 @@ def _get_placeholder_cache_version(placeholder, lang, site_id):
2222
else:
2323
version = int(time.time() * 1000000)
2424
vary_on_list = []
25-
_set_placeholder_cache_version(
26-
placeholder, lang, site_id, version, vary_on_list
27-
)
25+
_set_placeholder_cache_version(placeholder, lang, site_id, version, vary_on_list)
2826
return version, vary_on_list
2927

3028

31-
def _set_placeholder_cache_version(
32-
placeholder, lang, site_id, version, vary_on_list=None, duration=None
33-
):
29+
def _set_placeholder_cache_version(placeholder, lang, site_id, version, vary_on_list=None, duration=None):
3430
"""
3531
Sets the (placeholder x lang)'s version and vary-on header-names list.
3632
"""
@@ -63,9 +59,7 @@ def set_placeholder_rest_cache(placeholder, lang, site_id, content, request):
6359

6460
# "touch" the cache-version, so that it stays as fresh as this content.
6561
version, vary_on_list = _get_placeholder_cache_version(placeholder, lang, site_id)
66-
_set_placeholder_cache_version(
67-
placeholder, lang, site_id, version, vary_on_list, duration=duration
68-
)
62+
_set_placeholder_cache_version(placeholder, lang, site_id, version, vary_on_list, duration=duration)
6963

7064

7165
def get_placeholder_rest_cache(placeholder, lang, site_id, request):
@@ -75,9 +69,5 @@ def get_placeholder_rest_cache(placeholder, lang, site_id, request):
7569
"""
7670
from django.core.cache import cache
7771

78-
key = (
79-
_get_placeholder_cache_key(placeholder, lang, site_id, request, soft=True)
80-
+ ":rest"
81-
)
82-
content = cache.get(key)
83-
return content
72+
key = f"{_get_placeholder_cache_key(placeholder, lang, site_id, request, soft=True)}:rest"
73+
return cache.get(key)

djangocms_rest/views.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
get_object,
3232
get_site_filtered_queryset,
3333
)
34-
from djangocms_rest.views_base import BaseAPIView, BaseListAPIView
34+
from djangocms_rest.views_base import BaseAPIView, BaseListAPIView, preview_schema
3535
from djangocms_rest.schemas import extend_placeholder_schema, extend_page_search_schema, menu_schema_class
3636

3737
# Generate the plugin definitions once at module load time
@@ -220,6 +220,7 @@ def get(self, request: Request) -> Response:
220220
return Response(definitions)
221221

222222

223+
@preview_schema
223224
@menu_schema_class
224225
class MenuView(BaseAPIView):
225226
permission_classes = [IsAllowedPublicLanguage]
@@ -298,7 +299,6 @@ def get_menu_structure(
298299
return result
299300

300301

301-
@menu_schema_class
302302
class SubMenuView(MenuView):
303303
tag = ShowSubMenu
304304

@@ -308,7 +308,6 @@ def populate_defaults(self, kwargs: dict[str, Any]) -> None:
308308
kwargs.setdefault("nephews", 100)
309309

310310

311-
@menu_schema_class
312311
class BreadcrumbView(MenuView):
313312
tag = ShowBreadcrumb
314313
return_key = "ancestors"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ dependencies = [
2020
"djangorestframework",
2121
"djangocms-link>=5.0.0",
2222
"djangocms-text>=0.8.0",
23-
"djangocms-versioning>=2.1.0,<2.4.0",
23+
"djangocms-versioning>=2.1.0",
2424
"pytest-cov>=6.0.0",
2525
"pytest-django>=4.10.0",
2626
]

tests/requirements/dj60_cms50.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
-r base.txt
22

3-
Django>=6.0a1,<6.1
3+
Django>=6.0,<6.1
44
django-cms>=5.0,<5.1

0 commit comments

Comments
 (0)