Создание плагина для переопределения QUERY_RESULT_MAX_LIMIT

Я наивно попытался создать плагин (чего я никогда не делал, кроме как прошел через учебник по плагинам несколько лет назад), чтобы переопределить ограничения, установленные в модуле DataExplorer, но у меня это не получается.

Я на правильном пути или это совершенно неверный подход?

Примечание: Я устанавливаю QUERY_RESULT_DEFAULT_LIMIT в 1, чтобы было проще проверить, применяются ли пользовательские ограничения.

Я не рекомендую использовать плагин в данном случае.

Вместо этого отправьте PR для добавления GlobalSetting (который поддерживается через переменные окружения).

Похоже, это не было приоритетной задачей для кого-либо за последние 2 года, но мне это понадобилось сегодня, и я решил проблему, отредактировав файл вручную внутри контейнера.

Обходной путь — что-то вроде следующего в app.yml:

  after_bundle_exec:
   - replace:
        filename: "/var/www/discourse/plugins/discourse-data-explorer/plugin.rb"
        from: /QUERY_RESULT_MAX_LIMIT = 10_000/
        to: QUERY_RESULT_MAX_LIMIT = 100_000

Но похоже, что PR будет заключаться в добавлении этого в plugin.rb:

GlobalSetting.add_default(:query_result_max_limit, 10000)

а затем изменении вышеуказанного модуля на что-то вроде:

  QUERY_RESULT_MAX_LIMIT = GlobalSetting.query_result_max_limit || 10_000

Всё ли это, что потребуется?

Почти…

Я бы перестал использовать константу и вместо этого везде использовал бы GlobalSetting.query_result_max_limit. Вы уже настраиваете значение по умолчанию, зачем настраивать его дважды.

Но разве не должно быть значения по умолчанию, если они не зададут GlobalSetting?

Вы настраиваете это в plugin.rb

ООООО. Похоже, что “add_default” действительно добавляет значение по умолчанию. :person_shrugging:

Ой.

Значит, нужно добавить значение по умолчанию для GlobalSetting и заменить все ссылки на старую константу на GlobalSetting.

Понял.

Посмотрю, что смогу сделать.