diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a911a881..ee960934 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,7 @@ Changelog Unreleased ========== +* fix: Snippet plugin added to a page now displays name instead of ID 4.0.0.dev2 (2021-12-22) ======================= diff --git a/djangocms_snippet/models.py b/djangocms_snippet/models.py index 177caddc..b7baea5f 100644 --- a/djangocms_snippet/models.py +++ b/djangocms_snippet/models.py @@ -106,6 +106,10 @@ class SnippetPtr(CMSPlugin): search_fields = ['snippet__html'] if SEARCH_ENABLED else [] + def get_short_description(self): + snippet_label = SnippetGrouper.objects.filter(pk=self.snippet_grouper.pk).first() + return snippet_label + class Meta: verbose_name = _('Snippet Ptr') verbose_name_plural = _('Snippet Ptrs') diff --git a/tests/test_plugins.py b/tests/test_plugins.py index 540922ed..d6ab5182 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -3,7 +3,7 @@ from cms.api import add_plugin, create_page from cms.models import PageContent from cms.test_utils.testcases import CMSTestCase -from cms.toolbar.utils import get_object_edit_url +from cms.toolbar.utils import get_object_edit_url, get_object_structure_url from djangocms_snippet.models import Snippet, SnippetGrouper from djangocms_versioning.models import Version @@ -290,3 +290,21 @@ def test_published_snippet_and_page_live_url_rendering(self): self.assertContains(response, "

Published snippet

") self.assertNotIn("Draft snippet", str(response.content)) + + def test_correct_name_is_displayed_for_snippet_component_on_page(self): + """ + If a component is added to the page, it should show the snippet name and not ID + """ + add_plugin( + self.draft_pagecontent.placeholders.get(slot="content"), + "SnippetPlugin", + self.language, + snippet_grouper=self.draft_snippet.snippet_grouper, + ) + + # Request structure endpoint on page + request_url = get_object_structure_url(self.draft_pagecontent, "en") + with self.login_user_context(self.superuser): + response = self.client.get(request_url) + + self.assertContains(response, "Snippet plugin_snippet")