Skip to content

Commit 9961e68

Browse files
authored
fix: Simplify versioning interaction for better disentanglement (#182)
1 parent b878edb commit 9961e68

File tree

3 files changed

+9
-18
lines changed

3 files changed

+9
-18
lines changed

CHANGELOG.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
Changelog
33
=========
44

5-
Unreleased
6-
==========
7-
* Django 4.0 and 4.1 support added
5+
2.0.0rc1
6+
========
7+
* Django 4.0, 4.1, and 4.2 support added
88
* Django 2.2 support removed
99
* Python 3.7 support removed
1010
* Changed test setup to run tox from github actions for consistency in testing

djangocms_alias/models.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -178,21 +178,16 @@ def get_content(self, language=None, show_draft_content=False):
178178
try:
179179
return self._content_cache[language]
180180
except KeyError:
181-
qs = self.contents.select_related(
181+
if show_draft_content and is_versioning_enabled():
182+
qs = self.contents(manager="admin_manager").latest_content()
183+
else:
184+
qs = self.contents.all()
185+
qs = qs.select_related(
182186
'alias__category',
183187
).prefetch_related(
184188
'placeholders'
185189
).filter(language=language)
186190

187-
if show_draft_content and is_versioning_enabled():
188-
from djangocms_versioning.constants import DRAFT, PUBLISHED
189-
from djangocms_versioning.helpers import remove_published_where
190-
191-
# Ensure that we are getting the latest valid content, the top most version can become
192-
# archived with a previous version re-published
193-
qs = remove_published_where(qs)
194-
qs = qs.filter(Q(versions__state=DRAFT) | Q(versions__state=PUBLISHED)).order_by('-versions__created')
195-
196191
self._content_cache[language] = qs.first()
197192
return self._content_cache[language]
198193

tests/test_views.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,12 +1400,8 @@ def test_alias_not_shown_when_draft_when_visiting_page(self):
14001400
When visiting a published page with a draft alias the alias
14011401
is not visible
14021402
"""
1403-
from djangocms_versioning.helpers import remove_published_where
1404-
14051403
unpublished_alias = self._create_alias(published=False)
1406-
content = remove_published_where(
1407-
unpublished_alias.contents.filter(language=self.language)
1408-
).first()
1404+
content = unpublished_alias.contents(manager="admin_manager").filter(language=self.language).first()
14091405
alias_placeholder = content.placeholder
14101406

14111407
body = 'unpublished alias'

0 commit comments

Comments
 (0)