Würde das so funktionieren?

  • Hallo Leute,
    ich hab mal eine konzeptionelle Frage:

    Ist es mit Plone mit begrenztem Aufwand möglich, ein Gesamtdokument aus mehreren unabhängigen Artikeln zu erstellen, das in seiner Gesamtheit einer Versionierung unterliegt?

    Zur Erklärung:
    Ich habe ein Formular, das mehrfach mit Daten befüllt und je als einzelner Artikel abgespeichert wird. Aus allen Artikeln will ich einen Bericht generieren und ins Word-Format konvertieren.
    Später will ich einen neuen Bericht basierend auf dem alten erstellen, indem ich ihn dupliziere - der alte Bericht soll erhalten bleiben. Diese beiden Berichte will ich am Ende vergleichen. Der Knackpunkt: Ich möchte, dass die Referenzierung die einzelnen Datensätze erhalten bleibt; das heißt, selbst wenn ich ihre Reihenfolge (mit Umbenennung der angezeigten ID) und den Inhalt verändere, soll am Ende noch ein Vergleich zwischen den beiden Berichten möglich sein.
    Die Sortierung der Artikel im Gesamtdokument soll automatisch von Plone nach vorgegebenen Kriterien (Inhalt-Textbausteine) vorgenommen werden.
    Würde das soweit funktionieren?

    Weshalb ich die einzelnen Artikel brauche: Ich möchte einzelne feststehende Textfelder für einen gekürzten Bericht aus jedem Datensatz herauskopieren lassen, abhängig vom Wert dieser Textfelder, und diese anders sortieren lassen.
    Weshalb ich einen Gesamtbericht brauche: Ich möchte nicht für jeden Artikel einzeln einen Workflow zum Konvertierung anstoßen.

    Danke schon mal fürs Nachdenken über mein Konzept! :) Wenn es unverständlich ist, bitte nachfragen.

  • Hallo,

    dein Use-Case ist kein so seltener und mit Plone bis auf eine kleinigkeit sehr leicht umzusetzten. Da Plone ja Objektorientiert ist, ist eine leichtigkeit einen Content-Typen der Foldish ist zu bauen, der dein Gesamtdokument darstellt. Diesem Gesamtdokument kann man Sub Content-Types, ala Kapitel, Absatz, usw. mitgeben, die dieser dann in seiner View darstellt.

    Die Reihenfolge kann auf sehr viele verschiedene Arten, abssierend auf der Reihenfolge im Ordner, Erstellungsdatum, Veranderungsdatum, oder ähnlichem sehr leicht implementiert werden.

    Dieser Ordner und alles dadrin ist auch beliebig kopierbar.

    Theoretisch könnte man eine 1zu1 Abbildung von z.B. DocBook in Plone-Content-Types erstellen, diese wäre dann auch sofort via Apache FOP in Word, PDF, usw. konvertierbar.

    Soweit alles kein Problem, wo ich mir nicht sicher bin, ist der Punkt der Versionierung, den du möchtest. In Plone ist es absolut kein Problem jedes Content-Objekt einzeln zu versionieren, das Gesamtdokument wäre folglich auch Versioniert. Aber wenn jemand in dem Gesamt Dokument einen Abschnitt updatet, soll es dann ein neues Dokument werden, oder wie stellst du dir das vor?

    Ich hoffe geholfen zu haben

    Gruss Pumukel

    Die beste Informationsquelle sind Leute, die versprochen haben, nichts weiterzuerzählen.

    Marcel Mart
    frz. Schriftsteller

  • Danke Pumukel für deine ausführliche Antwort! Ich wollte sicher gehen, dass ich in keine Sackgasse renne ;)

    Der Folderish-Typ klingt auf jeden Fall sehr passend für meinen Zweck, danke für den Hinweis.
    Nein, das muss gar nicht automatisch versioniert werden, solang man am Ende praktisch einen diff über beide Gesamtdokumente laufen lassen kann. Das Problem dabei erschien mir nur, dass das CMS wahrscheinlich nicht automatisch erkennt, wenn ein Abschnitt verschoben wurde (dass es trotzdem der gleiche Inhalt ist). Aber das sollte mit dem Umbiegen von Referenzen innerhalb des Folderish-Dokuments wohl möglich sein (dass der Eintrag intern eine Nummer behalt, aber auf eine neue Nummer referenziert), zur Not über versteckte Felder, oder?

  • Hallo,

    jetzt muss ich nochmal genau nachfragen, weil ich mir nicht sicher bin es richtig verstanden zu haben. Was meinst du hier mit Referenz?

    1. Abschnitts-ID
    2. Abschnitts-Inhalt
    3. Link/Anker Punkt in einem Abschnitt (HTML ala <a id="ref_anchor" />)

    Dann weiter zu deinen Punkten:

    ein Foldish Content-Type mit mehreren verschiedenen Sub-Content-Typen für Abschnitte ermöglich dir fast alles. Verschiedene Versionen eines solches Content-Objects als auch verschiedene Content-Objekte können miteinander verglichen werden.

    Die Anzeige Reihenfolge ist beliebig machbar. Plone würde immer mitbekommen wen ein Objekt verschoben, dubliziert, gelöscht oder modifiziert wird. Jedes Objekt hat immer eine UID die eineindeutig ist, somit muss man nichtmal mit versteckten Felderen arbeiten.

    Referenzierung: kommt dadrauf an was du unter Referenzierung verstehst, aber sollte prinzipiel immer funktionieren, da dem allen ja immer noch mit XML/HTML, oder ähnlichem eine Dokumentenbeschreibungssprache den Inhalt repräsentiert. Einziges mögliches Problem mehrere identische Referenz-Ziele (z.B. id="annex").

    Gruss Pumukel

    Die beste Informationsquelle sind Leute, die versprochen haben, nichts weiterzuerzählen.

    Marcel Mart
    frz. Schriftsteller

  • Danke für den Hinweis, das klingt ziemlich gut. Die Referenz soll tatsächlich zwischen den Objekten sein, die verschoben/modifiziert werden. Wenn Plone das selbstständig macht, scheint das die optimalen Lösung zu sein.
    Wir sind aber immer noch am Diskutieren, wie genau wir das umsetzen wollen,... mittlerweile ist sogar eine Text-Datei-basierte Lösung mit Git eine Option... Danke auf jeden Fall für deinen Input! Wenn die Plone-Lösung gewinnt, wirst du sicher noch mehr von mir hören :lol: