Плагин регистрации времени

:information_source: Сводка Позволяет регистрировать время в Discourse
:hammer_and_wrench: Ссылка на репозиторий https://github.com/communiteq/discourse-time-registration
:open_book: Руководство по установке Как установить плагины в Discourse

Регистрация времени в Discourse

Регистрация времени в Discourse — это легковесное интегрированное решение для учёта рабочего времени в Discourse. Оно позволяет пользователям отслеживать время, затраченное на конкретные темы, что делает его идеальным для служб поддержки, фрилансеров или внутреннего управления проектами, где требуется биллинг или учёт времени непосредственно в контексте обсуждений.

Основные возможности

  • Два режима учёта времени:
    • Секундомер: Запустите таймер, когда начинаете работу над темой, и остановите его, когда закончите.
    • Ручной ввод: Мгновенно запишите конкретную продолжительность (например, «1 час» или «15 минут»), если работа уже завершена.
  • Интеграция с темами: Журналы учёта времени отображаются как сообщения с «небольшим действием» в потоке темы (например, «Пользователь работал над исправлением ошибки в течение 01:30»), сохраняя историю работы на виду рядом с обсуждением.
  • Глобальный таймер: В заголовке сайта отображается индикатор активного таймера, позволяющий пользователям перемещаться по форуму, пока идёт отсчёт, и останавливать таймер из любого места.
  • Умное округление: Настраиваемые правила округления (например, округление до ближайших 15 минут) для автоматизации расчётов биллинга.
  • Панель отчётности: Специальный интерфейс для запроса данных о времени.

Как это работает

Учёт времени

Регистрация времени всегда связана с темой.

При просмотре темы пользователи с соответствующими правами увидят кнопку Регистрация времени (иконка часов) в правом верхнем углу заголовка. При нажатии на неё открывается модальное окно, где можно:

  1. Запустить часы: Запускается счётчик реального времени.
  2. Записать время: Позволяет сразу ввести продолжительность вручную (например, «30» для минут или «1:30» для часов/минут) и описание.

При остановке таймера пользователю предлагается ввести описание выполненной работы.

Это создаёт небольшое сообщение с действием в теме, в котором фиксируются пользователь, описание и итоговая продолжительность.

image

Темой будет та, в которой был запущен таймер.

Регистрацию времени могут выполнять пользователи из определённых групп. Сообщения о регистрации времени видны всем, у кого есть доступ к теме.

Редактирование записей

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

Отчётность

Плагин включает подробный Отчёт о регистрации времени (доступен через боковую панель).

  • Фильтры: Фильтрация по диапазону дат, категории и конкретному пользователю.
  • Данные: Отображается таблица с темой, категорией (или «Личное сообщение»), пользователем, описанием, продолжительностью и датой.
  • Итоги: Автоматически рассчитывает общее затраченное время на основе текущих фильтров.

Все пользователи могут создавать отчёты по категориям, которые они могут просматривать.

Настройки

Параметр Описание
time registration groups Группы, которые могут выполнять регистрацию времени
time registration rounding interval Округлять зарегистрированное время до X минут
time registration round up at Порог для округления вверх

Например:

  • интервал округления: 10, округление вверх от: 1 → 12 становится 20
  • интервал округления: 15, округление вверх от: 7.5 → 22 становится 15, 23 становится 30
23 лайка

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

1 лайк

Технически, PM — это тема.

Обратите внимание, что это самоотчётность, и люди, регистрирующие время, могут редактировать затраченное время.
Если есть доверие, это сработает.

2 лайка

Отлично! Однако в консоли инструментов разработчика Chrome сейчас отображается следующее:

[PLUGIN discourse-time-registration] Уведомление об устаревании: Определение классов-коннекторов через registerConnectorClass устарело. Подробнее о современных паттернах см. по адресу https://meta.discourse.org/t/32727 [id устаревания: discourse.register-connector-class-legacy]
a	@	deprecated.js:62
p	@	plugin-connectors.js:23
registerConnectorClass	@	plugin-api.gjs:1087
(anonymous)	@	time-registration-route.js:9
eH	@	plugin-api.gjs:3238
initialize	@	api.js:21
(anonymous)	@	app.js:265
(anonymous)	@	index.js:379
e.each	@	index.js:183
e.walk	@	index.js:112
e.each	@	index.js:59
e.topsort	@	index.js:65
_runInitializer	@	index.js:392
runInstanceInitializers	@	index.js:377
_bootSync	@	instance.js:116
didBecomeReady	@	index.js:784
invoke	@	index.js:262
flush	@	index.js:180
flush	@	index.js:334
_end	@	index.js:762
(anonymous)	@	index.js:499
Promise.then		
(anonymous)	@	index.js:18
flush	@	index.js:29
_scheduleAutorun	@	index.js:928
_ensureInstance	@	index.js:919
schedule	@	index.js:618
f	@	index.js:343
waitForDOMReady	@	index.js:512
init	@	index.js:412
_	@	core.js:97
create	@	core.js:599
(anonymous)	@	start-app.js:18
await in (anonymous)		
(anonymous)	@	discourse-boot.js:13
(anonymous)	@	discourse-boot.js:1
2 лайка

Спасибо за сообщение! Проблема решена.

Теперь также можно изменить дату записи о регистрации с помощью функции «Редактировать».

2 лайка

Я внес ещё несколько незначительных обновлений. Одно из них заключается в том, что плагин по ошибке был включён по умолчанию. Если вы используете плагин, вам следует вручную снова включить его (только в этот раз) после обновления.

3 лайка