contao / core

Contao 3 → see contao/contao for Contao 4
GNU Lesser General Public License v3.0
490 stars 214 forks source link

Feature Request: FE-Bearbeitung für Auflistungsmodul #6334

Open Aybee opened 11 years ago

Aybee commented 11 years ago

Es wäre schön, wenn Besucher zu den aufgelisteten Datensätzen im FE neue Datensätze erstellen könnten.

Besucher - DS hinzufügen Member - DS hinzufügen, eigene DS ändern od. löschen

Das wäre ein Schritt in die Richtung, dass man mal auf EFG und hier und da auch auf MetaModels verzichten könnte.

leofeyer commented 10 years ago

Und warum genau ist das erstrebenswert? MetaModels ist eine sehr umfangreiche und aktiv gepflegte Erweiterung – müssen wir wirklich Teile daraus im Core nachbauen und die Funktionalität dann doppelt pflegen?

Aybee commented 10 years ago

Wenn's zu kompliziert und umfangreich wird, würde ich es vielleicht auch lassen, gibt evtl. wichtigere Dinge. Allerdings ist es eine Funktionalität, welche ich von Anfang an in TypoLight vermisst hatte.

Man kann mit einem einfachen Formular Datensätze in die DB schreiben, also auch z.B. für News, Events usw. Mit dem Auflistungsmodul kann man Datensätze dann ausgeben. Fehlt halt "einfach" noch, dass, wenn ein Member im FE einen Datensatz angelegt hat, dass er ihn auch wieder managen kann.

Die Optionen dazu (hauptsächlich die Rechtevergabe für Gäste, Member und Besitzer) kann man sich in einer alten EFG-Version abschauen, im EFG-Auflistungsmodul war das glaube ich, EFG läuft nicht auf C3.2.3. Auf EFG möchte ich gerne aus diversen Gründen verzichten.

Anke commented 9 years ago

+1 (siehe auch https://github.com/contao/core/issues/2986)

Anke commented 9 years ago

Ich finde eine solche Funktionalität erstrebenswert, WEIL MetaModels "eine sehr umfangreiche Erweiterung" ist.

Oft wollen Kunden eine einfache kleine Liste von Produkten mit Sortiermöglichkeit online stellen und sie selbst aktuell halten; dafür Metamodels zu installieren, wäre wie mit einem 40-Tonner um die Ecke zum Milch holen zu fahren.

Bisher habe ich dafür EFG und das EFG-eigene Listing-Modul verwendet. EFG kam jedoch oft nicht mit den Core-Releases mit und wird offenbar ganz eingestellt. Sollten Formulare (und Auflistungen) nicht ein Kernfeature eines CMS sein? Wäre es daher nicht eine Diskussion wert, Funktionen aus dem EFG und Auflistung_Formulardaten in den Core zu übernehmen?

schnaub commented 9 years ago

+1

fenepedia commented 9 years ago

Dagegen spricht, dass es bereits zwei Erweiterungen gibt. MetaModels und eine Catalog-Erweiterung von Premium Contao Themes.

Außerdem sollte der Core möglichst schlank gehalten werden.

Dafür spricht allerdings, dass so eine Funktion generell Contao noch attraktiver für Umsteiger und Neueinsteiger machen würde.

Von meiner Seite ein +1

3drcontao commented 9 years ago

+1

jscholtysik commented 9 years ago

+1

bezin commented 9 years ago

@fenepedia Custom Catalogs von PCT hat eber keine Frontend-Editing-Funktionalität, oder? Ich kannte die Erweiterung bis gerade noch nicht, finde aber auch keine Infos zu FE-Editing auf der Website. Abgesehen davon sieht sie sehr gut aus.

jscholtysik commented 9 years ago

Das Aussehen allein macht aber noch keine gute Anwendung aus. Leider gibt es für den Custom Catalog (wie für viele andere Erweiterungen von Contao auch) fast keine Dokumentation dazu, nur ein paar Einträge im PCT-Forum. Der Rest ist Trial and Error... :-( Und ja, Frontend-Editing gibt es nicht bei CC.

bytehead commented 9 years ago

@jscholtysik Ich glaube es werden an allen Fronten Freiwillige gesucht, die Dokumentationen schreiben. Man darf sich immer beim Entwickler melden. Ich behaupte 100% der Entwickler, die keine Zeit haben, Dokumentationen zu schreiben, sind dankbar wenn sie von Anwendern selbst geschrieben werden :)

jscholtysik commented 9 years ago

Ich denke, das ist der falsche Ort, über eine Doku zu diskutieren, da ist der Anbieter direkt anzusprechen, aber bei einer kommerziellen Erweiterung sollte nicht die Anwender die Doku schreiben.

bytehead commented 9 years ago

Definitiv. Bei kommerziellen Erweiterungen würde ich das auch erwarten.

schnaub commented 9 years ago

Nun, es geht ja nicht um eine Erweiterung sondern schlicht um eine Aufnahme in den Core. Den Core schlank halten hin oder her. So eine Grundfunktion gehört dort IMHO einfach mal hinein.

Messa1 commented 9 years ago

+1

bezin commented 9 years ago

@jscholtysik Blöd formuliert: "Gut aussehen" bezog sich nicht auf Ästhetik, sondern auf den Funktionsumfang ;)

Es gäbe für solch eine Funktionalität ja durchaus mehrere mögliche Implementierungen:

Vorteil bei einer Extension wäre auch, dass die Funktionalität noch in Contao 3.5 einzusetzen wäre. Die wird uns noch ein Weilchen begleiten, aber keine neuen Features mehr bekommen wird.

Anke commented 9 years ago

@bezins Vorschlag klingt schon gut und ich sehe auch durchaus die Vorteile von Extensions. Trotzdem bin ich - nichtzuletzt aufgrund von 28-35.000 Installationen des EFG - der Meinung, dass der Core-Formulargenerator inkl. Speicher- und Auflistungsmöglichkeiten entsprechend aufgerüstet werden könnte/sollte.

Aybee commented 9 years ago

@Anke Trotzdem ... aufgerüstet werden könnte/sollte.

Ihr wiedersprecht euch ja nicht.

@bezin ...dass die Funktionalität noch in Contao 3.5 einzusetzen wär...

Das sieht so aus, als wenn in C3.5 keine Features mehr eigebaut werden. Stimmt das? Wenn das stimmt, dann wäre es gut erstmal eine Erweiterung dafür zu haben, welche nachher dann in den Core aufgenommen werden könnte.

BugBuster1701 commented 9 years ago

In 3.5 kann es keine neuen Features mehr geben, wenn dann wäre es die 3.6. Die wird es aber nicht geben, dafür kommt ja die 4.x.

Anke commented 9 years ago

Gäbe es theoretisch Möglichkeiten, Formulargenerator und Auflistungsmodul so zu erweitern (u.a. mit direktem DB-Zugriff und FE-Bearbeitung), dass sie abwärtskompatibel sind?

bezin commented 9 years ago

@Aybee Wie @BugBuster1701 bereits schrieb, gibt es per Definition keine neuen Features mehr in 3.5.

@Anke (bzw. auch andere Interessierte): Was für ein Anwendungsfall schwebt dir denn vor? Wir hatten mal was für ein Projekt entwickelt, das sich aber eher an Entwickler richtet (und noch weiterer Generalisierung benötigen würde).

Anke commented 9 years ago

Okay, ein Beispiel:

Mit Hilfe des Formulargenerators eine kleine Restposten-Datentabelle einrichten mit Spalten wie Produktname, Materialart, Farbe, Menge, Preis (siehe auch http://mkv-kunststoff.com/de/restposten.html).

Die Liste im FE mit dem Auflistungsmodul ausgeben, mit sortierbaren Spalten und z.B. einem Suchfeld für die einfache Filterung. Der Kunde soll in der Lage sein, im FE und BE neue DS hinzufügen und vorhandene DS ändern oder löschen zu können.

Wird diese Tabelle nicht mehr benötigt, sollte sie mit dem Löschen des Formulars im Formular Generator automatisch gelöscht werden. Ideal wäre noch eine Im-/Export-Funktion im BE.

Wünsche dieser Art kommen immer wieder mal vor (habe z.B. auch eine Referenzliste eines Zertifizierers mit 1000 Datensätzen, monatlich aus Genesis neu importiert werden muss), und Metamodels ist für solche Sachen einfach ein paar Nummern zu groß.

Aybee commented 9 years ago

Ganz einfache Anwendungsbeispiele:

(also im Prinzip Datensätze in Tabellen schreiben)

Das alles geht zwar schon, macht aber keinen Sinn, wenn man dann nicht mehr an den Datensatz rankommt. Man kann dann nämlich noch nicht mal einen Fehler korrigieren. Also alles mit den Möglichkeiten die Datensätze wieder bearbeiten, löschen usw. zu können

Auf Gruppenrechtebene.

Einstellmöglichkeiten: darf nur eigene/alle ansehen/bearbeiten/löschen

Modul für das Bearbeiten-Formular, evtl. in Kombination mit einer Liste, welches man dann auf die Detailseite, oder eine eigene Seite setzen kann.

aschempp commented 9 years ago

Dafür haben wir doch das Backend? ^^

bezin commented 9 years ago

Ich glaube, es geht schon ganz konkret um user-generated Content, oder? Das für Redakteure das Backend da ist, ist denke ich klar.

Anke commented 9 years ago

Dumme Frage: Hat das auch was mit dem Formular Generator zu tun oder allgemein mit der Möglichkeit, vom FE aus auf Tabellen zuzugreifen?

Aybee commented 9 years ago

@aschempp Dafür haben wir doch das Backend? ^^

Ja, ich weiß, deswegen habe ich explizit nochmal "im FE erstellen" dazu geschrieben ;). Sonst wäre die Konsequenz, dass man die FE-Funktion, Daten in eine Tabelle zu schreiben cancelt, und das den Membern (dann User) auch im BE zur Verfügung stellt. Während ich das schreibe merke lich, dass es ja auch darum geht den Membern etwas anzubieten und sie dazu nicht zu Usern machen möchte.

@Anke Dumme Frage: Hat das auch was mit dem Formular Generator zu tun oder allgemein mit der Möglichkeit, vom FE aus auf Tabellen zuzugreifen?

Siehe auch Ticket-Titel. Der FG hat insoweit etwas damit zu tun, da er (und das Auflistungsmodul) den Wunsch ins Rollen gebracht haben. Das Feature war dadurch schon zu gefühlten 50% vorhanden. Daten eintragen, Daten anzeigen.

Ob man den FG dafür dann noch braucht (ich denke ja) oder nicht, ist eine Frage des Konzeptes. Man könnte das Formular dazu benutzen um die Felder anzugeben, welche der Tabelle zur Verfügung stehen sollen und es evtl. als Eingabeformular in dem neuen Modul FE-Bearbeitung heranziehen.

Balindil commented 8 years ago

+1

Anke commented 7 years ago

Gibt's hierzu irgendwas Neues?

webfuzzy commented 7 years ago

Ach Du meine Güte: Dreieinhalb Jahre Diskussion um ein kleines Feature! s.a. https://github.com/contao/core/issues/8715

bytehead commented 7 years ago

@webfuzzy es warten alle auf deinen kleinen Pull-Request 🙂

leofeyer commented 7 years ago

Siehe https://github.com/contao/core/issues/8715#issuecomment-302417676.

Aybee commented 7 years ago

Ich finde es sehr unbefriedigend, dass dieses Ticket hier jetzt geschlossen wurde mit der Begründung aus Ticket #8715, da meine ursprüngliche Anfrage nichts mit dem Formulargenerator zu tun hatte. Dies ist erst später hinzugefügt worden und habe ich auch irgendwie nie verstanden wieso.

Andere FE-Module, welche Formulare ins FE bringen machen ja auch nichts mit dem Formulargenerator. Z.B. kann man mit dem Modul Personendaten durchaus einen Datensätz ändern. Mit anderen FE-Modulen kann man Datensätze anlegen z.B. Newsletter Abonnieren/Kündigen....

Hier nochmal der Threadtitel: FE-Bearbeitung für Auflistungsmodul

Aybee commented 7 years ago

Ich würde das Ticket gerne offen lassen, bis jemand mal die Zeit findet das umzusetzen. Der Wunsch nach diesem Feature ist sehr verbreitet.

leofeyer commented 7 years ago

Ich öffne das Ticket gerne wieder, aber die Argumentation aus #8715 gilt hier genauso. Die notwendigen Änderungen sind umfangreich (z.B. fehlendes Berechtigungskonzept) und letztendlich liefe es darauf hinaus, dass wir Teile von MetaModels nachbauen würden anstatt direkt MetaModels zu nutzen.

webfuzzy commented 7 years ago

Wie Aybee finde auch ich das abrupte Schließen der Tickets 2986, 6334 und 8715 unbefriedigend (https://github.com/contao/core/issues/8715#issuecomment-302420053). Die Hinweise auf MetaModels und/oder Haste sind zwar angebracht, aber für einfache Tabellen m.E. überdimensioniert. Und für genau diesen einfachen Fall scheint es reichlich Bedarf zu geben. Zumindest habe ich auf meine Beiträge zum Thema auch direkte Anfragen von Leuten bekommen, die im FE eine kleine Liste anzeigen, ergänzen und ändern können wollen. Ich schätze aber, die sind mit MetaModels (oder auch Haste) überfordert.

Die Argumentation mit dem Berechtigungskonzept finde ich nur bedingt tauglich, denn das kann man mit Contao-Mitteln bzw. in seinem Modul (auf unterschiedliche Weise) ganz gut selbst steuern, z.B. für nicht angemeldete Benutzer die Änderungsfunktionen ausblenden. Pflegt man in seiner Tabelle eine zusätzliche Spalte "Bearbeiter", die beim Anlegen eines Satzes (z.B. mit id oder username) gefüllt wird, so kann man die Änderungsfunktionalität auch Member-bezogen ein- bzw. ausschalten.

Um hier konstruktiv zu werden, habe ich meine Contao-Instanz mal (ungern!) temporär (Ultimo Mai!) gepatcht, und dort ein Quickie als Demo eingestellt, das hoffentlich veranschaulicht, wie ich mir das in etwa vorstelle (und andere vermutlich ähnlich):

http://www.tinygiant.de/crud-demo.html (Daten sind Spieldaten!)

Beim produktiven Einsatz wäre das Modul natürlich nur für eine Mitgliedergruppe konfiguriert und die Bearbeitings-Icons (oder welcher Mechanismus auch immer die Funktionalät auslöst) wären nur für die Sätze des angemeldeten Mitglieds eingeblendet. Dieses Quickie verwendet nur die Erweiterung Inputvar (die evtl. auch in den Core übernommen werden könnte?) zur Vorbelegung der Felder und leider eben (m)einen Patch. Alles andere ist (inzwischen) Contao-Standard :-)

Meinen Patch stufe ich natürlich als "q&d" ein. Er sollte auch nur dazu dienen, die "Problemsstelle" im Core zu lokalisieren und aufzuzeigen. Eine freigabefähige Anpassung im Core muss sicher anders aussehen oder vielleicht auch an anderer Stelle sorgfältiger gemacht werden.

In dem Zusammenhang habe ich mir auch die Erweiterung MemberList (ehem. Core-Modul) genauer angeschaut, die ja u.a. Ähnliches macht. War sehr aufschlussreich, denn die macht die gesamte Formularbearbeitung (drei Formulare!) selbst. Genau das möchte ich aber nicht für jedes kleine CRUD-Modülchen machen müssen Muss ich vermutlich aber doch, denn ich brauche so ein Modul in absehbarer Zeit.

tldr: Etwas länglich geworden dieser Kommentar, aber hoffentlich doch irgendwie hilfreicher für das Thema als mein letzter Eintrag ;-)

Anke commented 7 years ago

Phantastisch - genau das, was immer wieder gebraucht wird!

Und was bis vor einiger Zeit mit dem Auflistungsmodul des Extended Formulargenerator möglich war, aber leider nicht mit dem Core-eigenen Listing-Modul. So war der EFG hier ins Spiel gekommen, weil mit ihm das Eingabe-/Änderungsformular und damit die Tabellenstruktur angelegt wurde.

backbone87 commented 7 years ago

Ich persönlich finde eine integration dieses features in den core zum jetzigen zeitpunkt als unangebracht.

webfuzzy commented 7 years ago

backbone87: Ich persönlich finde eine integration dieses features in den core zum jetzigen zeitpunkt als unangebracht.

Dann ist ja noch Hoffnung. :-)

Ich übe mich also derweil in Geduld und schaue inzwischen mal, was mit Haste geht. Ist leider nicht ganz einfach, da mager dokumentiert: "For more internal details please read the source ;-)" Frei übersetzt: "Doku Haste Nich ;-)" Werde mich da aber schon irgendwie durchbeissen.

Bei MetaModels sieht's besser aus. Danke dafür!

Aybee commented 7 years ago

Erweiterung: Ja, stimmt, sollte erstmal als Erweiterung entwickelt werden, am besten ohne Abhängigkeiten. Dann kann man immer noch sehen, ob dies was für den Core ist. Muss halt nicht so aufwendig sein wie MetaModels. Im Auflistungsmodul anhaken "Editierbar" und die Rechte einstellen. Die Tabelle hat man ja bereits ausgewählt. Editierbare Tabellen brauchen dann noch ein Feld, wer der Author ist.

fenepedia commented 7 years ago

Hatte bisher noch keine Zeit zu testen, aber inzwischen kann man das auch mit dem Catalog-Manager lösen. FrontEnd-Editing ist hiermit möglich und in der Demo integriert.

aschempp commented 7 years ago

Ich übe mich also derweil in Geduld und schaue inzwischen mal, was mit Haste geht.

Bitte beachte, Haste ist ein Tool für Entwickler. Daraus wird nie eine entsprechende Funktion entstehen, es hilft lediglich jemandem sowas zu realisieren.

Erweiterung: Ja, stimmt, sollte erstmal als Erweiterung entwickelt werden, am besten ohne Abhängigkeiten.

Du hast hier wohl etwas falsch verstanden. Abhängigkeiten verteilen die Last von Entwicklung und Pflege auf mehrere Leute, idealerweise mehrere Communities. Contao kann sich auf seinen Kern konzentrieren weil wir 1000 Leute haben die "für uns" Symfony weiter entwickeln. Die Contao Bild-Bibliotheken werden neuerdings von anderen CMSen genutzt, vielleicht erhalten wir dadurch neue Nutzer oder Code-Contribution. Abhängigkeiten sind gut!!

Aybee commented 7 years ago

Ja, kein Problem, sehe ich auch so. Es war nur für den Fall gedacht, wenn es in den Core käme, dann dürfte es ja keine Abhängigkeiten haben außer den Core. Als Erweiterung kann und sollte es natürlich Abhängikeiten haben wo es Sinn macht.

aschempp commented 7 years ago

Auch der Core hat seine Abhängigkeiten, und er kann mehr bekommen falls nötig ;-)

webfuzzy commented 7 years ago

... aber inzwischen kann man das auch mit dem Catalog-Manager lösen.

Das sieht sehr interessant aus. Werde mir auch das mal genauer ansehen.

Bitte beachte, Haste ist ein Tool für Entwickler. Daraus wird nie eine entsprechende Funktion entstehen, es hilft lediglich jemandem sowas zu realisieren.

Ja, habe ich auch so verstanden. Danke.

webfuzzy commented 7 years ago

So, jetzt habe ich mir mal Haste Form und das Modul Auflistung genauer angeschaut und beide zusammen zu einem Modul Auflistung-Edit verarbeitet. Konfiguriert wird das dann im Backend wie beim Standard-Auflistungsmodul, es gibt lediglich eine zusätzlche Checkbox Bearbeitungsformular und ein neues Template um das Formular und die Bearbeitungs-Icons mit auszugeben. Bei deaktivierter Checkbox verhält sich das Modul wie das Standard-Auflistungsmodul, es werden also kein Formular und keine Icons erzeugt.

Anschauen kann man sich das unter http://www.tinygiant.de/auflistung-edit.html (Daten sind Spieldaten!)

Damit kann ich nun leben. Ein Autorenfeld, wie Aybee es wünscht, ließe sich sicher noch ergänzen. Ich brauche es momentan aber nicht.

Aybee commented 7 years ago

Sieht gut aus. Mehr braucht es eigentlich auch nicht.

Es fehlte dann noch die Rechtevergabe im Modul.

  1. Alle
  2. Gruppenmitglieder
  3. Besitzer

Jeweils Erlaubnis für:

  1. sehen
  2. bearbeiten
  3. erstellen
  4. löschen

Der Admin muss sich dann selber darum kümmern, dass die gewählte Tabelle ein Feld author hat. Als Bonus könnte das Modul prüfen, ob die gewählte Tabelle ein Feld author besitzt.