Что бы вы хотели сделать?
RE: https://community.unix.com/
Мы только что завершили миграцию на Discourse, но оставим доступ к нашим старым форумам до 2021 года, поскольку у нас есть два десятилетия унаследованного кода, которым каждый из наших участников гордится (и над которым много работал).
Для наших сотрудников, которые хотели бы время от времени проверять целостность мигрированного кода, нам нужен небольшой плагин, который будет разделять value из topic_custom_fields и добавлять только целое число (которое является идентификатором потока на старом форуме) в TopicViewSerializer, чтобы в JSON-сериализаторе появилась дополнительная пара ключ-значение:
"import_id": <thread_id_of_legacy_forum>
См. запрос ниже в качестве примера, поэтому значение, добавленное в TopicViewSerializer (для этого идентификатора темы Discourse), будет следующим:
"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, и я постоянно получал значение null для import_id в TopicViewSerializer.
Обновление
Благодаря небольшой доброте и наставничеству, я теперь заставил работать часть задачи, связанную с сериализатором.

