@@ -23,7 +23,7 @@ def default(self, obj):
23
23
24
24
class EditorJsWidget (widgets .Textarea ):
25
25
def __init__ (self , plugins = None , tools = None , config = None , ** kwargs ):
26
- self .plugins = PLUGINS if plugins is None else plugins
26
+ self .plugins = plugins
27
27
self .tools = tools
28
28
self .config = config
29
29
@@ -39,28 +39,37 @@ def __init__(self, plugins=None, tools=None, config=None, **kwargs):
39
39
def configuration (self ):
40
40
tools = {}
41
41
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 ]
45
42
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 ]
51
48
52
- if plugin_class :
49
+ for plugin in plugins :
50
+ plugin_key = PLUGINS_KEYS .get (plugin )
53
51
54
- tools [plugin_key ] = custom_tools .get (
55
- plugin_key , CONFIG_TOOLS .get (plugin_key )
56
- )
52
+ if not plugin_key :
53
+ continue
57
54
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' )
59
58
60
- custom_tools . pop ( plugin_key , None )
59
+ if plugin_class :
61
60
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 )
64
73
65
74
config .update (tools = tools )
66
75
return config
@@ -70,7 +79,12 @@ def media(self):
70
79
js_list = [
71
80
'//cdn.jsdelivr.net/npm/@editorjs/editorjs@' + VERSION # lib
72
81
]
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
+
74
88
js_list .append ('django-editorjs-fields/js/django-editorjs-fields.js' )
75
89
76
90
return Media (
0 commit comments