Sven Schöling [Mon, 10 Oct 2016 12:23:36 +0000 (14:23 +0200)]
oe: auch die korrekten checks registrieren
Sven Schöling [Mon, 10 Oct 2016 12:23:19 +0000 (14:23 +0200)]
ActionBar: checks korrekt interpretieren
Sven Schöling [Fri, 7 Oct 2016 16:22:14 +0000 (18:22 +0200)]
oe: neue actionbar version prototyp
Sven Schöling [Fri, 7 Oct 2016 16:21:12 +0000 (18:21 +0200)]
ActionBar: calling conventions geändert, +check/disabled/confirm
Sven Schöling [Thu, 6 Oct 2016 09:42:45 +0000 (11:42 +0200)]
ActionBar: oe Prototyp
Sven Schöling [Thu, 6 Oct 2016 09:42:10 +0000 (11:42 +0200)]
ActionBar: Funktionierender Prototyp mit submit und actionbutton
Sven Schöling [Thu, 29 Sep 2016 12:00:09 +0000 (14:00 +0200)]
Actionbar Layout mock
Sven Schöling [Thu, 29 Sep 2016 11:59:42 +0000 (13:59 +0200)]
Menu: links für Menü cachen
Sven Schöling [Thu, 29 Sep 2016 11:21:46 +0000 (13:21 +0200)]
Layout: Content als eigenes Layout und Split compositor
Moritz Bunkus [Tue, 28 Feb 2017 09:02:39 +0000 (10:02 +0100)]
Dateimanagement: DownloadZip: etwas aufgeräumt
Moritz Bunkus [Tue, 28 Feb 2017 08:58:15 +0000 (09:58 +0100)]
Dateimanagement: Anhänge-aller-Artikel-Download: auch für andere OE-Typen
Moritz Bunkus [Tue, 28 Feb 2017 08:55:29 +0000 (09:55 +0100)]
Dateimanagement: Anhänge-aller-Artikel-Download: Dateinamen in ZIP gefixt
Moritz Bunkus [Tue, 28 Feb 2017 08:55:15 +0000 (09:55 +0100)]
Dateimanagement: überflüssigen Code in SL::Controller::DownloadZip entfernt
Moritz Bunkus [Mon, 27 Feb 2017 15:44:20 +0000 (16:44 +0100)]
Tests: Template-Objekt aus Presenter in eigenes Verzeichnis cachen lassen
Moritz Bunkus [Mon, 27 Feb 2017 15:44:01 +0000 (16:44 +0100)]
Form: Template-Objekt aus Presenter nehmen und nicht selber speichern
Moritz Bunkus [Mon, 27 Feb 2017 16:21:42 +0000 (17:21 +0100)]
Erzeugnis fertigen: API-Anpassung für neues Part-Picker-API
Martin Helmling martin.helmling@octosoft.eu [Wed, 22 Feb 2017 10:36:57 +0000 (11:36 +0100)]
Testfall Kosmetik (Alignment) fehlende Zeile wieder dazu
Wie kann diese Zeile zwischen commit
8f7fe4a4 und
b8741ec3 verschwinden??
Martin Helmling martin.helmling@octosoft.eu [Wed, 22 Feb 2017 10:33:40 +0000 (11:33 +0100)]
Dateimanagement: Robustere Mandantenkonfigurierung
Es wurde das BAckend "None" eingeführt, falls kein Backend enabled ist.
Fehlermeldung nun in deutsch falls kein Backend vorhanden.
Die Hochladbare Dateigröße ist nun in der Mandantenkonfig in Megabytes (default 10Mb)
Moritz Bunkus [Tue, 21 Feb 2017 09:38:35 +0000 (10:38 +0100)]
Dokumentation: Hinweis zum Bugfix bzgl. Fälligkeitsdatum bei Rechnungen
Moritz Bunkus [Tue, 21 Feb 2017 08:28:18 +0000 (09:28 +0100)]
Einkaufs-/Verkaufsrechnungen: Verwendung freier Fälligkeitsdaten gefixt
Wenn bei einer Zahlungsbedingung die automatische Berechnung des
Fälligkeitsdatums aus ist, so sollte die Routine zum Berechnen das
aktuell von der Benutzer*in eingegebene Fälligkeitsdatum
berücksichtigen. Damit das funktioniert, muss auch das richtige Feld
aus $::form an »$terms->calc_date« übergeben werden — und das heißt
nun mal »duedate« und nicht »due_due«.
Das Ergebnis war, dass beim Buchen der Rechnung nicht das eingetragene
Fälligkeitsdatum genommen wurde, sondern das Rechnungsdatum, da die
Berechnungsroutine dachte, es wäre kein Fälligkeitsdatum eingegeben.
Moritz Bunkus [Tue, 21 Feb 2017 08:25:59 +0000 (09:25 +0100)]
PaymentTerm: Schreibfehler in Doku gefixt & neues Beispiel in Übersicht
Martin Helmling martin.helmling@octosoft.eu [Mon, 20 Feb 2017 10:54:22 +0000 (11:54 +0100)]
BUGFIX: PDF:Table verwendet font_color in Folgezeile
Getestet bis zu Version 0.9.12
Durch das Setzen der cell_props mit font_color auf weiss, gibt es in der
Folgezeile einen Text Weiß auf Weiß, d.h. nicht sichtbar.
Deshalb erst einmal auskommentiert.
G. Richardson [Fri, 17 Feb 2017 14:29:35 +0000 (15:29 +0100)]
Typos in Doku
G. Richardson [Fri, 17 Feb 2017 14:29:13 +0000 (15:29 +0100)]
Typos in Doku
G. Richardson [Fri, 17 Feb 2017 14:29:22 +0000 (15:29 +0100)]
Testfall Kosmetik (Alignment)
G. Richardson [Fri, 17 Feb 2017 14:28:49 +0000 (15:28 +0100)]
Typos in Doku (Dev)
Martin Helmling martin.helmling@octosoft.eu [Fri, 17 Feb 2017 08:59:24 +0000 (09:59 +0100)]
DB Transaktionen - Array Context funktioniert nicht
Innerhalb des eval{} Blockes ist für wantarray ein neuer Context,
in diesem Falle ist wantarray hier nicht definiert.
Deshalb muss dies per Variable in den eval-Block übergeben werden
Martin Helmling martin.helmling@octosoft.eu [Tue, 14 Feb 2017 19:10:49 +0000 (20:10 +0100)]
Geierlein: Abschalten der Steuernummer nur wenn Feature "ustva" eingeschaltet ist.
Alte Abfrage in der Mandantenkonfig falls keine Ustva ausgewählt,
z.B per Defaultmanager swiss"
Bernd Bleßmann [Mon, 13 Feb 2017 18:25:47 +0000 (19:25 +0100)]
CsvImport: Bearbeiter aus Front-End setzen, wenn nicht angegeben.
Wenn keine employee_id in der CSV-Datei angegeben ist, dann den Benutzer, der
den Import gestartet hat als, Bearbeiter setzen. Dieser wird in den Daten des
Hintergrundjobs gespeichert.
Falls hier nichts hinterlegt ist, dann den Benutzer aus dem Login setzen. Das
ist derjenige Benutzer, unter dem der Task-Server läuft.
Sven Schöling [Mon, 13 Feb 2017 16:43:18 +0000 (17:43 +0100)]
kivi.Part.js: Optionen rekursiv mergen
Sven Schöling [Mon, 13 Feb 2017 16:23:05 +0000 (17:23 +0100)]
Model-Presenter Bindung mit Proxyobjekten
Sven Schöling [Mon, 13 Feb 2017 15:25:17 +0000 (16:25 +0100)]
Part: doku update
Sven Schöling [Mon, 13 Feb 2017 15:24:54 +0000 (16:24 +0100)]
kivi/Part.js: commit_none hook korrekt verdrahten
Sven Schöling [Mon, 13 Feb 2017 10:35:13 +0000 (11:35 +0100)]
Part: part picker commit hooks umbenannt
Sven Schöling [Mon, 13 Feb 2017 10:33:46 +0000 (11:33 +0100)]
kivi.Part.js: on_enter_match_* umbenannt in commit_*
Sven Schöling [Fri, 10 Feb 2017 14:33:11 +0000 (15:33 +0100)]
Part: exact_match robuster mit localized $::form
Behebt Bugs mit vergessenen Filtern wie unit_obj.convertible_unit
Sven Schöling [Fri, 10 Feb 2017 12:58:40 +0000 (13:58 +0100)]
Part: Nach einfügen von Zeile den Partpicker clearen
Sven Schöling [Fri, 10 Feb 2017 12:58:17 +0000 (13:58 +0100)]
kivi.Part.js: clear Methode für Partpicker
Sven Schöling [Fri, 10 Feb 2017 12:57:28 +0000 (13:57 +0100)]
kivi.Part.js: im PICKED state auf enter/tab den commit hook auslösen
Sven Schöling [Fri, 10 Feb 2017 12:25:46 +0000 (13:25 +0100)]
Part: multipicker verwenden
Sven Schöling [Fri, 10 Feb 2017 12:25:13 +0000 (13:25 +0100)]
PartPicker: Multipicker als separate popupklasse
Sven Schöling [Fri, 10 Feb 2017 12:23:35 +0000 (13:23 +0100)]
kivi.Part.js: real_id wird nicht mehr benötigt
Sven Schöling [Fri, 10 Feb 2017 12:21:41 +0000 (13:21 +0100)]
kivi.Part.js: run_action als wrapper um functions und strings
Sven Schöling [Wed, 8 Feb 2017 15:04:42 +0000 (16:04 +0100)]
kivi.Part.js: Datenübergabe Picker<->Presenter auf data umgestellt
Ist in Summe kompakter und einfacher erweiterbar.
Sven Schöling [Tue, 7 Feb 2017 09:50:10 +0000 (10:50 +0100)]
kivi.Part.js: keydown ausgelagert in eigenen handler
Sven Schöling [Mon, 6 Feb 2017 16:45:24 +0000 (17:45 +0100)]
kivi.Part.js: PartPicker von closure auf prototype style umgeschrieben
War notwendig, damit das Objekt sich selbst an andere Objekte weitrgeben
kann. Vorher musste es dafür eine anonyme Closure über die eigenen
Funktionen machen, die extrem schwer verständlich war.
Nachteil dafür jetzt, man kann keine Methoden mehr ohne closure als
callback verwenden und alles ist voll mit this.
Sven Schöling [Mon, 6 Feb 2017 15:30:03 +0000 (16:30 +0100)]
kivi.Part.js: PickerPopup: bei Enter nicht timeout abwarten
Sven Schöling [Mon, 6 Feb 2017 15:29:40 +0000 (16:29 +0100)]
kivi.Part.js: paginate aus Picker gezogen
Sven Schöling [Mon, 6 Feb 2017 14:36:30 +0000 (15:36 +0100)]
kivi.Part.js: PickerPopup auf prototype style umgestellt
Sven Schöling [Mon, 6 Feb 2017 14:32:26 +0000 (15:32 +0100)]
kivi.Part.js: Part Picker Popup in ein separates widget verschoben
Sven Schöling [Mon, 6 Feb 2017 14:30:26 +0000 (15:30 +0100)]
kivi.Part.js: KEY konstanten aus Picker verschoben.
die brauche ich gleich in mehreren Objekten.
Sven Schöling [Mon, 6 Feb 2017 12:07:03 +0000 (13:07 +0100)]
kivi.Part.js: init routine angelegt
Sven Schöling [Mon, 6 Feb 2017 12:06:35 +0000 (13:06 +0100)]
kivi.Part.js: Formatierung
Sven Schöling [Mon, 6 Feb 2017 12:05:52 +0000 (13:05 +0100)]
kivi.Part.js: PartPicker: key code für UP eingefügt
Sven Schöling [Thu, 2 Feb 2017 10:28:16 +0000 (11:28 +0100)]
Partpicker: fat_set_item mit neuem Part-Controller gefixt
Der alte Part-Controller erwartete, dass die Part-ID als $::form->{id}
übergeben wird. Der neue hingegen nutzt $::form->{part}->{id}.
Sven Schöling [Thu, 2 Feb 2017 10:15:01 +0000 (11:15 +0100)]
kivi.js + kivi.Part.js: reinit_widgets verschoben
Sven Schöling [Thu, 2 Feb 2017 09:48:53 +0000 (10:48 +0100)]
PartPicker: Cursor down öffnet jetzt immer das autocomplete Menü
Sven Schöling [Thu, 2 Feb 2017 09:48:29 +0000 (10:48 +0100)]
PartPicker: enter hooks überlagerbar gemacht
Sven Schöling [Mon, 13 Feb 2017 15:28:28 +0000 (16:28 +0100)]
PartPicker von autocomplete_part.js nach kivi.Part.js verschoben
Sven Schöling [Wed, 1 Feb 2017 14:01:56 +0000 (15:01 +0100)]
kivi.Part.js: jslint und use strict
Moritz Bunkus [Mon, 13 Feb 2017 10:45:05 +0000 (11:45 +0100)]
record_links.t: nach Test aufräumen
Moritz Bunkus [Mon, 13 Feb 2017 10:32:18 +0000 (11:32 +0100)]
sales_order_with_periodic_invoices_config.t: nach Test aufräumen
Moritz Bunkus [Mon, 13 Feb 2017 10:24:44 +0000 (11:24 +0100)]
File-Controller: Warnungen wegen undefinierter Werte vermeiden
Warnungen traten bei t/file/filesystem.t auf.
Jan Büren [Mon, 13 Feb 2017 08:57:59 +0000 (09:57 +0100)]
WebDAV Pfad-Name im Dialog geändert
Referenz ist ein ungünstiges Freitext-Feld, um WebDAV Pfade
eindeutig anzulegen. Transaktions-, bzw. die Buchungsnummer
im Buchungsjournal ist hier eindeutig.
Jan Büren [Sat, 11 Feb 2017 15:28:25 +0000 (16:28 +0100)]
Kontoauszug verbuchen Link-Farbe grün einheitlich gesetzt
Martin Helmling martin.helmling@octosoft.eu [Sun, 12 Feb 2017 09:41:55 +0000 (10:41 +0100)]
Kontoauszug verbuchen: Lieferantengutschrift buchen
Nun wird eine negativen Kreditorenbuchung (Lieferantengutschrift) richtig verbucht.
t/bank/bank_transactions.t um einen Test erweitert
und Stdout des Controllers (HTML) in String umgelenkt.
Martin Helmling martin.helmling@octosoft.eu [Sun, 12 Feb 2017 09:33:20 +0000 (10:33 +0100)]
Kontoauszug verbuchen: Banktransaktionen mit Fehlern nicht zählen
Die OK Anzeige der Anzahl gebuchter Transaktionen ohne fehlerhafte Buchungen
Martin Helmling martin.helmling@octosoft.eu [Sun, 12 Feb 2017 09:04:04 +0000 (10:04 +0100)]
Kontoauszug verbuchen: DB-Rollback nicht zusätzlich als Fehler melden
Bei einer negativen Kreditorenbuchung (Lieferantengutschrift)
wird nun nicht mehr
"do_transaction() failed - Died at SL/Controller/BankTransaction.pm line 733."
gemeldet, sondern der Fehler an der (nicht)verbuchten Rechnung angezeigt:
"Gesendete Zahlungen können nur mit Einkaufsrechnungen und Verkaufsgutschriften verbucht werden."
Peter Schulgin [Tue, 17 Nov 2015 13:04:43 +0000 (14:04 +0100)]
Kontoauszug verbuchen: Sonderzeichenbehandlung
Sonderzeichen beim Vergleich Verwendungszweck - Kunde/Lieferant escapen
Martin Helmling martin.helmling@octosoft.eu [Sat, 11 Feb 2017 10:07:56 +0000 (11:07 +0100)]
t/file/filesystem.t robuster
Moritz Bunkus [Fri, 10 Feb 2017 16:19:44 +0000 (17:19 +0100)]
Tests: t/structure/common_errors.t parallelisiert
Moritz Bunkus [Fri, 10 Feb 2017 16:16:43 +0000 (17:16 +0100)]
Tests: t/structure/no_lexicals_in_postif.t parallelisiert
Moritz Bunkus [Fri, 10 Feb 2017 16:11:06 +0000 (17:11 +0100)]
Tests: t/structure/no_indirect_object_notation.t parallelisiert
Moritz Bunkus [Fri, 10 Feb 2017 16:07:53 +0000 (17:07 +0100)]
Tests: t/003safesys.t parallelisiert
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 16:05:29 +0000 (17:05 +0100)]
Filesystem tests nun ohne anderen Output
Controller Downloaddaten werden umgelenkt und anschließend geprüft.
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 16:04:25 +0000 (17:04 +0100)]
Fehlerbehandlung in SL/File.pm vereinfacht
Moritz Bunkus [Fri, 10 Feb 2017 15:48:30 +0000 (16:48 +0100)]
Dokumentation: neue Perl-Modul-Abhängigkeiten für Entwickler dokumentiert
Moritz Bunkus [Fri, 10 Feb 2017 15:48:14 +0000 (16:48 +0100)]
Tests: 001compile.t parallelisiert
Moritz Bunkus [Fri, 10 Feb 2017 15:11:54 +0000 (16:11 +0100)]
CSV-Artikel-Import-Controller: Warnung wegen Vergleich mit undefiniert vermeiden
Trat bei Tests auf (genauer: t/controllers/csvimport/parts.t).
Moritz Bunkus [Fri, 10 Feb 2017 15:09:13 +0000 (16:09 +0100)]
Tests: $::form nur über Helfermethode Support::TestSetup::create_new_form anlege
Diese Helfermethode erstellt und konfiguriert auch gleich das
Template-Objekt mit dem Pfad zum Test-eigenen
Template-Cache-Verzeichnis.
Moritz Bunkus [Fri, 10 Feb 2017 14:47:18 +0000 (15:47 +0100)]
Bankauszug verbuchen: Gutschrifts-Fall über Aufruf der richtigen Funktion erkennen
»type« bezieht sich nur auf die Spalte »type«, in der nicht zwischen
Einkauf und Verkauf unterschieden wird.
Moritz Bunkus [Fri, 10 Feb 2017 14:38:37 +0000 (15:38 +0100)]
Testwarnung: doppeltes »my $ap_chart« vermeiden
Moritz Bunkus [Fri, 10 Feb 2017 14:34:07 +0000 (15:34 +0100)]
SL::Mailer: Header-Felder nicht zwei mal MIME-encoden
Das Modul Email::MIME kümmert sich bereits um das richtige MIME-Encoding
der Header. Daher darf es vorher nicht gemacht werden.
Moritz Bunkus [Fri, 10 Feb 2017 14:26:51 +0000 (15:26 +0100)]
Tests: Template-Objekt in Form für Test-Cache-Verzeichnis anlegen
Dient dafür, Dateizugriffsprobleme wegen Berechtigungen zu vermeiden:
»users/templates-cache« wird normalerweise vom Webserveruser erzeugt und
beschrieben, die darin liegenden Dateien haben mode 0600. Tests werden
hingegen als normale User ausgeführt und haben damit nicht mal
Leserechte auf die Dateien in »users/templates-cache«.
Das Template-Objekt wird direkt in $::form abgelegt, wodurch dann auch
reguläre Routinen wie SL::Presenter::Base->render ins richtige
Verzeichnis schreiben.
Damit müssen auch keine Render-Tests mehr übersprungen werden, falls
keine Schreibrechte auf das Haupt-Cache-Verzeichnis
»users/templates-cache« besteht.
Moritz Bunkus [Fri, 10 Feb 2017 14:06:34 +0000 (15:06 +0100)]
SL::Auth: Kosmetik (Alignment)
Moritz Bunkus [Fri, 10 Feb 2017 14:05:21 +0000 (15:05 +0100)]
Auth-DB-Upgrades alle nach SL::DBUpgrade2::Auth verschieben
Das verhindert eine Warnung wegen Umdefinition der Funktion
»SL::DBUpgrade2::clients::run« während der Tests, weil es das Script
»clients.pl« sowohl für die Auth-DB als auch für die Haupt-DB gibt.
Moritz Bunkus [Fri, 10 Feb 2017 14:02:34 +0000 (15:02 +0100)]
Auth-DB-Spalten-Infos nur lesen, wenn DB-Verbindung vorhanden
»reset« wird während des Request-Shutdowns ausgeführt. Falls aber noch
gar keine Auth-DB existiert (neue Installation z.B.), so wird versucht,
eine Verbindung dahin aufzubauen, was zu einer Fehlermeldung führt —
selbst, wenn man gerade versucht, besagte Auth-DB anzulegen.
Moritz Bunkus [Fri, 10 Feb 2017 13:25:38 +0000 (14:25 +0100)]
Test with_transaction.t: deutsche und englische Fehlermeldungen erkennen
DB-Cluster sind bei uns in Deutschland normalerweise mit englischer oder
mit deutscher Locale angelegt. Daher sollte ein Test mit beiden
Sprachvarianten genügen.
Moritz Bunkus [Fri, 10 Feb 2017 13:19:42 +0000 (14:19 +0100)]
Revert "Tests: Datenbank-Meldungen immer in English zurückgeben"
Dies revertet
e38b0b21c1e924cb0b1a21f6e2fe5db7d3258f70, da der
Datenbankuser Superadmin sein muss, um lc_messages setzen zu
können.
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 13:17:15 +0000 (14:17 +0100)]
MIME:* aus dem Installcheck und Doku wieder rausgenommen
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 13:04:51 +0000 (14:04 +0100)]
Für t/file/filesystem.t Anpassungen im Debug und Fehlermeldung
Nun läuft der Test wieder
Martin Helmling martin.helmling@octosoft.eu [Fri, 10 Feb 2017 10:32:04 +0000 (11:32 +0100)]
E-Mail versenden wieder mit Email::MIME
Einschränkung: *.eml werden zwar mitverschickt,
aber tauchen beim Empfänger nicht als *eml auf sondern als einzelne Anhänge
Moritz Bunkus [Fri, 10 Feb 2017 12:54:11 +0000 (13:54 +0100)]
Testfehler: keine indirekte Objektnotation nutzen
Moritz Bunkus [Fri, 10 Feb 2017 12:42:31 +0000 (13:42 +0100)]
t/file/filesystem.t: keinen festen Namen für temporäres Verzeichnis nutzen
Weiterhin muss das Verzeichnis angelegt werden. Der Test darf sich nicht
darauf verlassen, dass er einfach durchläuft.
Moritz Bunkus [Fri, 10 Feb 2017 12:35:36 +0000 (13:35 +0100)]
Test-Run-Script ohne Harness
Wenn man mal nur die rohe Ausgabe eines Tests sehen will.
Moritz Bunkus [Fri, 10 Feb 2017 12:30:33 +0000 (13:30 +0100)]
SL::DB: Exception nur dann mit ->isa/->rethrow behandeln, wenn geblesstes Objekt
ref($error) gilt auch für z.B. geworfene Arrayreferenzen, welche aber
nicht geblesst sind, wodurch man auf ihnen keine Funktionen aufrufen kann.
Moritz Bunkus [Fri, 10 Feb 2017 12:26:07 +0000 (13:26 +0100)]
Tests: Datenbank-Meldungen immer in English zurückgeben
Die Sprache, in der z.B. Fehlermeldungen von der Datenbank geliefert
werden, wird beim Erstellen des PostgreSQL-Clusters festgelegt. Dies ist
bei vielen Standardinstallationen Deutsch, da meinst nur
»--locale=de_DE.UTF-8« gesagt wird, und damit auch LC_MESSAGES gesetzt
wird.
Für Tests ist das ungünstig, weil sich diese darauf verlassen können
müssen, dass die Fehlermeldungen immer in einer bestimmten Sprache
sind. Unsere Tests vergleichen Fehlermeldungen mit den erwarteten
Mustern, und diese sind in Englisch.
Daher die Nachrichten-Locale Datenbankverbindungen von sowohl Auth- als
auch Hauptdatenbank am Anfang der Tests auf Englisch setzen.
Moritz Bunkus [Fri, 10 Feb 2017 12:20:36 +0000 (13:20 +0100)]
Testfehler: typische Schreibfehler gefixt
Moritz Bunkus [Fri, 10 Feb 2017 12:18:06 +0000 (13:18 +0100)]
Testfehler: Tabs entfernt
Moritz Bunkus [Fri, 10 Feb 2017 12:13:52 +0000 (13:13 +0100)]
Template-Syntax-Test: eigenes Compile-Cache-Verzeichnis für Tests
CACHE_SIZE=0 sollte eigentlich dafür sorgen, dass das Template-Modul die
compilierten Templates nicht cachet. Das funktioniert aber wohl
nicht.
Daher ein eigenes Cache-Verzeichnis dafür definieren, um
Dateizugriffsprobleme wegen Berechtigungen zu vermeiden:
»users/templates-cache« wird normalerweise vom Webserveruser erzeugt und
beschrieben, die darin liegenden Dateien haben mode 0600. Tests werden
hingegen als normale User ausgeführt und haben damit nicht mal
Leserechte auf die Dateien in »users/templates-cache«.