您希望完成什么工作?
回复:https://community.unix.com/
我们刚刚完成了向 Discourse 的迁移,但会保留旧论坛的访问权限直到 2021 年,因为我们拥有二十年的遗留代码,每位成员都为此感到自豪(并投入了大量工作)。
为了让我们的工作人员能够随时检查迁移代码的完整性,我们希望开发一个小插件,从 topic_custom_fields 中提取 value 字段,并仅将整数部分(即旧论坛的线程 ID)添加到 TopicViewSerializer 中。这样,JSON 序列化器将包含额外的键值对:
"import_id" : <旧论坛的线程 ID>
以下是一个查询示例,添加到 TopicViewSerializer(针对此 Discourse topic_id)的值将为:
"import_id": 284071
postgres=# \c discourse
您现在已连接到数据库 "discourse",用户为 "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}}
因为我们需要一个小的 <span> 模板组件,用于 topic-category 的 plugin-outlet,其外观如下(仅对指定的信任级别可见):
<span class='import-id'>旧论坛线程 <a class='import-id-link' href='https://www.unix.com/showthread.php?t={{import_id}}'>{{import_id}}</a></span>
您希望何时完成?
未来几周内任何时间都可以,不急。
您能为此任务提供的预算(以美元计)是多少?
欢迎所有针对此小型插件的合理报价。
附加信息
我们计划将此代码免费提供给所有进行过类似迁移的人。然而,其他遗留论坛可能不像我们这样高度关注遗留代码的“数据完整性”,因此我们的论坛可能是唯一使用此插件的论坛。
我昨天撰写了一份关于此需求的“过于复杂”且可能“不准确”的说明,因此我认为上面的描述更简单易懂(希望如此):
附注
我自己尝试开发了这个小型插件,花了好几天时间。这是我第一次尝试编写 Discourse 插件,但在 TopicViewSerializer 中一直得到 import_id 的 null 值。
更新
感谢一些善意和指导,我现在已经使此任务的序列化器部分正常工作了。

