https://project.math.uzh.ch/https://project.math.uzh.ch/favicon.ico?16668783892018-04-30T16:10:03ZProject @ iMathQFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=164712018-04-30T16:10:03ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Target version</strong> set to <i>55</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=177422018-06-14T15:34:32ZBenjamin Baerbenjamin.baer@math.uzh.ch
<ul><li><strong>Target version</strong> changed from <i>55</i> to <i>18.10.3</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=182282018-07-02T06:52:36ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Assignee</strong> changed from <i>Nicola Chiapolini</i> to <i>Elias Villiger</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=182292018-07-02T06:55:12ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Priority</strong> changed from <i>Normal</i> to <i>High</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=182732018-07-02T13:44:14ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>File</strong> <a href="/attachments/1536">qfq-record.txt</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1536/qfq-record.txt">qfq-record.txt</a> added</li><li><strong>File</strong> <a href="/attachments/1537">result.png</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1537/result.png">result.png</a> added</li><li><strong>File</strong> <a href="/attachments/1538">test.html.twig</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1538/test.html.twig">test.html.twig</a> added</li><li><strong>File</strong> <a href="/attachments/1539">twig.patch</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1539/twig.patch">twig.patch</a> added</li></ul><p>Anyway, die Anhänge:
* twig.patch: Die nötigen Änderungen am QFQ-Source
* test.html.twig: Das verwendete Template file
* qfq-record.txt: Der Inhalt des QFQ-Record auf der Test-Seite
* result.png: Screenshot des Resultats</p>
<p>Zusätzliche Voraussetzung: Twig muss natürlich installiert sein (Paket `php-<br />twig` in Debian stable).</p>
<p>Finde das sieht schon sehr vielversprechend aus... Was noch fehlt sind <br />natürlich die UnitTests und die Doku</p>
<p>härzlichi Grüäss und es schöns Wuchenend<br />Nicola</p> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=186622018-07-27T16:04:25ZElias Villiger
<ul></ul>Bei Gebrauch von Twig würde ev. die Generalisierung von QFQ etwas verloren gehen:
<ul>
<li>Die einzelnen Felder (row.firstname, row.name, row.link|qfqlink, ...) müssten pro Template jeweils einzeln aufgelistet werden (? - jedenfalls im Fall von speziellen Spalten wie AS _link)</li>
<li>Spezielle Spalten wie _Pagee oder versteckte Spalten AS _hidden müssten vermutlich auch einzeln gehandhabt werden (wie qfqLink für AS _link) - je nach angebotener Funktionalität könnte das schnell kompliziert werden.</li>
</ul>
<p>Die Idee des Templatings finde ich aber sehr attraktiv, da man so einiges an repetitivem Tippen einsparen könnte. Mein Vorschlag wäre, ein QFQ-eigenes Templating anzubieten:</p>
<pre>
10 {
sql = SELECT * FROM person
template = fileadmin/qfqTemplates/standardTable
}
</pre>
<p>Der User kann dann entsprechende Templates abspeichern, welche in QFQ-Notation gehalten sind, z.B.</p>
<pre>
head = <table class="table">
tail = </table>
rbeg = <tr>
rend = </tr>
fbeg = <td>
fend = </td>
</pre>
<p>Bequem wäre auch, wenn man einzelne Felder des Templates überschreiben könnte (Template wird zuerst eingelesen, dann mit zusätzlichen angegebenen Feldern überschrieben):</p>
<pre>
20 {
sql = SELECT * FROM person
template = fileadmin/qfqTemplates/standardTable
head = <table class="table table-condensed"><tr><th>Id</th><th>Name</th><th>E-Mail</th></tr>
}
</pre> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=186632018-07-27T19:22:21ZNicola Chiapolini
<ul></ul><blockquote>
<p>Bei Gebrauch von Twig würde ev. die Generalisierung von QFQ etwas verloren gehen [...]</p>
</blockquote>
<p>Korrekt. Aber das ist ja auch ein Stück weit die Idee. Ziel von Template-Engines ist üblicherweise Darstellung von Datenzugriff zu trennen. (d.h. das SQL-Query sollte keine Info zur Darstellung enthalten)</p>
<p>(Aber es wäre natürlich nicht besonders schwierig Templates zu erstellen, die die Darstellung vom Spaltennamen abhängig machen.)</p>
<blockquote>
<p>Mein Vorschlag wäre, ein QFQ-eigenes Templating anzubieten</p>
</blockquote>
<p>Davon würde ich dringend abraten. Wenn immer möglich sollten wir auf bestehende und etablierte Tools zurückgreifen. (und im Dekanat werden definitiv weiter mit Twig arbeiten, das hat sich bei uns bereits sehr bewährt. Nötigenfalls werden wir das also auch weiterhin selbst reinpatchen)<br />Falls du konkrete, komplexere Template-Beispiele möchtest, einfach melden.</p>
<blockquote>
<p>Bequem wäre auch, wenn man einzelne Felder des Templates überschreiben könnte</p>
</blockquote>
<p>Twig bietet die Möglichkeit aus einem Template andere Teil-Templates zu laden. Das ist aber in meinem QFQ-Code noch nicht richtig integriert.</p> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=186642018-07-27T19:32:30ZElias Villiger
<ul><li><strong>Assignee</strong> changed from <i>Elias Villiger</i> to <i>Carsten Rose</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=186652018-07-27T20:03:59ZElias Villiger
<ul></ul><p>Macht Sinn. Ich dachte, es ginge vor allem darum, den Boilerplate von head/tail/rbeg/... zu reduzieren, aber wenn es um eine Trennung von Design und SQL-Code geht, macht Twig schon Sinn.</p>
<p>Das oben beschriebene "QFQ-eigene Templating" wäre auch nicht wirklich ein "Templating" in dem Sinne, sondern eher ein Auslagern häufiger Darstellungsoptionen zur Wiederverwendung.</p>
<p>Für eigenen meinen Gebrauch von QFQ (geolean) sehe ich keine grossen Anwendungen für Templating im Sinn von Twig; aber da es sich bei euch bewährt, würde mir ein Einblick in euren Umgang damit bestimmt weitere Perspektiven zeigen.</p>
<p>Ich habe das Ticket jetzt wieder Carsten zugewiesen, dann können wir nach seinen Ferien weiterschauen.</p> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=186692018-07-30T09:37:52ZNicola Chiapolini
<ul><li><strong>File</strong> <a href="/attachments/1589">display_committee.txt</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1589/display_committee.txt">display_committee.txt</a> added</li><li><strong>File</strong> <a href="/attachments/1590">display_state.txt</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1590/display_state.txt">display_state.txt</a> added</li><li><strong>File</strong> <a href="/attachments/1591">screenshot.png</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/1591/screenshot.png">screenshot.png</a> added</li></ul><p>Hier noch zwei komplexere Beispiele für den Einsatz von Twig. (display_committee.txt, display_state.txt und screenshot.png)</p> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=216542018-10-27T12:15:20ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Target version</strong> changed from <i>18.10.3</i> to <i>18.12.1</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=232342018-12-11T09:20:38ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Target version</strong> changed from <i>18.12.1</i> to <i>141</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=283182019-06-05T11:05:34ZMarc Egger
<ul><li><strong>Assignee</strong> changed from <i>Carsten Rose</i> to <i>Marc Egger</i></li><li><strong>Priority</strong> changed from <i>High</i> to <i>Normal</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=283192019-06-05T11:05:51ZMarc Egger
<ul><li><strong>Due date</strong> set to <i>19.06.2019</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=288942019-06-19T13:55:50ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Target version</strong> changed from <i>141</i> to <i>next6</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=295532019-07-04T09:00:24ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Due date</strong> changed from <i>19.06.2019</i> to <i>26.07.2019</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=298962019-07-17T09:38:45ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Target version</strong> changed from <i>next6</i> to <i>19.7.1</i></li></ul> QFQ - Feature #5456: TWIG als Template Engine fuer Report Syntaxhttps://project.math.uzh.ch/issues/5456?journal_id=298982019-07-17T09:44:09ZCarsten Rosecarsten.rose@math.uzh.ch
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>Closed</i></li></ul>