WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 13.02.2021 09:33:23

florian
Administrator

Wunsch: Export/Löschen von Eintragungen

Die Exportfunktion von mpform ist super; mir ist es aber ab und zu aufgefallen, dass es ganz nützlich wäre,

  • wenn man selektieren könnte, welche Einträge exportiert werden sollen (z.B. über Checkbox oder -Luxus - einen bestimmten Zeitraum)

  • es einen Button (mit Rückfrage) gäbe, um selektierte / alle Einträge des Formulars zu löschen

Wäre das machbar?


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

berny

#2 13.02.2021 10:54:34

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

Ich schau mal... da kann ich bestimmt Code aus NWI recyceln. Drag&Drop habe ich ja in der anderen Richtung übernommen...

Um alle Einträge zu löschen gibt es einen Trick:
* Einmal in den Einstellungen die Anzahl der zu speichernden Eintragungen auf 0 setzen, abspeichern,
* dann einmal das Formular abschicken, damit dieses Limit zuschlägt,
* dann die Anzahl wieder hochsetzen (natürlich da auch nicht vergessen die Einstellungen zu speichern).

Edit: korrigiert noch -> nicht

Beitrag geändert von mrbaseman (13.02.2021 10:56:46)

Offline

#3 13.02.2021 10:57:17

florian
Administrator

Re: Wunsch: Export/Löschen von Eintragungen

Ich schau mal...

Das ist fein, danke schon mal.

Um alle Einträge zu löschen gibt es einen Trick:

Ja... der Trick ist aber nicht "kunden-kompatibel" ;-)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#4 13.02.2021 15:18:22

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

Ich weiß. Da da der Thread von dir ist, dachte ich halt, da kann ich das als kurzfristigen Workaround einwerfen :-)

Offline

#5 17.02.2021 13:56:11

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

bin da noch dran. scheint machbar zu sein...

Offline

#6 19.03.2021 23:43:32

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

Hallo Florian,

du kannst dir wahrscheinlich vorstellen, dass mich das in den letzten Wochen ein bisschen aufgehalten hat - aber ich hätte da mal wieder was zum Testen.
Die angehängte Version wäre sozusagen ein Preview für mpform 1.3.37 in der die gewünschten Features drin sind.

LG Martin

Offline

Liked by:

Slugger

#7 21.03.2021 18:54:47

florian
Administrator

Re: Wunsch: Export/Löschen von Eintragungen

@mrbaseman
Ja, das verstehe ich, dass das Nordstern-Projekt für genug Arbeit gesorgt hat.
Ich habe das jetzt mal getestet. Leider funktioniert der Export noch nicht, wenn nicht "alle" angewählt ist. Ich habe das Standardformular zum Testen genommen und drei Testeinträge im Formular vorgenommen.
Wenn nur zwei der drei Testeinträge ausgewählt sind (siehe Screenshot im Anhang), sieht die results_xy.csv leider nur so aus:

"session_id","started_when","submitted_when","referer","Anrede","Name","email-Adresse","Anschrift","Kommentar","Einverständniserklärung","HTML code","Bitte ankreuzen","end of fieldset";

Im Errorlog erscheint:

2021-03-21T16:47:21+00:00 [Notice] /modules/mpform/export_submissions.php:[246] from /modules/mpform/export_submissions.php:[246] WBCE_Error->scriptError "Undefined index: submission_id"

Ist das Häkchen "alle" gesetzt, funktoniert der Export und es kommen keine Errorlogeinträge.

Das Löschen einzelner und auch aller Einträge funktioniert. thumb_up


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#8 21.03.2021 20:01:05

Slugger
Mitglied

Re: Wunsch: Export/Löschen von Eintragungen

Hallo florian,
Aufgrund deines Hinweises habe ich das mal ausprobiert.

In Beiden Fällen funktioniert der Export bei mir ohne Probleme und keine Eintragung im Error_log.
Es sind die selektierten Datensätze vorhanden.

Getestet bei einem Kunden der bei IONOS gehostet ist.

AKTUELLE WBCE 1.4.5 mit PHP 7.4

Beitrag geändert von Slugger (21.03.2021 20:02:29)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#9 21.03.2021 20:09:02

florian
Administrator

Re: Wunsch: Export/Löschen von Eintragungen

War da vorher schon mpform installiert, d.h. ist das ein Update oder eine Neuinstallation? (Bei mir war's eine Neuinstallation, WBCE 1.4.5, PHP 7.4.16)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#10 21.03.2021 21:17:22

Slugger
Mitglied

Re: Wunsch: Export/Löschen von Eintragungen

Bei mir war das ein Modul-Update ohne Neuinstallation


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4:  OK

Offline

#11 21.03.2021 23:09:37

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

Hallo ihr beiden,

Vielen Dank fürs Testen.

Es sind da zwei Tabellen im Spiel mit doppelter Datenhaltung. Das ist grundsätzlich schlechte Praxis, aber irgendwie wohl historisch gewachsen, vor meiner Zeit. Ich habe mal eine Änderung vorgenommen,  mit der ich versucht habe, das einzufangen.

Es kann daher sein, dass hier noch Altlasten da sind, die ich nicht mit im Blick hatte, speziell bei der Verwaltung von bestehenden Einträgen. Danke für die Infos. Ich schau mir das nochmal an, wie ich das stabiler hin bekomme.

Offline

#12 22.03.2021 23:38:03

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

es war wie ich vermutet hatte diese Altlast von vor über 4 Jahren:

Was man im Backend sieht, kommt aus der Submissions-Table, in der mehr oder weniger der gerenderte Output, so wie er auch per Mail verschickt wird, in die Datenbank geschrieben wird. Da gibt es die Submission ID.

In der Results-Tabelle hingegen gab es bis vor Version 1.2.0 keine Submission-ID.  Da aber der Suffix der Results-Tabelle eine Einstellung des jeweiligen Abschnitts ist, kann man das Feld nur schwer innerhalb des update-Skripts einfügen.  Ja gut, möglich wäre es, aber ich habe mich damals dagegen entschieden den Anwendern in der Results-Tabelle herumzufuhrwerken, die ja explizit als Schnittstelle zu anderen Modulen oder selbst ergänztem Code gedacht ist.

Wenn man aber in die Settings geht, einmal abspeichert, dann wird die Spalte automatisch mit eingefügt, sofern sie nicht vorhanden ist. Florian, offenbar hast du für den Abschnitt die Settings in den letzten Jahren bei dem getesteten Formular nie gespeichert. Mag ja sein, dass es da nie was zu ändern gab. Aber speichert man es einmal, selbst ohne Änderungen, so wird das Feld in der Results-Tabelle ergänzt und künftige Eintragungen speichern diese Info auch in der Results-Tabelle.

Für bereits hinterlegte Einträge kann man auch die ID nicht herzaubern, da der Zusammenhang zur Submissions-Tabelle nicht mit gespeichert worden ist. Diese Einträge lassen sich auch einzeln nicht mehr löschen. Wenn man sie los werden möchte, hilft nur einmal alle löschen, und alle zukünftigen Einträge kann man dann auswählen, welche man exportieren oder auch einzeln löschen möchte.

Ich habe auch den Export jetzt so erweitert, dass er nicht mehr grundsätzlich komplett aussteigt, wenn die submission_id noch nicht in der Results-Tabelle vorhanden ist. Stattdessen wird auch da jetzt beim ersten Export die Tabelle angelegt, und nur wenn einzelne Submissions exportiert werden sollen meckert mpform jetzt an der Stelle, allerdings nur einmal. Für alle künftigen Export-Versuche sind eben beim Export diejenigen enthalten, die anhand der submission_id schon ausgewählt werden konnten. Für Submissions, deren Id nicht in der Results-Tabelle gefunden werden konnte, wird ein Kommentar im csv am Ende angefügt.

Was besseres fällt mir nicht ein. Sobald ich das csv file an den Browser zurück schicke, kann ich keine Fehlermeldung mehr anzeigen. Sobald ich einen Fehler schicke, kann ich kein csv file mehr senden. Und mit den beiden Tabellen ist es auch ein Dilemma. Klar könnte ich sagen, dass das komplett neu designed gehört, aber es gibt viele Anwender, die nun mal Daten in genau diesen Tabellenstrukturen haben. Da kann ich schlecht einfach alles wegschmeißen und neu machen. Da muss ich immer irgendwie Kompromisse eingehen, wie ich bestehende Strukturen mit den Neuerungen verheirate.

Offline

#13 23.03.2021 08:14:56

florian
Administrator

Re: Wunsch: Export/Löschen von Eintragungen

Hallo Martin,

ich habe beim letzten Mal und auch jetzt eine völlig neue Seite aufgesetzt und dort mpform frisch installiert (also trifft "seit Jahren nicht gespeichert" nicht zu). An den Einstellungen habe ich, in der Tat, zunächst nichts geändert.
Bei der 1.3.36.4 ist dann der Export beim ersten Mal mit einer roten Meldung "could not find sumbission_id table" ausgestiegen, danach ist dann das Frontend angezeigt worden. Beim zweiten Exportversuch ist #could not find submission_id 1; in die CSV geschrieben worden, also das gewünschte Verhalten.
Wenn ich, wie von Dir beschrieben, in die Einstellungen gehe und diese speichere (selbst ohne etwas zu ändern), klappt der Export der anschließend vorgenommenen Einträge. thumb_up


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#14 23.03.2021 10:09:28

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

Hallo Florian,

"eine völlig neue Seite aufgesetzt" - das ist ein wichtiger Hinweis, danke.
Dann muss ich da nochmal schauen, warum dabei die Spalte in der Results-Tabelle nicht von vorne herein angelegt worden ist.

Offline

#15 23.03.2021 23:19:59

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

Tja, ich weiß nicht... alle Möglichkeiten, bei denen eine Results-Tabelle initial angelegt wird, haben im Code mit drin, dass da die submission_id mit enthalten ist. Bei mir ist das auch so, wenn ich einen neuen Abschnitt anlege, darin ein erstes Feld (dabei wird die Results-Tabelle erzeugt) und wenn ich das selbst ohne eine erste Submission exportiere, ist dort eine Spalte "submission_id" enthalten.

Nun, ich habe die evalform nochmal angepasst. Wenn man das Formular abschickt, sollte jetzt auch die Spalte "submission_id" hinzugefügt werden, auch wenn sie (warum auch immer) noch nicht existiert. Wie das allerdings beim Anlegen eines neuen Formulars passieren kann, ist mir unklar. Könnte es sein, dass einzelne Dateien nicht aktualisert wurden (fehlende Schreibberechtigung für den Webserver während dem Modul Update?) - oder ist irgendwas an der Datenbank anders - vielleicht was mit SQL Strict, was noch nicht ganz sauber ist und verhindert, dass ein Statement korrekt ausgeführt wird?

Offline

#16 24.03.2021 07:16:14

florian
Administrator

Re: Wunsch: Export/Löschen von Eintragungen

Wunderbar, so funktioniert's. Danke.
Tatsächlich wurde in der mpform_results_xy.csv die Spalte submission_id erst durch das Abschicken hinzugefügt.
Ich weiß jetzt auch, weshalb die Spalte zunächst fehlte: das passiert, wenn man die Importfunktion verwendet, also nicht die Formularfelder manuell anlegt. Beim Export/Import scheint submission_id noch nicht angelegt zu werden.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#17 24.03.2021 12:23:55

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

ach, Tatsache, in der import.php hat die Zeile gefehlt. Ich hab doch extra alle Vorkommen von 'CREATE TABLE' angeschaut, aber da hatte ich wohl Tomaten auf den Augen, sorry

Ich hab den Fix dafür auch noch mit für die finale Version mit übernommen.

Offline

#18 24.03.2021 19:29:28

mrbaseman
Developer

Re: Wunsch: Export/Löschen von Eintragungen

So, nun hab ich das Release fertig gemacht (inclusive dem vorhin schon erwähnten Fix) und das Projekt jetzt auch mal umgezogen.

Die Versionen der Kollegen und unsere Arbeiten hier haben sich ja teilweise so weit voneinander weg entwickelt, dass ein gemeinsames großes Github-Projekt mit möglichst allen Modulen längst keinen Sinn mehr macht, selbst wenn manche davon (mpForm ist zwar gerade eines davon) in beiden CMS funktionieren.

Aber da ich das ja seit Jahren federführend weiterentwickle, habe ich jetzt dann auch mal den Entschluss gefasst, "meine" Module künftig unter meinem Account zu pflegen. Kurzum, hier gibts jetzt mpform 1.3.37:

https://github.com/mrbaseman/mpform/releases/tag/1.3.37

Offline

Liked by:

florian, Slugger

#19 24.03.2021 19:36:10

florian
Administrator

Re: Wunsch: Export/Löschen von Eintragungen

thumb_up
Ich habe den Eintrag im Add-On-Repository aktualisiert.
https://addons.wbce.org/pages/addons.php?do=item&item=2


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Fußzeile des Forums

up