diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5d7e8c73b..888d3c713 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,7 @@ Changelog Unreleased ========== +* feat: Removed unpublished pages from menu item admin select view for page drop down 1.8.2 (2022-10-25) ================== diff --git a/djangocms_navigation/views.py b/djangocms_navigation/views.py index 61e1c540d..bb49a4ff4 100644 --- a/djangocms_navigation/views.py +++ b/djangocms_navigation/views.py @@ -8,6 +8,8 @@ from cms.models import Page from cms.utils import get_current_site, get_language_from_request +from djangocms_versioning.constants import ARCHIVED, UNPUBLISHED + from djangocms_navigation.utils import is_model_supported, supported_models @@ -32,8 +34,17 @@ def get(self, request, *args, **kwargs): if not is_model_supported(self.menu_content_model, model): return HttpResponseBadRequest() + queryset_data = self.get_data() + + # Removing unpublished pages from queryset + if model == Page: + queryset_data = [ + page for page in queryset_data + if not getattr(page.get_title_obj().versions.first(), "state", None) in [ARCHIVED, UNPUBLISHED] + ] + data = { - "results": [{"text": str(obj), "id": obj.pk} for obj in self.get_data()] + "results": [{"text": str(obj), "id": obj.pk} for obj in queryset_data] } return JsonResponse(data) diff --git a/setup.py b/setup.py index 6572d8e55..a79dfab59 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ INSTALL_REQUIREMENTS = [ "Django>=1.11,<3.3", - "django-treebeard>=4.3", + "django-treebeard>=4.3,<4.6.0", "django-cms", ] diff --git a/tests/requirements/requirements_base.txt b/tests/requirements/requirements_base.txt index 360803480..329a0a83e 100644 --- a/tests/requirements/requirements_base.txt +++ b/tests/requirements/requirements_base.txt @@ -6,12 +6,10 @@ flake8 isort lxml tox - -# Unreleased django-cms 4.0 compatible packages -https://github.com/django-cms/django-cms/tarball/develop-4#egg=django-cms +https://github.com/django-cms/django-cms/tarball/4.0.0#egg=django-cms https://github.com/divio/djangocms-text-ckeditor/tarball/support/4.0.x#egg=djangocms-text-ckeditor -https://github.com/django-cms/djangocms-versioning/tarball/master#egg=djangocms-versioning +https://github.com/django-cms/djangocms-versioning/tarball/1.2.2#egg=djangocms-versioning https://github.com/FidelityInternational/djangocms-version-locking/tarball/master#egg=djangocms-version-locking https://github.com/django-cms/djangocms-moderation/tarball/master#egg=djangocms-moderation -https://github.com/FidelityInternational/djangocms-references/tarball/master#egg=djangocms-references -https://github.com/django-cms/djangocms-alias/tarball/master#egg=djangocms-alias +https://github.com/FidelityInternational/djangocms-references/tarball/1.4.3#egg=djangocms-references +https://github.com/django-cms/djangocms-alias/tarball/1.11.0#egg=djangocms-alias diff --git a/tox.ini b/tox.ini index 72e50f766..77efdb657 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,7 @@ envlist = flake8 isort - py{37,38,39}-dj{22}-sqlite-cms40 + py{37,38,39}-dj{22,32}-sqlite-cms40 skip_missing_interpreters=True