Плагин управления проектами

Это плагин для управления зависимостями задач в Discourse.

Он превращает категорию в проект, а темы в этой категории — в задачи этого проекта.

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

В заголовке категории отображается самая ранняя дата начала и самая поздняя дата окончания.

Вычисляется общая продолжительность проекта. Вы также можете заблокировать задачи, чтобы автоматический расчёт дат начала и окончания не влиял на них.

Видео на YouTube объясняет, как им пользоваться:

TODO:

  • отображать сообщения на мобильных устройствах и узких экранах
  • добавить представление списка тем для отображения задач в топологическом порядке (+небольшое отступление для зависимых задач)
  • использовать шину сообщений для уведомления других пользователей об изменениях
  • добавить возможность версионирования задач проекта
  • добавить поддержку подпроектов (один подпроект будет задачей в одном проекте, но также и отдельной категорией)
  • сделать интерфейс более красивым (ссылки вместо кнопок и т.д.)
  • написать тесты
  • добавить календарный вид, предложенный @Bank_Live: Projects management plugin - #10 by Bank_Live
  • статус задачи: выполнено / ещё не выполнено
  • ОШИБКА: вызывать setup projects_task при изменении categoryid, а не при инициализации composer

Установка

Следуйте инструкции Установка плагина с официального форума Discourse Meta, используя команду git clone https://github.com/spirobel/projects.git как команду для плагина.

Стихотворение

Я завишу от тебя.
Ты зависишь от меня.
Кто здесь зависимый?
А кто тот, от кого зависят?

код на GitHub

30 лайков

Отличная идея! Как добавить свое собственное поле, пользовательское поле (например, дату для плагина событий и т.д.), создав новую задачу как новую тему?

3 лайка

Не совсем уверен, что правильно понял ваш вопрос: что именно вы хотите сделать?

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

2 лайка

На самом деле это нетривиальная задача. С одной стороны, на стороне фронтенда нужно обрабатывать множество случаев. Я до сих пор не реализовал все из них для этого плагина. Как вы видите, возможность откатов изменений всё ещё в списке задач. Затем возникает вопрос сохранения данных и того, разумно ли использовать Plugin Store или нет. Эта тема обсуждается в этой ветке:

Я также написал этот плагин, потому что хотел понять, могут ли настоящие таблицы принести значительную пользу. Вся эта логика зависимостей и проверка ошибок на бэкенде с откатом изменений, если это просто «сухой» тест, были бы невозможны при использовании только Plugin Store. Я считаю, что здесь есть компромисс. Для некоторых случаев использования Plugin Store достаточно. Но я думаю, что для более сложных задач без «настоящих» таблиц не обойтись. Я также хочу написать статью в блоге об этом, когда немного больше изучу вопрос. Если посмотреть на это более абстрактно, то наша цель — использовать Discourse для коллективного редактирования структурированных данных. В данный момент действительно сложно «просто добавить» пользовательское поле к сообщению или теме, но, я думаю, это можно облегчить. Ещё одна вещь, которую я хочу сделать, — полностью убрать редактор композера и использовать тему только для ввода данных. Не знаю, к чему это приведёт, но вот некоторые размышления: Why not create an OPEN SOURCE platform dedicated to open source drug discovery ? · Issue #581 · OpenSourceMalaria/OSM_To_Do_List · GitHub
Возможно, эти два типа плагинов можно также объединить, как я объясняю в этой задаче на GitHub. То есть ввод данных происходит в темах, где нет обычного редактора d-editor, а есть специализированный редактор для ввода данных, а затем эти данные ссылаются в темах, где всё ещё используется d-editor. Эти другие темы также могут иметь дополнительные поля, как в этом плагине управления проектами.

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/templates/components/composer-editor.hbs

Воспринимайте всё это с долей скептицизма, так как у меня пока не было времени как следует это протестировать. Я напишу подробную статью об этом, когда вернусь из отпуска :smiley:

5 лайков

К сожалению, но плагин сейчас не хочет получать буст.

Сломано

1 лайк

Отлично! Надеемся, что в будущем мы добавим график для каждого периода.

Пожалуйста, опубликуйте сообщение об ошибке, чтобы я мог вам помочь? :slightly_smiling_face:
Также: этот плагин использует свои собственные таблицы, поэтому после установки необходимо повторно запустить миграции. Это должно быть что-то вроде rake db:migrate. Пожалуйста, ознакомьтесь с руководством по установке для получения дополнительных сведений.

1 лайк

Хорошо, может, ты сможешь нарисовать картинку, чтобы я точно понял, что ты хочешь? Я подумаю над этим. :smiley:

1 лайк

Ладно, я имею в виду то же самое.

1 лайк

Хорошо, я добавил это в список TODO, это логично. Сейчас я в отпуске. Посмотрю на это после возвращения :smiley:

Этот стиль сделает страницу более удобной в использовании.

Спасибо за создание этих элементов. Я обязательно подожду, чтобы использовать их.

1 лайк

Действительно, возникла проблема с компиляцией ассетов.

Я уже исправил её и установил на свой сервер: https://cidian.social/c/build-house/5
Я планирую использовать этот плагин для организации своих проектов, поэтому буду продолжать его совершенствовать.

2 лайка

По-прежнему проблема с запуском:

FAILED
--------------------
Pups::ExecError: chown -R root /var/lib/postgresql/12/main не выполнен, код возврата #<Process::Status: pid 41 exit 1>
Место ошибки: /pups/lib/pups/exec_command.rb:112:in `spawn'
Ошибка выполнения с параметрами {"cmd"=>["chown -R root /var/lib/postgresql/12/main", "[ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0", "chown -R postgres:postgres /shared/postgres_data", "chown -R postgres:postgres /var/run/postgresql"]}
1 лайк

Привет, спасибо, что попробовали снова! На какой версии вы находитесь? Последняя версия, с которой я пробовал, — 2.5.0.beta4. Она работает на тестовом сервере здесь: https://cidian.social/c/build-house/5

Хорошо, похоже, это проблема:
https://meta.discourse.org/t/clean-install-upgrade-fails-because-of-pg12/151212

Привет! Я новый пользователь Discourse на художественной платформе сообщества. Я ищу возможный плагин для управления проектами для небольших проектов в нашем сообществе Discourse. Этот плагин всё ещё используется?

1 лайк

Это был первый плагин, который я написал, чтобы научиться создавать плагины для Discourse. На данный момент он находится в незавершённом состоянии. Я ещё не решил, в каком направлении хочу развивать этот плагин, но определённо хочу продолжить работу над ним и использовать написанный код по-новому. Буду рад, если вы расскажете о вашем случае использования. Также вы можете написать мне в личные сообщения, если вам так удобнее! :smiley:

5 лайков

Спасибо за вашу отличную работу @spirobel!

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

Спасибо!

3 лайка

Сейчас я работаю над переписыванием моего базового редактора, а после этого, возможно, вернусь к этому проекту. Но мне нужно будет переосмыслить, кто будет целевой аудиторией этого плагина. Буду рад узнать, для чего вы планируете его использовать. То же самое касается всех, кто читает это: просто напишите, как вы хотели бы использовать Discourse для управления своими проектами. Возможно, мы сможем вместе пообсуждать идеи :slight_smile: :+1:

2 лайка