プロジェクト管理プラグイン

これは Discourse でタスクの依存関係を管理するためのプラグインです。
基本的にカテゴリをプロジェクトに変換し、そのカテゴリ内のトピックをそのプロジェクトのタスクとして扱います。
タスク間に依存関係を定義できます。具体的には、他のタスクを開始する前に完了させる必要があるタスクを指定します。また、開始日、終了日、タスクの期間を定義することも可能です。これらの値を変更すると、依存するタスクの開始日と終了日が自動的に設定されます。
また、カテゴリのヘッダーには、最も早い開始日と最も遅い終了日が表示されます。
プロジェクト全体の期間も計算されます。また、自動計算による開始日や終了日の変更が反映されないように、タスクをロックすることもできます。
使い方は以下の YouTube 動画で解説されています:

TODO:

  • モバイル画面や狭い画面でのメッセージ表示
  • 位相順序でタスクを表示するトピック一覧ビューの追加(依存タスクを少しインデント)
  • 変更を他のユーザーに通知するためのメッセージバス(message bus)の活用
  • プロジェクトタスクのリビジョン機能の追加
  • サブプロジェクトのサポート追加(1 つのサブプロジェクトは、あるプロジェクト内のタスクであると同時に、独自のカテゴリとしても機能する)
  • UI の美化(ボタンの代わりにリンクを使用するなど)
  • テストの作成
  • カレンダービューの追加(@Bank_LiveProjects management plugin - #10 by Bank_Live で提案)
  • タスクステータス:完了 / 未完了
  • 不具合:カテゴリ ID の変更時に composer 初期化ではなく setup_projects_task を呼び出すように修正

インストール

公式の Discourse Meta にある「プラグインのインストール」Install a Plugin の手順に従ってください。プラグインコマンドとして git clone https://github.com/spirobel/projects.git を使用します。

私はあなたに依存しています。
あなたは私に依存しています。
誰が依存者(depender)でしょうか?
そして誰が依存対象(dependee)でしょうか?

GitHub 上のコード

「いいね!」 30

いいアイデアですね。新しいトピックとして新しいタスクを作成して、独自のフィールド(イベントプラグインの日付など)を追加するには、どうすればよいでしょうか?

「いいね!」 3

ご質問の意図を正しく理解できていないようです。具体的に何をなさりたいのでしょうか?

独自のフィールド(タイトルやタグなど)を追加したいと考えています。そうすれば、後で JSON 形式で簡単にアクセスでき、検索や操作・計算が容易になります。

「いいね!」 2

それは実際には簡単な問題ではありません。一方では、フロントエンドで多くのケースを処理する必要があります。このプラグインについては、まだすべてのケースを処理できていません。ご覧の通り、リビジョン機能は仍未対応の課題です。さらに、データの保存方法や、プラグインストアを使用するのが賢明かどうかという問題もあります。このトピックは以下のスレッドで触れられています:

私はまた、このプラグインを作成した理由は、実際のテーブルが本当に大きなメリットをもたらすかどうかを確認したかったからです。この依存関係のロジックや、バックエンドでのエラーチェック(「ドライ」な試行の場合にロールバックする機能)は、プラグインストアだけでは実現できません。これはトレードオフだと思います。いくつかのユースケースではプラグインストアで十分ですが、より複雑なことを行うには「実際の」テーブルを使わざるを得ないと考えます。また、これをもう少し探求した後にブログ記事を書きたいと思っています。
より抽象的に考えると、私たちがやりたいことは次のことです:Discourseを使って構造化されたデータを共同で編集することです。現時点では、投稿やトピックにカスタムフィールドを「単に追加する」のは非常に難しいですが、これをより簡単にする方法があると思います。もう一つやりたいことは、コンポーザーエディタを完全に排除し、トピックをデータ入力専用として使うことです。これがどうなるかはわかりませんが、以下はブレインストーミングの結果です:Why not create an OPEN SOURCE platform dedicated to open source drug discovery ? · Issue #581 · OpenSourceMalaria/OSM_To_Do_List · GitHub
これらの2種類のプラグインを、私がこのGitHubイシューで説明しているように組み合わせることもできるかもしれません。つまり、通常のdエディタを持たず、専用のデータ入力エディタを持つトピックでデータを入力し、そのデータをまだdエディタを持つトピックで参照するのです。これらの他のトピックも、このプロジェクト管理プラグインのように、追加フィールドを持つかもしれません。

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'
以下のパラメータで exec が失敗しました: {"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