| 概要 | 認可されたユーザーが、新しい期間にカレンダーイベント/トピック(Discourse Calendar and Events を通じて作成されたもの)を複製できるようにします。単一のトピックまたはタグ付きシリーズ全体(例:grand-prix タグが付いたすべてのトピック)に対して機能し、コミットする前に提案された日付を編集する確認ステップが含まれます。 |
|
| リポジトリリンク | GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub | |
| インストールガイド | Discourse プラグインのインストール方法 |
概要
このプラグインは、毎年日付がずれて同じようなイベントが行われるランニングクラブのコミュニティのために開発されました。毎シーズン、各イベントのトピックを手動で再作成することは、[event ...] ブロックの複製、タイトルの修正、そしてすでに再作成されたものを特定する作業を意味しました。これは退屈で、エラーの元でした。Event Duplicator はこれを自動化します:ソースイベント、またはそれらのタグ付きシリーズ全体を選択し、提案された新しい日付を取得し、レビューまたは編集して、確認します。
ユーザー向けの完全な手順については、docs/USAGE.md を参照してください:誰が使用できるか、シリーズの複製と単一トピックの複製の違い、確認ステップの動作方法など。
機能
- シリーズの複製: カテゴリと1つ以上のタグ(例:
grand-prix、signature-race;一致は OR で論理和され、重複は除外されるため、複数の一致するタグを持つトピックは1回だけ表示されます)を選択し、オプションでソース日付範囲に制限し、確認する前に提案された次回発生日付をレビューします。 - 単一イベントの複製: トピックの管理メニュー(レンチアイコン)から、1つのトピックごとに同じレビューと確認フローを実行します。
- 編集可能な確認ステップ: 各行には、元の開始日付と編集可能な提案された新しい日付(日粒度)が表示され、タイトルも編集可能です。終了日付は常にソースイベントの期間から自動的に派生するため、編集された開始日付と同期が外れることはありません。
- 2つのプラグイン可能な日付シフト戦略: 実行ごとに選択可能で、設定可能なデフォルトがあります:
- 同じカレンダー日付: 設定された月数だけ前方にシフトします。
- 月のN番目の曜日: シフトが別の月に落ちても、「月の第3土曜日」などの曜日を保持します。
- 設定可能なシフト量: 12(つまり1年)など、任意の月数だけ前方にシフトします。月次、四半期、または他の定期的なリズムに有用です。実行ごとに上書き可能で、新しい設定(下記)によるサイト全体のデフォルトがあります。
- 「日付未定」フラグ: 現実の日付が決まっていないイベントの場合、行にフラグを立てます。設定可能な注釈(デフォルト
(date TBD))がトピックタイトルとイベント名に追加されます。 - 複製の追跡: 同じイベントを2回複製することを防ぎます(トピックが複数のシリーズタグを持つ可能性があるため)。すでに複製されたトピックは確認でデフォルトでフラグが立てられ、未選択になりますが、チェックボックスを明示的に再チェックして強制することもできます。複製トピックを削除すると、自動的にソースが再複製用に解放され、削除を元に戻すと再ロックされます。
- 複製後のフィードバック: 正常に複製された行は、確認テーブル内で新しいトピックへのリンクになります。本物の失敗はバッチ全体を中止するのではなく、行ごとに報告されます。
要件
- discourse-calendar がインストールされ、有効になっている必要があります。このプラグインは、独自の
[event ...]ポストマークアップとDiscoursePostEvent::Eventモデルを介してイベントを複製し、別の日付ストレージを作成しません。 - Discourse 2026.7.0 に対してテスト済み。以前のリリースでは検証されていません。
設定
すべての設定は 管理者 → 設定 → プラグイン にあり、event_duplicator で検索します:
| 設定 | デフォルト | 説明 |
|---|---|---|
event_duplicator_enabled |
off | プラグインを有効にします。 |
event_duplicator_allowed_groups |
staff | イベントを複製できるグループ(通常のカテゴリ別のトピック作成権限に加えて)。注意:空のリストは誰もという意味で、全員ではありません。完全に開放するには「everyone」グループを追加します。 |
event_duplicator_default_date_strategy |
同じカレンダー日付 | デフォルトの日付シフトルール;実行ごとに上書き可能。 |
event_duplicator_default_shift_months |
12 | デフォルトのシフト量(月単位);実行ごとに上書き可能。 |
event_duplicator_tbd_annotation |
(date TBD) |
確認で TBD とフラグが立てられた場合、複製されたトピックのタイトル/イベント名に追加されるテキスト。注釈機能を完全に無効にするには空白にします。 |
認可は、通常の Discourse カテゴリ権限、event_duplicator_allowed_groups のメンバーシップ、および discourse-calendar の [event] ポストを作成する権限の3つのチェックの AND です。
既知の制限
- 確認ステップの日付編集は日粒度のみです(時刻の編集は不可)。これは意図的なスコープの決定です:ターゲットユースケースは定期的なレース/イベントの日付であり、時刻ではありません。
ソース / 問題
- GitHub: GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub
- 問題/機能リクエスト: Issues · louking/discourse-event-duplicator · GitHub
- バックエンド(RSpec)とフロントエンド(QUnit)のテストスイートは両方含まれており、すべての push/PR で CI で実行されます。
2026-08-01 更新: v1.1.0 は設定可能な月ベースのシフトを追加しました。以下を参照

