Project

General

Profile

Feature #9600

Report als File

Added by Carsten Rose almost 2 years ago. Updated 5 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
-
Start date:
20.11.2019
Due date:
% Done:

0%

Estimated time:
Discuss:

Description

Nach Diskussion mit BB, ME soll QFQ umgebaut werden, so das die T3 QFQ tt-content Records den Inhalt aus dem Filesystem laden koennen.

  • Damit sollte (fuer bestehende tt-content records) ein GIT commit/pull (mergen) durch mehrere Entwickler moeglich werden.
  • Im QFQ tt-content Record wird ein Keyword 'filebased' angegeben. Damit weiss QFQ das es filebased arbeiten soll und dann den Inhalt im Filesystem.

Es sind noch etliche Detailfragen zu loesen - insbesondere beim mergen. Evtl. koennen extended attributes helfen um den Dateinamen sprechend zu machen.

  • Moegliche Directory Struktur
    • Page als Verzeichnis: id-<title>
    • Content als Datei: id-[column]-[language id]-<title> (column: lnrb)
  • Ist der Inhalt im tt-content record neuer als die Datei, wird die Datei aktualisiert. Timestamps werden aktualisiert.
  • Ist der Inhalt in der Datei neuer als der tt-content record, wird der Record aktualisiert. Timestamps werden aktualisiert.
  • Somit kann auf Filesystemebene und im Browser gearbeitet werden.

Related issues

Related to QFQ - Feature #9602: Form definition as JSONNewCarsten Rose20.11.2019

Actions
#1

Updated by Carsten Rose almost 2 years ago

  • Related to Feature #3402: Syntax Highlighting via CodeMirror added
#2

Updated by Carsten Rose almost 2 years ago

#3

Updated by Carsten Rose almost 2 years ago

  • Related to deleted (Feature #3402: Syntax Highlighting via CodeMirror)
#4

Updated by Carsten Rose almost 2 years ago

  • Status changed from New to Some day maybe
#5

Updated by Carsten Rose almost 2 years ago

  • Status changed from Some day maybe to New
#6

Updated by Carsten Rose over 1 year ago

  • Tracker changed from Support to Feature
#7

Updated by Carsten Rose over 1 year ago

  • Target version changed from 146 to next
#8

Updated by Carsten Rose over 1 year ago

  • Target version changed from next to next2
#9

Updated by Marc Egger over 1 year ago

  • Status changed from New to Priorize
  • Assignee changed from Carsten Rose to Marc Egger
#10

Updated by Marc Egger over 1 year ago

  • Subject changed from T3 tt-content record (Report) fuer QFQ: File based to Report als File
#11

Updated by Marc Egger over 1 year ago

Ich bin mir nicht ganz sicher ob die oben genannte Lösung die beste ist.

Nach der Implementierung von Form As File, habe ich erlebt, wie kompliziert es sein kann, eine "simple" Synchronisation zwischen Files und Datenbank zu implementieren. Befolgen wir die obige Lösung, müssen wir nicht nur Files sondern auch die Ordnerstruktur synchronisieren. Natürlich wird es dadurch einfacher, dass wir die Ids mit synchronisieren, dies bindet die Files aber wiederum sehr stark an die Datenbank. Wie interpretieren wir drag-and-drop und copy-paste der files, wenn diese von der Datenbank id abhängig sind?

Ich würde folgende Alternative vorschlagen:

  • Zusätzlich zu dem bisherigen qfq tt-content record, führen wir einen qfq-file tt-content record ein.
  • Mittels Dropdown oder Textfeld kann man ein report file diesem tt-content record zuweisen.
  • Wenn das qfq-file tt-content record gerendert wird, wird das referenzierte File geladen und gerendert.
  • Ein file kann in mehreren tt-content records referenziert werden.

Vorteile:

  • Keine Synchronisation !!!
  • Files sind unabhängig von tt-content ids und page ids.
  • Files koennen problemlos zwischen verschiedenen Typo3 Instanzen hin und her kopiert werden.
  • File Struktur darf, muss aber nicht die Page Struktur wiederspiegeln.
  • Ich schätze den Aufwand kleiner ein.
  • Die Lösung ist unabhängig von Typo3, Einsatz von QFQ in anderen CMS/Frameworks wird ermöglicht.
  • Diese Lösung erscheint mir stabiler gegenüber Typo3 updates.
  • Update auf die neue QFQ Version (mit Report as File) ändert nichts an bestehender QFQ Applikation. Kann also nichts kaputt machen.

Nachteile:

  • Beim erstellen des tt-content records muss ein File ausgewählt (oder erstellt) werden.
  • Die Filestruktur spiegelt nicht automatisch die page Struktur.
  • Der Report kann nicht innerhalb von Typo3 bearbeitet werden.
    • Wir könnten allerdings einen eigenen web-editor in qfq bauen und diesen im Typo3 Interface verlinken.
  • Es wird keine automatische History der Reports mehr erstellt. Versioning muss komplett über Git stattfinden.
  • Die T3 Datenbank muss nachwievor synchronisiert werden. (Dies ist aber auch in der vorgesehenen Lösung der Fall und ist kaum zu verhindern)
#12

Updated by Benjamin Baer over 1 year ago

ich wuerde die id ignorieren und automatisch eine speaking url aus dem ordnernamen generieren fuer die page und beim tt-content record einfach title = dateiname.

#13

Updated by Marc Egger over 1 year ago

Falls wir meine Variante machen, haette Benj gerne ein Feature, mit dem man einmalig alle bestehenden tt-content records in report files exportieren und umwandeln kann.

hmm aber ja, kannst es auch so machen wie du gesagt hast
vermutlich besser, dann haben wir nicht viel mit der typo3 datenbank am hut
solange du ein ~sync~ export script macht der beim ersten mal alles schoen in ordner ablegt die nach pages benannt sind <3

- Benj

#14

Updated by Marc Egger over 1 year ago

CR und ME entschieden:

  • Es gibt kein neues tt-content element.
  • Stattessen führen wir ein neues keyword ein: File=<path>
    • Ist das keyword gesetzt, wird der report aus angegebenem file geladen.
    • Ist es nicht gesetzt, wird der tt-content pfad im filestystem einmalig abgebildet und der inhalt tt-content bodytext in ein file in diesem pfad kopiert. Der bodytext des tt-content element wird ersetzt mit File=<path>.
  • Den inhalt der report files kann man nicht im T3 backend direkt bearbeiten.
  • Im Frontend wird weiterhin ein edit symbol angezeigt, wenn man im T3 backend eingeloggt ist. Damit kann man den inhalt des report files bearbeiten.
#15

Updated by Marc Egger about 1 year ago

  • Status changed from Priorize to In Progress
#16

Updated by Marc Egger about 1 year ago

Implemented first working version with frontend report editor:

Branch: F9600ReportAlsFile

Unittests fail. Have to be corrected.

#17

Updated by Marc Egger about 1 year ago

Fertig implementiert.

TODO:
- Mit Carsten die Notes in FormAsFile.php besprechen
- Selenium tests schreiben

#18

Updated by Marc Egger about 1 year ago

  • Status changed from In Progress to Priorize
#19

Updated by Marc Egger 8 months ago

  • Status changed from Priorize to Closed

Report As File wird in den Selenium Tests jetzt abgedeckt durch den mitgelieferten Form Report.

#20

Updated by Carsten Rose 5 months ago

  • Target version deleted (next2)

Also available in: Atom PDF