Tickets Plugin 🎟

Фильтрация тегов, похоже, вызывает у меня проблему. Я нахожусь на bb019aab5d, если это имеет значение. След стека приведён ниже.

NoMethodError (неопределённый метод id для #Array:0x00007f2c08ca79f8)
app/controllers/tags_controller.rb:249:in search' app/controllers/application_controller.rb:404:in block in with_resolved_locale’
app/controllers/application_controller.rb:404:in with_resolved_locale' lib/middleware/omniauth_bypass_middleware.rb:71:in call’
lib/content_security_policy/middleware.rb:12:in call' lib/middleware/anonymous_cache.rb:368:in call’
config/initializers/100-quiet_logger.rb:23:in call' config/initializers/100-silence_logger.rb:31:in call’
lib/middleware/enforce_hostname.rb:23:in call' lib/middleware/request_tracker.rb:202:in call’

Backtrace

plugins/discourse-tickets/plugin.rb:47:in block in filter_allowed_tags' plugins/discourse-tickets/plugin.rb:47:in select’
plugins/discourse-tickets/plugin.rb:47:in filter_allowed_tags' app/controllers/tags_controller.rb:249:in search’
actionpack (6.1.4.7) lib/action_controller/metal/basic_implicit_render.rb:6:in send_action' actionpack (6.1.4.7) lib/abstract_controller/base.rb:228:in process_action’
actionpack (6.1.4.7) lib/action_controller/metal/rendering.rb:30:in process_action' actionpack (6.1.4.7) lib/abstract_controller/callbacks.rb:42:in block in process_action’
activesupport (6.1.4.7) lib/active_support/callbacks.rb:117:in block in run_callbacks' app/controllers/application_controller.rb:404:in block in with_resolved_locale’

Env

HTTP HOSTS: forums.librehealth.io

Сообщено о проблеме с плагином Tickets, и, к сожалению, он в настоящее время помечен как #plugin:broken-plugin. Если вы удалите плагин из вашего app.yml и пересоберёте его, это позволит остальной части сайта использовать теги как обычно.

(Я перенёс эти сообщения в тему Tickets, чтобы они могли лучше отслеживать проблему :+1:)

2 лайка

@JammyDodger Я совершенно упустил это — спасибо!

2 лайка

Обидно видеть, что это отправилось на кладбище — surely в это было вложено много работы, и у проекта было так много потенциала! Надеюсь, что его когда-нибудь возродят…

2 лайка

В теме, где обсуждался перенос в #plugin:broken-plugin

2 лайка

Я также выявил проблему с плагином TIckets, вызывающую ошибку «Internal Server Error» при попытке добавить тег в любое личное сообщение. Я отключил плагин, и всё вернулось в норму.

Журнал ошибок:

plugins/discourse-tickets/plugin.rb:47:in `block in filter_allowed_tags'

plugins/discourse-tickets/plugin.rb:47:in `select'

plugins/discourse-tickets/plugin.rb:47:in `filter_allowed_tags'

app/controllers/tags_controller.rb:249:in `search'

actionpack (7.0.2.4) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (7.0.2.4) lib/abstract_controller/base.rb:214:in `process_action'

actionpack (7.0.2.4) lib/action_controller/metal/rendering.rb:53:in `process_action'

actionpack (7.0.2.4) lib/abstract_controller/callbacks.rb:234:in `block in process_action'

activesupport (7.0.2.4) lib/active_support/callbacks.rb:118:in `block in run_callbacks'

app/controllers/application_controller.rb:404:in `block in with_resolved_locale'

i18n (1.10.0) lib/i18n.rb:328:in `with_locale'

app/controllers/application_controller.rb:404:in `with_resolved_locale'

activesupport (7.0.2.4) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
2 лайка

@robbyoconnor @Nick_Chomey @jerry0 Я только что исправил проблему, с которой сталкивался этот плагин.

Если кто-то из вас обновит плагин и подтвердит, что проблема решена, я верну этот плагин в #plugin.

4 лайка

Я скоро это проверю и сообщу.

2 лайка

@angus

Огромное спасибо за вашу работу над этим! Очень надеюсь, что всё скоро будет доведено до идеала!

Я провёл базовое тестирование, и проблема всё ещё сохраняется: большинство ошибок, о которых я сообщал здесь, всё ещё актуальны.

Больше не появляется всплывающее сообщение об ошибке «Sorry an error has occured», но при нажатии кнопки «Назначить» (Assign) в модуле «Заявки» (справа от тегов) ничего не происходит, и в консоли отображаются те же ошибки, что и в предыдущей видеозаписи экрана.

Я могу назначить тему с помощью кнопки «Назначить» под самой темой, но модули «Заявки» и «Назначить» всё ещё не взаимодействуют друг с другом. Столбец «Назначено» (Assigned) в панели управления «Заявки» остаётся пустым.

Также надеюсь, что, пока вы работаете над этим, вы сможете уделить немного внимания запросу, который высказывали многие пользователи: разрешить использование модуля «Заявки» не только группе «Staff» (Персонал). Я немного изучил код и заметил несколько мест, где встречаются условия вроде currentUser.staff, is_staff и т. д. Поэтому предполагаю, что это не составит большого труда:

  1. ослабить или убрать это ограничение,
  2. добавить новую группу пользователей (например, TicketsTeam), которую мы сможем создать и настроить самостоятельно, или
  3. внедрить механизм настройки в параметрах «Заявок», позволяющий определить, какие группы имеют доступ к модулю.

Очевидно, что вариант 3 лучше 2, а тот — лучше 1, но мы будем благодарны за любой подход, который вы сочтёте уместным! Кроме того, это сделает модуль «Заявки» более привлекательным для широкой аудитории, что повысит ценность вашей предыдущей работы.

Ещё раз спасибо!

1 лайк

Привет, @angus — да, это устранило проблему с тегами.

Однако я по-прежнему считаю этот плагин нерабочим, так как взаимодействие с плагином Assigned больше не функционирует. И я, и @Nick_Chomey сообщали об этом (и отдельно обращались в Pavilion) уже несколько месяцев, но не получили никакого полезного ответа. Просто не отображается, кому назначен тикет, что является довольно серьёзной проблемой.

Спасибо, надеюсь, это ещё можно исправить.

1 лайк

@Nick_Chomey @jerry0 Я обновил этот плагин для поддержки изменений в плагине assign.

Извините, если мы пропустили ваши сообщения! Как вы пытались связаться с нами? Вы отправили отчет об ошибке (я не вижу ни одного для плагина tickets)? Вы писали мне где-то? Или вы имеете в виду ваши сообщения ранее в этой теме?

Учитывая, что проблема с тегами подтверждена как исправленная, и я решил вопрос интеграции с assign, я перенесу это обратно в #plugin.

6 лайков

Привет, Энкус! Я очень ценю вашу работу над этим. Это великолепно!!! (и в ответ на ваш вопрос: я несколько раз отправлял личные сообщения @ellibereth, как вы и советовали в своем посте выше). Извините, что не оформил отчёт об ошибке, но учту это на будущее!!

3 лайка

@angus Спасибо за дальнейшую работу над этим. Я получаю эту ошибку, когда перехожу на site.com/admin/tickets

Она исчезает, если я включаю опцию «Перенаправлять пользователя, назначенного на маршруты, на панель управления тикетами».

Также, думаю, @jerry0 имел в виду наши различные ответы с тегами здесь за последние 6 месяцев… Мы думали, что этого достаточно, учитывая, что вы и ваша команда несколько раз признавали наличие проблем…

Если бы здесь существовал механизм «Тикеты», доступный не только сотрудникам, то группе не связанных между собой людей было бы легко отслеживать и управлять общими задачами… :wink:

Это то, что отчаянно необходимо в децентрализованном сообществе, таком как те, что часто работают на Discourse. Не имеет смысла использовать отдельный инструмент управления проектами (трение вне сайта, затраты и избыточность), не все проблемы заслуживают создания/отслеживания на Github (трение вне сайта, задачи и вопросы, не связанные с кодом и т.д.), и, очевидно, такая задача требует больше, чем просто категория тем (отсюда и существование этого плагина).

Уже сейчас можно использовать плагин Assign для назначения тем не сотрудникам (например, тем, кто входит в определенную группу) — кажется вполне естественным (и, я подозреваю, не слишком сложным) расширить такую функциональность/доступ на плагин Tickets. Я бы сделал это сам, но я не очень хорошо понимаю, как работает разработка для Discourse… Мне потребовались бы дни, чтобы разобраться.

Поэтому я очень надеюсь, что вы сможете быстро взглянуть на возможность модификации плагина Tickets одним из способов, предложенных в моем предыдущем посте. Последняя мысль на этот счет: учитывая, что у не сотрудников нет доступа к site.com/admin, возможно, панель управления тикетами можно/нужно переместить в панель управления пользователя, где, например, находится панель назначений: site.com/u/[username]/activity/tickets

1 лайк

Итак, чтобы уточнить: всё (включая интеграцию назначения) работает как ожидалось, если включена опция tickets redirect assigned? Я займусь самим вопросом завтра.

Да, мы можем рассмотреть возможность добавления этого, но перед этим плагину необходимы модульные тесты, поэтому это не произойдёт как минимум в течение нескольких месяцев. Самое важное в этом плагине — укрепить существующий функционал, чтобы упростить решение проблем совместимости (например, недавней проблемы с тегами), когда они возникают.

Основная причина, по которой этот плагин не привлекает большего внимания, заключается в том, что у нас просто не хватает времени. Но есть способ, которым вы можете помочь нам решить эту проблему. Найдите разработчика с опытом работы с Ruby on Rails и JavaScript или готового научиться, свяжите его со мной, и я буду наставлять его как ментор и разработчик-сохранитель этого плагина. Как говорится, лучше научить человека рыбачить, чем просто дать рыбу.

Вы разработчик? Я с радостью помогу вам начать работу с разработкой для Discourse, чтобы вы могли взять на себя управление плагином. Начните здесь, и как только вы закончите, я дам вам несколько начальных задач, связанных с плагином Tickets.

5 лайков

Большое спасибо за вдумчивый ответ!

Теперь, когда вы объяснили основные проблемы с плагином, которые необходимо решить перед дальнейшими шагами, я всё полностью понимаю.

Я довольно начинающий «разработчик», в основном работающий с WordPress (PHP, MySQL, немного JS), поэтому несколько месяцев назад мне бы очень понравилось, если бы меня обучили тому, как интегрировать этот функционал в плагин. Но, к сожалению, у меня сейчас нет на это времени. Мой интерес к Discourse связан исключительно с новыми форумами, которые я создал/перенёс для открытой панели управления веб-хостингом CyberPanel.

У разработчика нет ни времени, ни навыков/желания заниматься управлением сообществом, поэтому он во многом остаётся один на один со всеми задачами. Ситуация значительно улучшилась с тех пор, как полгода назад я вмешался и перенёс всё — поддержку, документацию и т.д. — на Discourse. Последним недостающим элементом является внедрение какой-либо системы управления заявками, чтобы сообщество и разработчик могли лучше отслеживать необходимые задачи.

Если кому-то интересно, можно посмотреть здесь: https://community.cyberpanel.net/

В любом случае, я искренне надеюсь, что кто-то другой воспользуется вашим щедрым предложением о наставничестве!

2 лайка

Поскольку CyberPanel является бизнесом, приносящим доход, возможно, они смогут профинансировать эту работу? Я уверен, что Pavilion будет рад такому сотрудничеству.

2 лайка

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

Также открыт к любым предложениям по другим плагинам, которые могли бы подойти для этой цели.

Как создать новые заявки? Буду благодарен за инструкции…

1 лайк

В разделе «Заявки» при нажатии на заголовок столбца «Приоритет» ожидается, что список будет отсортирован по этому столбцу. Однако сортировка не работает — это никак не влияет на порядок отображения.

В URL добавляется параметр:

&order=priority

Но список по-прежнему отображается в случайном порядке.

Здравствуйте и добро пожаловать, @eddie_patently.com :slight_smile:

Я перенёс ваш пост в тему Tickets Plugin 🎟, чтобы разработчики этого плагина были в курсе вашей проблемы. :+1:

2 лайка