Ckeditor fail to be initialized in newly added inline item (InlineModelAdmin)
Summary
I'm facing the same old issue than #465 that was resolved years ago in #472. In summary when adding a new InlineModelAdmin item inside a plugin, the CKEditor fail to be initialized and the field is just a raw textarea.
Environment
- Python: 3.10
- Django: 5.0.7
- DjangoCMS: 3.11.6
- djangocms-text-ckeditor: 5.1.5
To Reproduce
- Create a plugin with models
FooandFooItemwhereFooItemis related toFoowith a foreign keys, contain a field for a CKEditor content (with widgetTextEditorWidget) and managed withInlineModelAdmin; - Add an object of this plugin in a page;
- Open plugin edition;
- Add a new item into plugin;
- The CKeditor content field in newly added
FooItemobject is still a textarea;
Here is a simple video for demonstration:
This results to this error in browser console:
With debugger just before error (using a debug breakpoint):
And in inspector for the newly added object:
We can see the JavaScript code attempts to use a id attribute but the payload from object is just an Array.
Expected behavior
Newly added inline admin items should have CKEditor properly initialized.
From what i have searched, it seems the commits from #472 was working well, it did not expected an id attribute to resolve field name:
https://github.com/vxsx/djangocms-text-ckeditor/blob/2364627726dfb1682aeefa1f7ab2d4972155e9f1/djangocms_text_ckeditor/static/djangocms_text_ckeditor/js/cms.ckeditor.js#L217
Opposed to master branch code that is expecting the attribute:
https://github.com/django-cms/djangocms-text-ckeditor/blob/master/djangocms_text_ckeditor/static/djangocms_text_ckeditor/js/cms.ckeditor.js#L431
I tried to patch my local bundle for the id attribute against Array, it worked but then it broke because of further code that attempt to reach other attributes like toolbar.
@sveetch Thanks for mentioning this! Will take a look.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
@fsbraun sorry to ping you directly, but i know about the djangocms-text initiative and i was thinking it was probably the modern and futur official way to embed editor, do you confirm ? And do you think it would work better with "inline item" ?
@sveetch I have not come around to reproducing this, but this would need to work for both djangocms-text and djangocms-text-ckeditor. djangocms-text is the future ~~and afaik this works~~ will need to be fixed there, too :-( .
@sveetch Fixed for djangocms-text 0.4+
You are wonderful !
💡 Developers looking at this should know they can easily migrate to djangocms-text with the 'ckeditor4' editor enabled, compatibility should be complete and without almost anything to do, except if they were providing custom ckeditor4 plugins since the ckeditor stuff in static sources has changed a little bit but it is easy to change.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue will not be fixed any more. Please use djangocms-text (see https://github.com/django-cms/djangocms-text-ckeditor/issues/680#issuecomment-2532362063).