Skip to content

Commit 4974aec

Browse files
committed
feat: Add search page endpoint
1 parent 1a5d292 commit 4974aec

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

djangocms_rest/urls.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
views.PageDetailView.as_view(),
3131
name="page-detail",
3232
),
33+
path(
34+
"<slug:language>/search_pages/",
35+
views.PageSearchView.as_view(),
36+
name="page-search",
37+
),
3338
path(
3439
"<slug:language>/placeholders/<int:content_type_id>/<int:object_id>/<str:slot>/",
3540
views.PlaceholderDetailView.as_view(),

djangocms_rest/views.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,17 @@ def get_queryset(self):
135135
raise NotFound()
136136

137137

138+
class PageSearchView(PageListView):
139+
def get(self, request, language: str | None = None) -> Response:
140+
self.search_term = request.GET.get("q", "")
141+
self.language = language
142+
return super().get(request)
143+
144+
def get_queryset(self):
145+
qs = Page.objects.search(self.search_term, language=self.language, current_site_only=False).on_site(self.site)
146+
return PageContent.objects.filter(page__in=qs).distinct()
147+
148+
138149
class PageTreeListView(BaseAPIView):
139150
permission_classes = [IsAllowedPublicLanguage]
140151
serializer_class = PageMetaSerializer

0 commit comments

Comments
 (0)