Skip to content

Commit 7f65404

Browse files
committed
PR updates
1 parent 47dfedf commit 7f65404

File tree

4 files changed

+24
-42
lines changed

4 files changed

+24
-42
lines changed

djangocms_snippet/admin.py

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from django.db import models
55
from django.forms import Textarea
66

7+
from .cms_config import SnippetCMSAppConfig
78
from .models import Snippet
89
from .views import SnippetPreviewView
910

@@ -16,7 +17,18 @@
1617
djangocms_versioning_installed = False
1718

1819

19-
class AbstractSnippetAdmin(admin.ModelAdmin):
20+
djangocms_versioning_enabled = SnippetCMSAppConfig.djangocms_versioning_enabled
21+
22+
snippet_admin_classes = [
23+
admin.ModelAdmin,
24+
]
25+
26+
27+
if djangocms_versioning_installed and djangocms_versioning_enabled:
28+
snippet_admin_classes = [ExtendedVersionAdminMixin] + snippet_admin_classes
29+
30+
31+
class SnippetAdmin(*snippet_admin_classes):
2032
list_display = ('slug', 'name')
2133
search_fields = ['slug', 'name']
2234
prepopulated_fields = {'slug': ('name',)}
@@ -31,25 +43,6 @@ class AbstractSnippetAdmin(admin.ModelAdmin):
3143
formfield_overrides = {
3244
models.TextField: {'widget': Textarea(attrs=text_area_attrs)}
3345
}
34-
35-
class Meta:
36-
abstract = True
37-
38-
39-
djangocms_versioning_enabled = getattr(
40-
settings, 'DJANGOCMS_SNIPPET_VERSIONING_ENABLED', False
41-
)
42-
43-
snippet_admin_classes = [
44-
AbstractSnippetAdmin,
45-
]
46-
47-
48-
if djangocms_versioning_installed and djangocms_versioning_enabled:
49-
snippet_admin_classes = [ExtendedVersionAdminMixin] + snippet_admin_classes
50-
51-
52-
class SnippetAdmin(*snippet_admin_classes):
5346
class Meta:
5447
model = Snippet
5548

djangocms_snippet/forms.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
from django import forms
2-
from django.conf import settings
2+
from django.db import transaction
33
from django.utils.translation import ugettext_lazy as _
44

5+
from djangocms_snippet.cms_config import SnippetCMSAppConfig
56
from djangocms_snippet.models import Snippet, SnippetGrouper
67

78

@@ -11,9 +12,7 @@
1112
except ImportError:
1213
is_versioning_installed = False
1314

14-
djangocms_versioning_enabled = getattr(
15-
settings, 'DJANGOCMS_SNIPPET_VERSIONING_ENABLED', False
16-
)
15+
djangocms_versioning_enabled = SnippetCMSAppConfig.djangocms_versioning_enabled
1716

1817

1918
class SnippetForm(forms.ModelForm):
@@ -35,13 +34,13 @@ def clean(self):
3534
name = data.get("name")
3635
slug = data.get("slug")
3736
snippet_grouper = data.get("snippet_grouper")
38-
published_snippet_queryset = Snippet.objects.all()
37+
snippet_queryset = Snippet.objects.all()
3938

4039
if djangocms_versioning_enabled and is_versioning_installed:
4140
if snippet_grouper:
42-
published_snippet_queryset.exclude(snippet_grouper=snippet_grouper)
41+
snippet_queryset.exclude(snippet_grouper=snippet_grouper)
4342

44-
for snippet in published_snippet_queryset:
43+
for snippet in snippet_queryset:
4544
if snippet.name == name:
4645
self.add_error(
4746
"name", _("A Snippet with this name already exists")
@@ -53,6 +52,7 @@ def clean(self):
5352

5453
return data
5554

55+
@transaction.atomic
5656
def save(self, **kwargs):
5757
if not self.cleaned_data.get("snippet_grouper"):
5858
super().save(commit=False)

djangocms_snippet/urls.py

Lines changed: 0 additions & 13 deletions
This file was deleted.

tests/test_admin.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from cms.test_utils.testcases import CMSTestCase
77

88
from djangocms_snippet import admin as snippet_admin
9+
from djangocms_snippet import cms_config
910
from djangocms_snippet.models import Snippet
1011

1112
from .utils.factories import SnippetWithVersionFactory
@@ -23,12 +24,13 @@ def test_admin_list_display_without_versioning(self):
2324
Without versioning enabled, list_display should not be extended with version related items
2425
"""
2526
admin.site.unregister(Snippet)
27+
reload(cms_config)
2628
reload(snippet_admin)
2729
self.snippet_admin = snippet_admin.SnippetAdmin(Snippet, admin)
2830

2931
list_display = self.snippet_admin.get_list_display(self.snippet_admin_request)
3032

31-
self.assertEqual(self.snippet_admin.__class__.__bases__, (snippet_admin.AbstractSnippetAdmin,))
33+
self.assertEqual(self.snippet_admin.__class__.__bases__, (admin.ModelAdmin, ))
3234
self.assertEqual(list_display, ('slug', 'name'))
3335

3436
def test_admin_list_display_with_versioning(self):
@@ -40,7 +42,7 @@ def test_admin_list_display_with_versioning(self):
4042
list_display = self.snippet_admin.get_list_display(self.snippet_admin_request)
4143

4244
self.assertEqual(
43-
self.snippet_admin.__class__.__bases__, (ExtendedVersionAdminMixin, snippet_admin.AbstractSnippetAdmin)
45+
self.snippet_admin.__class__.__bases__, (ExtendedVersionAdminMixin, admin.ModelAdmin)
4446
)
4547
self.assertEqual(
4648
list_display[:-1], ('slug', 'name', 'get_author', 'get_modified_date', 'get_versioning_state')

0 commit comments

Comments
 (0)