Skip to content

Commit e98392e

Browse files
committed
fix: Draft static aliases disappeard when viewing pages on site
1 parent f12f78d commit e98392e

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

djangocms_alias/templatetags/djangocms_alias_tags.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@ def _get_alias(self, request, static_code, extra_bits):
116116
alias_creation_kwargs["site"] = current_site
117117

118118
alias = Alias.objects.create(category=default_category, **alias_creation_kwargs)
119-
120119
if (
121120
not alias.get_content(language=self.language, show_draft_content=self.get_draft_content)
122121
and request.user.is_authenticated
122+
and self.get_draft_content
123123
):
124124
alias_content = AliasContent.objects.with_user(request.user).create(
125125
alias=alias,

tests/test_templatetags.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from djangocms_alias.cms_plugins import Alias
99
from djangocms_alias.constants import DEFAULT_STATIC_ALIAS_CATEGORY_NAME
1010
from djangocms_alias.models import Alias as AliasModel
11-
from djangocms_alias.models import Category
11+
from djangocms_alias.models import AliasContent, Category
1212
from djangocms_alias.utils import is_versioning_enabled
1313

1414
from .base import BaseAliasPluginTestCase
@@ -193,6 +193,30 @@ def test_alias_auto_creation_in_template_site_limited_alias(self):
193193

194194
self.assertEqual(alias_requery.count(), 2)
195195

196+
def test_no_alias_content_creation_on_view_on_site(self):
197+
"""
198+
When a template discovers a static code that doesn't exist in preview or on-site mode,
199+
no alias or category is created
200+
"""
201+
alias_template = """{% load djangocms_alias_tags %}{% static_alias "no_creation_code" site %}""" # noqa: E501
202+
203+
# No Alias or Category exist
204+
category = Category.objects.filter(translations__name=DEFAULT_STATIC_ALIAS_CATEGORY_NAME)
205+
alias = AliasModel.objects.filter(static_code="no_creation_code")
206+
alias_content = AliasContent.admin_manager
207+
208+
self.assertEqual(category.count(), 0)
209+
self.assertEqual(alias.count(), 0)
210+
self.assertEqual(alias_content.count(), 0)
211+
212+
with self.login_user_context(self.superuser):
213+
# A default category, and a new alias is created for the template tag
214+
self.render_template_obj(alias_template, {}, self.get_request("/"))
215+
216+
self.assertEqual(category.count(), 1)
217+
self.assertEqual(alias.count(), 1)
218+
self.assertEqual(alias_content.count(), 0)
219+
196220
def test_site_limited_alias_displays_the_correct_contents(self):
197221
"""
198222
The correct contents are shown when viewing the static alias in different sites.

0 commit comments

Comments
 (0)