Включить проверку орфографии (SCAYT) по умолчанию в форме flask -admin с использованием flask -ckeditor - PullRequest
0 голосов
/ 20 июня 2020

TL; DR : Кто-нибудь может сказать мне, как добавить настраиваемую конфигурацию (для включения проверки орфографии SCAYT по умолчанию) для поля flask -ckeditor в flask -admin

Прежде всего, я использую flask -ckeditor в своих формах Flask -WTF и Flask -Admin на протяжении многих лет (большое спасибо greyli за его создание, потому что я могу Python дерьмо из большинства вещей, которые мне нужно сделать, но я не мог Javascript ссать в пивоварне ... или что-то в этом роде) - это здорово, и он делает большую часть того, что мне нужно ... но потому что Я ввожу много текста (используя настраиваемую форму flask -WTF), и мне часто приходится редактировать его (для которого я использую flask -admin). Я бы хотел иметь возможность установить проверку орфографии по умолчанию в обе.

То, что я не могу (или не знаю, как это сделать), - это установка требуемой настраиваемой конфигурации ckeditor (scayt_autoStartup: true) для страниц flask -admin.

Там доступна ограниченная конфигурация, которую я использую в конфигурации для установки высоты поля, например, в моем файле конфигурации у меня есть:

CKEDITOR_FILE_UPLOADER = 'filething'
CKEDITOR_PKG_TYPE = 'full'
CKEDITOR_HEIGHT = 500

, и эти параметры работают глобально (ie: в flask - админские формы тоже), но я не могу увидеть (я быстро просмотрел исходный код), чтобы добавить сюда настраиваемую конфигурацию.

Я использую это в своем шаблоне, чтобы установить его как обычно страницы сайта, которые используют CKEditor:

{{ ckeditor.config(name='text_stuff', custom_config="scayt_autoStartup: true") }}

и который отлично работает для обычных страниц, но не контролирует страницы flask -admin.

Есть простой способ сделать это? Думаю, я слишком долго смотрел на проблему и чувствую, что упускаю что-то очевидное.

Ура, Стив


EDIT:
Среди прочитанного я нашел следующее: https://github.com/flask-admin/flask-admin/issues/1328, который указал мне в общем направлении «решения».
Он кажется грязным, но при использовании extra_js в flask - админ Я получил это. Я добавил этот следующий файл в /templates/admin/master.html

{% extends 'admin/base.html' %}
{% block tail_js %}
  {{ super() }}
  {% if admin_view.extra_js %}
    {% for js in admin_view.extra_js %}
      {{js|safe}} {# 'safe' LOL #}
    {% endfor %}
  {% endif %}
{% endblock %}

, а затем добавил его к существующему переопределению, которое у меня уже было по другим причинам в моем файле init :

class MyModelView(ModelView):
    extra_js = ['<script src="//cdn.ckeditor.com/4.9.2/full/ckeditor.js">','CKEDITOR.config.scayt_autoStartup = true</script>']

Вроде ужасно, но работает. Мне нужно заставить ckeditor загрузиться здесь (он загружается снова через несколько строк, когда вы просматриваете исходный код страницы, как часть фактической реализации), в противном случае extra_ js вставляется слишком рано, и поэтому изменение конфигурации прерывается, потому что редактор не еще загружено.

Итак, решение: да ... правильный способ сделать это: нет (вероятно) ... неизвестные неизвестные? Вероятно, несколько.

Мне все равно понравился бы более приятный способ сделать это, но если ничего не произойдет, я назову это «исправленным» (ну, исправленным настолько, насколько он делает то, что я хочу, и я не заметил никаких серьезных минусов пока ) и идем дальше :)

...