[BEZAHLTER AUFTRAG] Anforderungen für Discourse-Plugin für Topic View Serializer

Was möchten Sie umgesetzt haben?

RE: https://community.unix.com/

Wir haben die Migration zu Discourse gerade abgeschlossen, lassen unsere alten Foren jedoch bis 2021 weiterhin zugänglich, da wir zwei Jahrzehnte an Legacy-Code haben, auf den sich unsere Mitglieder stolz berufen (und in den sie viel Arbeit investiert haben).

Für unsere Mitarbeiter, die von Zeit zu Zeit die Integrität migrierten Codes überprüfen möchten, benötigen wir ein kleines Plugin, das den value aus topic_custom_fields extrahiert und nur die Ganzzahl (die ID des Legacy-Forum-Threads) zur TopicViewSerializer hinzufügt. Der JSON-Serializer soll dann das zusätzliche Schlüssel-Wert-Paar enthalten:

"import_id" : <thread_id_of_legacy_forum>

Siehe die Abfrage unten als Beispiel. Der Wert, der zum TopicViewSerializer hinzugefügt wird (für diese Discourse-topic_id), lautet:

"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)

Wir möchten diese Eigenschaft in einer Template-Komponente wie folgt verwenden:

{{import_id}}

Da wir eine kleine <span>-Template-Komponente für den topic-category-plugin-outlet benötigen, die so aussehen soll (und nur für unsere festgelegte Vertrauensstufe sichtbar ist):

<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>

Bis wann muss es erledigt sein?

Irgendwann in den nächsten paar Wochen ist in Ordnung. Kein großer Zeitdruck.

Was ist Ihr Budget in USD, das Sie für diese Aufgabe anbieten können?

Alle angemessenen Angebote für dieses kleine Plugin sind willkommen.

Zusätzliche Informationen

Wir planen, diesen Code allen, die eine ähnliche Migration durchgeführt haben, kostenlos zur Verfügung zu stellen. Es ist jedoch sehr möglich, dass andere Legacy-Foren nicht so starkes Interesse an der data integrity von Legacy-Code haben, sodass es sein könnte, dass unser Forum das einzige ist, das dieses Plugin nutzt.

Ich habe gestern eine „übermäßig komplexe

3 „Gefällt mir“

Update:

Die Arbeit an diesem Plugin schreitet voran, dank einiger sanfter Anleitung, Ermutigung und Unterstützung durch @spirobel.

Ich arbeite noch Schritt für Schritt am Code und werde ihn polieren, damit er Migratoren, die in Zukunft ähnliche Anforderungen haben könnten, zur Verfügung steht.

@spirobel war wirklich großartig in der Zusammenarbeit. Er ließ mir die meiste Arbeit und das Debugging selbst überlassen, gab mir aber Tipps, Code, Entwurfs-PRs und Hinweise, wenn ich an einer Sackgasse ankam.

Danke @spirobel!

6 „Gefällt mir“

Update:

Gerade abgeschlossen (Alpha-Version) und habe mit dem Live-Test meines ersten Plugins begonnen.

Status:

  • Live-Test

TODO

  • Dies ist mein erstes Discourse-Plugin. Der Link zum Legacy-Forum ist fest im Code verankert. Ich muss dies zu einer konfigurierbaren Einstellung machen.
  • Das Plugin im Laufe der Zeit verbessern, um den Code an den „Discourse-Standard
7 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.