何をしてほしいですか?
RE: https://community.unix.com/
Discourse への移行は完了しましたが、2021 年まで旧フォーラムへのアクセスを残しています。私たちは 20 年にもわたるレガシーコードを所有しており、各メンバーはそのコードを誇りに思い、多大な労力を注いできました。
移行されたコードの整合性を時々確認したいスタッフのために、topic_custom_fields の value を分割し、整数(レガシーフォーラムのスレッド ID)のみを TopicViewSerializer に追加する小さなプラグインを作成したいと考えています。これにより、JSON シリアライザーに以下のキーと値のペアが追加されます。
"import_id" : <レガシーフォーラムのスレッド ID>
例として以下のクエリをご覧ください。この Discourse の topic_id に対して TopicViewSerializer に追加される値は以下のようになります。
"import_id": 284071
postgres=# \c discourse
You are now connected to database "discourse" as user "postgres".
discourse=# select * from topic_custom_fields where name like '%import_id%' and topic_id = 377947;
id | topic_id | name | value | created_at | updated_at
--------+----------+-----------+---------------+----------------------------+----------------------------
239520 | 377947 | import_id | thread-284071 | 2020-04-22 03:20:03.968513 | 2020-04-22 03:20:03.968513
(1 row)
このプロパティをテンプレートコンポーネントで以下のように使用したいと考えています。
{{import_id}}
topic-category の plugin-outlet に対して、以下のような小さな <span> テンプレートコンポーネントを作成したいと考えています(特定の信頼レベルのユーザーにのみ表示されます)。
<span class='import-id'>Legacy Forum Thread <a class='import-id-link' href='https://www.unix.com/showthread.php?t={{import_id}}'>{{import_id}}</a></span>
完了までの期限はいつですか?
今後数週間以内であればいつでも構いません。急ぐ必要はありません。
このタスクに対する予算(米ドル)はどのくらいですか?
この小さなプラグインに対する妥当な見積もりを歓迎します。
追加情報
このコードは、同様の移行を行ったすべての人に対して自由に公開する予定です。ただし、他のレガシーフォーラムではレガシーコードに対する「データの整合性」への関心がそれほど高くない可能性があり、このプラグインを使用するのは当フォーラムだけになる可能性もあります。
昨日、この要件について「過度に複雑で、おそらく不正確な」説明を書きました。そのため、上記の説明の方がシンプルで理解しやすいと思います(願わくば)。
付記
この小さなプラグインを自分自身で数日間開発しました。これは Discourse プラグインの初めての試みでしたが、TopicViewSerializer 内の import_id の値が常に null になってしまいました。
更新
親切なサポートと指導のおかげで、このタスクのシリアライザー部分は現在動作するようになりました。

