Remove redundant 'filter_page_type' helper methods

pull/6947/head
Andy Babic 2021-03-21 22:27:41 +00:00 zatwierdzone przez Karl Hobley
rodzic ee71bd3d07
commit 26561b2ea5
3 zmienionych plików z 5 dodań i 24 usunięć

Wyświetl plik

@ -43,15 +43,6 @@ def page_models_from_string(string):
return tuple(page_models) return tuple(page_models)
def filter_page_type(queryset, page_models):
qs = queryset.none()
for model in page_models:
qs |= queryset.type(model)
return qs
def can_choose_page(page, permission_proxy, desired_classes, can_choose_root=True, user_perm=None): def can_choose_page(page, permission_proxy, desired_classes, can_choose_root=True, user_perm=None):
"""Returns boolean indicating of the user can choose page. """Returns boolean indicating of the user can choose page.
will check if the root page can be selected and if user permissions will check if the root page can be selected and if user permissions
@ -88,7 +79,7 @@ def browse(request, parent_page_id=None):
# Find the highest common ancestor for the specific classes passed in # Find the highest common ancestor for the specific classes passed in
# In many cases, such as selecting an EventPage under an EventIndex, # In many cases, such as selecting an EventPage under an EventIndex,
# this will help the administrator find their page quicker. # this will help the administrator find their page quicker.
all_desired_pages = filter_page_type(Page.objects.all(), desired_classes) all_desired_pages = Page.objects.all().type(*desired_classes)
parent_page = all_desired_pages.first_common_ancestor() parent_page = all_desired_pages.first_common_ancestor()
parent_page = parent_page.specific parent_page = parent_page.specific
@ -105,7 +96,7 @@ def browse(request, parent_page_id=None):
# restrict the page listing to just those pages that: # restrict the page listing to just those pages that:
# - are of the given content type (taking into account class inheritance) # - are of the given content type (taking into account class inheritance)
# - or can be navigated into (i.e. have children) # - or can be navigated into (i.e. have children)
choosable_pages = filter_page_type(pages, desired_classes) choosable_pages = pages.type(*desired_classes)
descendable_pages = pages.filter(numchild__gt=0) descendable_pages = pages.filter(numchild__gt=0)
pages = choosable_pages | descendable_pages pages = choosable_pages | descendable_pages
@ -167,7 +158,7 @@ def search(request, parent_page_id=None):
pages = pages.exclude( pages = pages.exclude(
depth=1 # never include root depth=1 # never include root
) )
pages = filter_page_type(pages, desired_classes) pages = pages.type(*desired_classes)
pages = pages.specific() pages = pages.specific()
pages = pages.search(search_form.cleaned_data['q']) pages = pages.search(search_form.cleaned_data['q'])
else: else:

Wyświetl plik

@ -52,15 +52,6 @@ def page_models_from_string(string):
return tuple(page_models) return tuple(page_models)
def filter_page_type(queryset, page_models):
qs = queryset.none()
for model in page_models:
qs |= queryset.type(model)
return qs
class FieldsParameterParseError(ValueError): class FieldsParameterParseError(ValueError):
pass pass

Wyświetl plik

@ -20,8 +20,7 @@ from .filters import (
from .pagination import WagtailPagination from .pagination import WagtailPagination
from .serializers import BaseSerializer, PageSerializer, get_serializer_class from .serializers import BaseSerializer, PageSerializer, get_serializer_class
from .utils import ( from .utils import (
BadRequestError, filter_page_type, get_object_detail_url, page_models_from_string, BadRequestError, get_object_detail_url, page_models_from_string, parse_fields_parameter)
parse_fields_parameter)
class BaseAPIViewSet(GenericViewSet): class BaseAPIViewSet(GenericViewSet):
@ -477,7 +476,7 @@ class PagesAPIViewSet(BaseAPIViewSet):
return models[0].objects.filter(id__in=self.get_base_queryset().values_list('id', flat=True)) return models[0].objects.filter(id__in=self.get_base_queryset().values_list('id', flat=True))
else: # len(models) > 1 else: # len(models) > 1
return filter_page_type(self.get_base_queryset(), models) return self.get_base_queryset().type(*models)
def get_object(self): def get_object(self):
base = super().get_object() base = super().get_object()