Skip to content

Commit 3860cd3

Browse files
authored
Merge branch 'master' into feature/modernize-python-django-support
2 parents a095f33 + f23bc04 commit 3860cd3

25 files changed

+154
-218
lines changed

djangocms_versioning/admin.py

Lines changed: 115 additions & 151 deletions
Large diffs are not rendered by default.

djangocms_versioning/cms_config.py

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from cms.utils.urlutils import admin_reverse
99
from django.conf import settings
1010
from django.contrib.admin.utils import flatten_fieldsets
11+
from django.contrib.sites.shortcuts import get_current_site
1112
from django.core.exceptions import (
1213
ImproperlyConfigured,
1314
ObjectDoesNotExist,
@@ -52,13 +53,10 @@ def __init__(self):
5253
@cached_property
5354
def versionables_by_content(self):
5455
"""Returns a dict of {content_model_cls: VersionableItem obj}"""
55-
return {
56-
versionable.content_model: versionable for versionable in self.versionables
57-
}
56+
return {versionable.content_model: versionable for versionable in self.versionables}
5857

5958
def is_content_model_versioned(self, content_model):
60-
"""Returns if the content model is registered for versioning.
61-
"""
59+
"""Returns if the content model is registered for versioning."""
6260
return content_model in self.versionables_by_content
6361

6462
@cached_property
@@ -91,9 +89,7 @@ def handle_versioning_setting(self, cms_config):
9189
# still changing and needs to be calculated on the fly
9290
registered_so_far = [v.content_model for v in self.versionables]
9391
if versionable.content_model in registered_so_far:
94-
raise ImproperlyConfigured(
95-
f"{versionable.content_model!r} has already been registered"
96-
)
92+
raise ImproperlyConfigured(f"{versionable.content_model!r} has already been registered")
9793
# Checks passed. Add versionable to our master list
9894
self.versionables.append(versionable)
9995

@@ -118,15 +114,13 @@ def handle_admin_classes(self, cms_config):
118114
with an admin model class that inherits from `versionable.content_admin_mixin`.
119115
"""
120116
replace_admin_for_models(
121-
[
122-
(versionable.content_model, versionable.content_admin_mixin)
123-
for versionable in cms_config.versioning
124-
]
117+
[(versionable.content_model, versionable.content_admin_mixin) for versionable in cms_config.versioning]
125118
)
126119
replace_admin_for_models(
127120
[
128121
(versionable.grouper_model, versionable.grouper_admin_mixin)
129-
for versionable in cms_config.versioning if versionable.grouper_admin_mixin is not None
122+
for versionable in cms_config.versioning
123+
if versionable.grouper_admin_mixin is not None
130124
]
131125
)
132126

@@ -153,12 +147,15 @@ def handle_content_model_manager(self, cms_config):
153147
"""
154148
for versionable in cms_config.versioning:
155149
replace_manager(versionable.content_model, "objects", PublishedContentManagerMixin)
156-
replace_manager(versionable.content_model, "admin_manager", AdminManagerMixin,
157-
_group_by_key=list(versionable.grouping_fields))
150+
replace_manager(
151+
versionable.content_model,
152+
"admin_manager",
153+
AdminManagerMixin,
154+
_group_by_key=list(versionable.grouping_fields),
155+
)
158156

159157
def handle_admin_field_modifiers(self, cms_config):
160-
"""Allows for the transformation of a given field in the ExtendedVersionAdminMixin
161-
"""
158+
"""Allows for the transformation of a given field in the ExtendedVersionAdminMixin"""
162159
extended_admin_field_modifiers = getattr(cms_config, "extended_admin_field_modifiers", None)
163160
if not isinstance(extended_admin_field_modifiers, list):
164161
raise ImproperlyConfigured("extended_admin_field_modifiers must be list of dictionaries")
@@ -171,9 +168,7 @@ def configure_app(self, cms_config):
171168
self.handle_admin_field_modifiers(cms_config)
172169
# Validation to ensure either the versioning or the
173170
# versioning_add_to_confirmation_context config has been defined
174-
has_extra_context = hasattr(
175-
cms_config, "versioning_add_to_confirmation_context"
176-
)
171+
has_extra_context = hasattr(cms_config, "versioning_add_to_confirmation_context")
177172
has_models_to_register = hasattr(cms_config, "versioning")
178173
if not has_extra_context and not has_models_to_register:
179174
raise ImproperlyConfigured(
@@ -257,9 +252,11 @@ def get_readonly_fields(self, request, obj=None):
257252
return fields
258253

259254
def get_queryset(self, request):
260-
queryset = super().get_queryset(request)\
255+
return (
256+
super()
257+
.get_queryset(request)
261258
.prefetch_related(Prefetch("versions", to_attr="prefetched_versions"))
262-
return queryset
259+
)
263260

264261
def copy_language(self, request, object_id):
265262
target_language = request.POST.get("target_language")
@@ -338,18 +335,18 @@ def get_indicator_menu(cls, request, page_content):
338335

339336

340337
class VersioningCMSConfig(CMSAppConfig):
341-
"""Implement versioning for core cms models
342-
"""
338+
"""Implement versioning for core cms models"""
339+
343340
cms_enabled = True
344-
djangocms_versioning_enabled = getattr(
345-
settings, "VERSIONING_CMS_MODELS_ENABLED", True
346-
)
341+
djangocms_versioning_enabled = getattr(settings, "VERSIONING_CMS_MODELS_ENABLED", True)
347342
versioning = [
348343
VersionableItem(
349344
content_model=PageContent,
350345
grouper_field_name="page",
351346
extra_grouping_fields=["language"],
352-
version_list_filter_lookups={"language": get_language_tuple},
347+
version_list_filter_lookups={
348+
"language": lambda *args: get_language_tuple(site_id=get_current_site(args[0]).pk)
349+
},
353350
copy_function=copy_page_content,
354351
grouper_selector_option_label=label_from_instance,
355352
on_publish=on_page_content_publish,

djangocms_versioning/cms_toolbars.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
from collections import OrderedDict
24
from copy import copy
35

djangocms_versioning/datastructures.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
from collections.abc import Iterable
24
from itertools import chain
35
from typing import Any

djangocms_versioning/helpers.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import copy
24
import warnings
35
from collections.abc import Iterable

djangocms_versioning/indicators.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from cms.utils.urlutils import admin_reverse
32
from django.contrib.auth import get_permission_codename
43
from django.db import models

djangocms_versioning/migrations/0001_initial.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# -*- coding: utf-8 -*-
21
# Generated by Django 1.11.13 on 2018-06-12 12:21
3-
from __future__ import unicode_literals
42

53
from django.db import migrations, models
64

djangocms_versioning/migrations/0002_delete_campaign.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# -*- coding: utf-8 -*-
21
# Generated by Django 1.11.14 on 2018-07-24 12:42
3-
from __future__ import unicode_literals
42

53
from django.db import migrations
64

djangocms_versioning/migrations/0003_version.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# -*- coding: utf-8 -*-
21
# Generated by Django 1.11 on 2018-07-30 14:41
3-
from __future__ import unicode_literals
42

53
from django.db import migrations, models
64
import django.db.models.deletion

djangocms_versioning/migrations/0004_auto_20180730_1135.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# -*- coding: utf-8 -*-
21
# Generated by Django 1.11.14 on 2018-07-30 10:35
3-
from __future__ import unicode_literals
42

53
from django.conf import settings
64
from django.db import migrations, models

0 commit comments

Comments
 (0)