Skip to content

Commit 53b8a85

Browse files
committed
Fix default tools
1 parent d744fef commit 53b8a85

File tree

1 file changed

+32
-18
lines changed

1 file changed

+32
-18
lines changed

django_editorjs_fields/widgets.py

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def default(self, obj):
2323

2424
class EditorJsWidget(widgets.Textarea):
2525
def __init__(self, plugins=None, tools=None, config=None, **kwargs):
26-
self.plugins = PLUGINS if plugins is None else plugins
26+
self.plugins = plugins
2727
self.tools = tools
2828
self.config = config
2929

@@ -39,28 +39,37 @@ def __init__(self, plugins=None, tools=None, config=None, **kwargs):
3939
def configuration(self):
4040
tools = {}
4141
config = self.config or {}
42-
custom_tools = self.tools or {}
43-
# get name packages without version
44-
plugins = ['@'.join(p.split('@')[:2]) for p in self.plugins]
4542

46-
for plugin in plugins:
47-
plugin_key = PLUGINS_KEYS.get(plugin)
48-
plugin_tools = custom_tools.get(
49-
plugin_key) or CONFIG_TOOLS.get(plugin_key) or {}
50-
plugin_class = plugin_tools.get('class')
43+
if self.plugins or self.tools:
44+
custom_tools = self.tools or {}
45+
# get name packages without version
46+
plugins = ['@'.join(p.split('@')[:2])
47+
for p in self.plugins or PLUGINS]
5148

52-
if plugin_class:
49+
for plugin in plugins:
50+
plugin_key = PLUGINS_KEYS.get(plugin)
5351

54-
tools[plugin_key] = custom_tools.get(
55-
plugin_key, CONFIG_TOOLS.get(plugin_key)
56-
)
52+
if not plugin_key:
53+
continue
5754

58-
tools[plugin_key]['class'] = plugin_class
55+
plugin_tools = custom_tools.get(
56+
plugin_key) or CONFIG_TOOLS.get(plugin_key) or {}
57+
plugin_class = plugin_tools.get('class')
5958

60-
custom_tools.pop(plugin_key, None)
59+
if plugin_class:
6160

62-
if custom_tools:
63-
tools.update(custom_tools)
61+
tools[plugin_key] = custom_tools.get(
62+
plugin_key, CONFIG_TOOLS.get(plugin_key)
63+
)
64+
65+
tools[plugin_key]['class'] = plugin_class
66+
67+
custom_tools.pop(plugin_key, None)
68+
69+
if custom_tools:
70+
tools.update(custom_tools)
71+
else: # default
72+
tools.update(CONFIG_TOOLS)
6473

6574
config.update(tools=tools)
6675
return config
@@ -70,7 +79,12 @@ def media(self):
7079
js_list = [
7180
'//cdn.jsdelivr.net/npm/@editorjs/editorjs@' + VERSION # lib
7281
]
73-
js_list += ['//cdn.jsdelivr.net/npm/' + p for p in self.plugins or []]
82+
83+
plugins = self.plugins or PLUGINS
84+
85+
if plugins:
86+
js_list += ['//cdn.jsdelivr.net/npm/' + p for p in plugins]
87+
7488
js_list.append('django-editorjs-fields/js/django-editorjs-fields.js')
7589

7690
return Media(

0 commit comments

Comments
 (0)