@@ -23,7 +23,7 @@ def default(self, obj):
2323
2424class 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