Skip to content

Commit 2d1e507

Browse files
committed
feat: created custom django_cms serializer to be able to handle django cms filer images
1 parent 2601c0b commit 2d1e507

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

CHANGELOG.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Changelog
66
==================
77

88
* Added support for custom serializer
9-
* Added serializer `django_cms` to be able to serializer `filer.Image`
9+
* Added serializer `django_cms` to be able to serialize `filer.Image`
1010

1111
1.0.0 (2020-09-02)
1212
==================

djangocms_transfer/datastructures.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77

88
from cms.models import CMSPlugin
99

10-
from .utils import get_plugin_model
11-
10+
from .utils import get_plugin_model, get_serializer_name
1211

1312
BaseArchivedPlugin = namedtuple(
1413
'ArchivedPlugin',
@@ -35,7 +34,7 @@ def deserialized_instance(self):
3534
}
3635

3736
# TODO: Handle deserialization error
38-
return list(deserialize('python', [data]))[0]
37+
return list(deserialize(get_serializer_name(), [data]))[0]
3938

4039
@transaction.atomic
4140
def restore(self, placeholder, language, parent=None, with_data=True):

djangocms_transfer/helpers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from django.core import serializers
44

5-
from .utils import get_plugin_fields, get_plugin_model
5+
from .utils import get_plugin_fields, get_plugin_model, get_serializer_name
66

77

88
def get_bound_plugins(plugins):
@@ -41,7 +41,7 @@ def get_plugin_data(plugin, only_meta=False):
4141
custom_data = None
4242
else:
4343
plugin_fields = get_plugin_fields(plugin.plugin_type)
44-
_plugin_data = serializers.serialize('python', (plugin,), fields=plugin_fields)[0]
44+
_plugin_data = serializers.serialize(get_serializer_name(), (plugin,), fields=plugin_fields)[0]
4545
custom_data = _plugin_data['fields']
4646

4747
plugin_data = {

djangocms_transfer/utils.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,8 @@ def get_plugin_fields(plugin_type):
3434
@lru_cache()
3535
def get_plugin_model(plugin_type):
3636
return get_plugin_class(plugin_type).model
37+
38+
39+
def get_serializer_name(default='python'):
40+
from django.conf import settings
41+
return getattr(settings, 'DJANGO_CMS_TRANSFER_SERIALIZER', default)

0 commit comments

Comments
 (0)