Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ckeditor fail to be initialized in newly added inline item (InlineModelAdmin) #680

Open
sveetch opened this issue Aug 29, 2024 · 1 comment

Comments

@sveetch
Copy link
Contributor

sveetch commented Aug 29, 2024

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

  1. Create a plugin with models Foo and FooItem where FooItem is related to Foo with a foreign keys, contain a field for a CKEditor content (with widget TextEditorWidget) and managed with InlineModelAdmin;
  2. Add an object of this plugin in a page;
  3. Open plugin edition;
  4. Add a new item into plugin;
  5. The CKeditor content field in newly added FooItem object is still a textarea;

Here is a simple video for demonstration:

record.webm

This results to this error in browser console:

error

With debugger just before error (using a debug breakpoint):

debugger_breakpoint

And in inspector for the newly added object:

inspector

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.

@fsbraun
Copy link
Member

fsbraun commented Sep 4, 2024

@sveetch Thanks for mentioning this! Will take a look.

sveetch added a commit to openfun/richie that referenced this issue Nov 21, 2024
This won't make it because djangocms-text-ckeditor has
a bug with inline forms, newly added item does not properly
initialize the CKEditor Javascript

django-cms/djangocms-text-ckeditor#680

So finally  we need to make slide item through children plugin
of SliderPlugin.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants