romanvm / django-tinymce4-lite

TinyMCE 4 editor widget for Django
MIT License
126 stars 47 forks source link

tinymce not initialized for django admin inline #14

Closed AlJohri closed 6 years ago

AlJohri commented 6 years ago

after clicking "add another" for django admin inlines, the tinymce interface is not initialized

romanvm commented 6 years ago

Your description is not informative at all. Please provide more detailed information, such as:

AlJohri commented 6 years ago

Yeah, sorry for the lack of detail - I was in a rush earlier. Following up now:

Django==1.11.4
django-tinymce4-lite==1.4.2

I think the problem should be relatively simple to reproduce, I'll describe it for now and try to come up with an example later, time permitting.

1) Create an admin page where the inline model has a TinyMce widget. 2) Click "Add Another" in the inline and notice how the second inline will not allow getting focus.

screen shot 2017-09-06 at 11 49 03 pm

I can't click inside the second TinyMCE box.

Debugging further, I can see that this has to do with the selector.

screen shot 2017-09-06 at 11 50 12 pm

You can see in the screenshot above the selector is textarea#id_template_overrides-__prefix__-content. The __prefix__ needs to be replaced with the number representing which inline it is, i.e. 0, 1, 2 etc. You can see the name attribute of the texarea from the django admin code does this correctly: template_overrides-1-content.

You can see how the original django-tinymce took various measures to rectify this:

1) Original method django-tinymce used for handling inlines properly: https://github.com/aljosa/django-tinymce/pull/43/files

2) Method number 2 which they use now: https://github.com/aljosa/django-tinymce/pull/99/files along with an issue with this approach: https://github.com/aljosa/django-tinymce/issues/210

I don't know if it really needs to be that complicated. Modern django offers inline form events: https://docs.djangoproject.com/en/1.11/ref/contrib/admin/javascript/

I'm still debugging further and don't have a great solution in mind yet.

romanvm commented 6 years ago

Thank you for the information. I will investigate this.