Рабочий процесс Discourse

:information_source: Краткое описание Система рабочих процессов на основе тем для Discourse с настраиваемыми этапами, действиями, фильтрами списка рабочих процессов и видом Канбан
:hammer_and_wrench: Ссылка на репозиторий https://github.com/merefield/discourse-workflow
:open_book: Руководство по установке Как установить плагины в Discourse

Понравился этот плагин? Пожалуйста, поставьте ему :star: на GitHub! :pray:

Краткое описание

discourse-workflow предоставляет безопасную фреймворк-структуру рабочих процессов для тем. Каждый рабочий процесс состоит из настраиваемых этапов и опций, и темы перемещаются по этим этапам до завершения.

Он поддерживает ветвление и циклы, представления для обнаружения в виде списка и Канбан, возможность аудита и автоматизацию, оставаясь при этом в рамках основных прав доступа и паттернов интерфейса Discourse.

Возможности

  • Экземпляры рабочих процессов на основе тем с определяемыми администратором рабочими процессами, этапами и опциями этапов
  • Построено на основе основных концепций Discourse: категории, группы и права доступа на основе категорий — вы можете выполнять действия только при наличии соответствующих прав
  • Обнаружение рабочих процессов по адресу /workflow с быстрыми фильтрами:
    • Мои категории
      | Просроченные
      | Этап = X
  • Выбор представления для обнаружения:
    • Список
    • Канбан (доступен только для одного контекста рабочего процесса, совместимого с Канбан)
    • График (доступен только для контекста одного рабочего процесса и для пользователей, имеющих право на просмотр графиков)
  • Доска Канбан для рабочего процесса:
    • кликабельные карточки тем
    • допустимые переходы при перетаскивании
    • переходы с клавиатуры (ArrowLeft / ArrowRight), если это разрешено
  • Баннер темы рабочего процесса:
    • текущий рабочий процесс и этап
    • доступные действия перехода
    • ссылка на визуализацию
  • Модель просроченных задач с иерархией:
    • глобальная настройка: workflow_overdue_days_default
    • переопределение для рабочего процесса
    • переопределение для этапа
    • значение 0 отключает отслеживание просроченных задач на данном уровне
    • индикаторы просроченных задач в списке рабочих процессов и карточках Канбан
  • Построение графиков сгорания (burn-down) для рабочих процессов:
    • конечная точка графика + интеграция с интерфейсом
    • выбор диапазона недель (1–12)
    • полные недельные окна и серии, окрашенные по этапам
  • Журнал аудита переходов через небольшие посты действий
  • Уведомления о появлении в отслеживаемых категориях (Watch First Post)
  • Визуализация рабочего процесса доступна из тем и представлений для обнаружения
  • Интеграция с Data Explorer с запросами по умолчанию для рабочих процессов:
    • статистика сгорания/нарастания
    • журнал аудита
  • Опциональная обработка этапов с помощью ИИ

Вводные понятия

Дорожки (Swim Lanes)

Каждая дорожка рабочего процесса — это категория (или подкатегория). По мере продвижения темы она перемещается между категориями в соответствии с настроенными переходами.

Экземпляры рабочих процессов

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

Участники

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

Действия через опции

Опции этапов определяют доступные действия на каждом этапе. Каждая опция отображается в виде кнопки действия темы и может переместить тему на целевой этап.

Панель управления

Используйте фильтр навигации /workflow, чтобы увидеть темы рабочих процессов, к которым у вас есть доступ, затем отфильтруйте их или переключитесь на вид Канбан для управления потоком в стиле доски.

Журнал аудита

Переходы фиксируются в виде небольших постов действий в теме. Встроенные запросы Data Explorer поддерживают аудит и операционную отчётность.

Визуализация

Визуализация рабочего процесса доступна через:

  • ссылки на баннере темы
  • поля рабочего процесса в списке обнаружения

Основные отличия от стандартного Discourse

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

Начало работы

  1. Включите плагин с помощью параметра workflow_enabled.
  2. Перейдите в Администрирование → Плагины → Discourse Workflow.
  3. Создайте рабочий процесс, сохраните его, затем добавьте этапы и опции этапов.
  4. Настройте права доступа к категориям так, чтобы участники рабочего процесса имели право «Создавать» в соответствующих категориях этапов.
  5. Создайте тему в первой категории этапа.
  6. Выполните переход, используя кнопки действий темы или взаимодействия в режиме Канбан.
  7. Используйте /workflow для управления операционной очередью.

Действия с помощью ИИ

ИИ может выполнять действия на этапе при правильной настройке.

Требования:

  • валидный ключ workflow_openai_api_key
  • ИИ включён на этапе
  • промпт включает как {{options}}, так и {{topic}}

Пример промпта:

ваши варианты: {{options}}. если в следующем тексте говорится, что это вкусно, пожалуйста, примите, иначе отклоните. {{topic}} ответьте одним словом из этих вариантов

Известные проблемы

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

26 лайков

Gets some love.

4 лайка

Have deployed a couple of fixes:

https://github.com/merefield/discourse-workflow/commit/ac49503e8ddc579f9aa8411d8459475ce13c77d7

https://github.com/merefield/discourse-workflow/commit/9a5ebea6299df5a8a7c8582caca942fbaf4f3316

2 лайка

Makes for a more practical view on mobile:

  • IMPROVE: The Workflow Topic List works great on Desktop, but on Mobile it’s too wide, so instead of adding all those columns on mobile, add a Workflow badge to the Title and restrict the full set of columns to Desktop.
2 лайка

some minor but important tweaks.

1 лайк

Hi Robert,
I am playing with the workflow plugin, without AI. This is a simple workflow intended to be used as a support chain for a linux cafe which helps people to migrate from Windows. New topics are created through RFC 6233 mails with subaddressing and come in into the first sub category (level1).

Two issues:

  1. IDs of the workflow steps are not unique. I have three steps with the same ID. ??
  2. a “start” Action on the incoming topic creates “422 unprocessable content” Maybe thats a result of 1)
3 лайка

Thanks for your patience and your feedback. I appreciate your interest in the plugin.

It is a little experimental and as you can see has not received a lot of feedback yet so there are bound to be teething issues.

I will try to recreate your workflow and attempt to recreate the issue.

In the meantime can you screenshot the workflow in the admin screen and share that?

@Thomas_Rother do you have a backtrace on this?

3 лайка

Hi Robert,
no worries, I am aware that this is experimental. Therefore its only installed on a self hosted test instance. You can register there and I could give you admin permissions:

https://forum2.netzwissen.de/login

2 лайка

OK by way of a walkthrough, here’s how I got on:

  • Set up Internet Cafe Tickets Category
  • Set up all the steps as Sub-Categories, resulting in this:

So far so good.

Now let’s create the steps:

OK I can see at least two issues! (But one of them probably caused by the other)

That is strange as I was sure that this was working before. I’m having a look now and if I have time I’ll release a fix shortly.

3 лайка

@Thomas_Rother give that a go:

(You may have to delete and recreate the affected steps)

2 лайка

Which are the most common use cases for this plugin and is this working with Gemini flash 2.0?

Any business process (within reason) with multiple steps and actors. May require extension for specific integrations.

It’s currently OpenAI only, but PR welcome (it uses Chat Completions so not a massive amount of work).

1 лайк

Big News: you can now get the stats to create burn-up/down charts:

  • Adds a daily job to create state count stats that you can use in burndown/burnup charts.
  • Adds a job that check presence of or adds two useful Data Explorer queries
    • Audit log for all transitions
    • Daily counts for workflow instances at each step of their workflow, facilitating burndown/up charts (just export the results).
    • You can give specific groups access to these reports.

NB Discourse Workflow is now only compatible with tests-passed for time being due to changes in the way gem dependencies are handled as part of the major plugin bundling. This should change once the next stable release is made.

4 лайка

I’m trying to figure out why my site became sluggish…

Deprecation warning

[PLUGIN discourse-workflow] Deprecation notice: Accessing site.mobileView or site.desktopView during the site initialization phase is deprecated. In future updates, the mobile mode will be determined by the viewport size and as consequence using these values during initialization can lead to errors and inconsistencies when the browser window is resized. Please move these checks to a component, transformer, or API callback that executes during page rendering. [deprecated since Discourse 3.5.0.beta9-dev] [deprecation id: discourse.static-viewport-initialization] [info: Designing for Different Devices (Viewport Size, Touch/Hover, etc.)] deprecated.js:62:13

I doubt very much this is causing your site to become sluggish!! :laughing: - it’s a deprecation warning.

looking forward to your PR :slight_smile:

1 лайк

Well it shouldn’t be due to Discourse Workflow any longer as I’ve closed several N+1 issues inc. on Topic List and the Visualisation:

etc.

3 лайка

Крупное обновление с несколькими новыми функциями, включая:

  • Новые фильтры списков тем, специфичные для рабочих процессов
  • Флажок «Просрочено»
  • Более подробная метаинформация о рабочем процессе темы
1 лайк

Огромное обновление:

Новый вид Канбан:

  • Добавлен полноценный режим Канбан в /workflow с переключателем Список/Канбан, который отображается только когда в фокусе находится один рабочий процесс, совместимый с Канбан.
    • Внедрена явная валидация совместимости с Канбан (включая детерминированное отображение одной связи) и отображение статуса совместимости в администрировании рабочего процесса.
  • Элементы рабочего процесса теперь можно управлять прямо из Канбан: перетаскивание между юридическими шагами, перемещение шагов с помощью клавиш со стрелками и переход по клику для открытия тем.
  • Повышена надежность при одновременных обновлениях: устаревшие переходы теперь возвращают ошибку 409, отображается четкое сообщение о устаревшем состоянии и инициируется обновление для синхронизации состояния интерфейса.
  • Улучшена удобство использования и понятность доски: опциональные теги Канбан на уровне рабочего процесса, поддержка индикаторов просроченных задач на карточках и стилизация колонок, включая цветные границы колонок по категориям.
5 лайков

Ещё одно крупное обновление: график сгорания задач (burn-up/burn-down) онлайн (в качестве удобной альтернативы существующему встроенному запросу Data Explorer)

  • Добавлен новый вид «График» в разделе Discovery с селектором общего вида (Список / Канбан / График) и управлением периодом (1–12 недель).
    • Реализован API для данных графика сгорания по адресу /discourse-workflow/charts.json, а также интеграция маршрута /workflow/charts.
    • Доступ к графикам регулируется отдельно: администраторы и группы, разрешённые для workflow_charts; графики скрыты от неавторизованных пользователей.
    • Полезная нагрузка графика была ограничена только выбранным контекстом рабочего процесса (selected_workflow_id, selected_workflow_name, series), что исключило неиспользуемый каталог рабочих процессов.
    • Добавлено покрытие запросами/системой и усиление UX: окна полной недели, безопасные для локальной даты метки осей, доступные подписи селектора видов и проверки регрессии рендеринга/состояния графика.

Функция построения графиков должна быть совместима со всеми рабочими процессами:

  • График не требует совместимости с Канбаном, поэтому работает для рабочих процессов, несовместимых с Канбаном.
    • График отображается только тогда, когда текущий список рабочих процессов ограничен ровно одним рабочим процессом.
    • Пользователь должен иметь разрешение на просмотр графиков (администратор или вход в группу workflow_charts_allowed_groups).
    • Если Канбан совместим, в выпадающем списке отображаются варианты Список/Канбан/График.
    • Если Канбан не совместим, в выпадающем списке всё ещё могут отображаться варианты Список/График (при соблюдении двух вышеуказанных условий).
3 лайка

Я выполнил крупную оптимизацию производительности:

4 лайка