Aktualisieren der ui_bookmark-Tabelle beim Hinzufügen von Spalten über ui_component XML

9

In Magento 2 ui_componentkönnen Sie mithilfe der basierten Raster Spalten neu anordnen, und Magento speichert Ihre Einstellungen beim nächsten Anmelden. Dies wird erreicht, indem Magento Daten in der ui_bookmarkTabelle speichert (über ein Magento\Ui\Model\BookmarkModellobjekt).

Diese Funktion ist zwar ordentlich, kann jedoch zu Problemen führen, wenn ein Erweiterungsentwickler oder Systemintegrator Magento ui_componentXML verwendet, um einer Tabelle Spalten hinzuzufügen. Wenn es benutzerdefinierte Daten gibt, ui_bookmarkignoriert Magento (scheinbar) die Sortierreihenfolge einer neuen Spalte und es können seltsame / unerwartete Dinge passieren.

Gibt es eine bewährte Methode und / oder ein bewährtes System für Erweiterungsentwickler, die Spalten zu einem UI-Raster hinzufügen möchten (entweder Magentos oder eigene) und sicherstellen möchten, dass eine Spalte irgendwo in Beziehung zu den anderen steht? dh - "Diese zweite Aktionsschaltfläche sollte immer als letztes oder immer als vorletztes erscheinen" oder "das Namensfeld sollte immer nach der ID stehen.

Muss ein Erweiterungsentwickler über eine app/code/Package/Module/Setup/...Klasse in die ui_bookmarkTabelle greifen und diese Einträge selbst aktualisieren? Oder gibt es einen besseren Weg, dies zu erreichen? Oder müssen Erweiterungsentwickler nur mit einer Spalte leben, die an unerwarteten Stellen hinzugefügt wird, wenn ein Benutzer bereits einen Eintrag in hat ui_bookmark?

Alan Storm
quelle

Antworten:

4

Ich denke, dass dies ein Fehler in magento2 ist.

Normalerweise bereinige ich die Tabelle ui_bookmark, nachdem ich neue Spalten durch Module hinzugefügt habe.

Magento2 speichert Spaltenpositionen, auch wenn die Reihenfolge der Spalten nicht geändert wurde.

"positions":{
    "ids":0,
    "increment_id":1,
    "store_id":2,
    "created_at":3,
    "billing_name":4,
    "shipping_name":5,
    ...
}

Wenn Spaltenpositionen jedoch erst nach Benutzermodifikationen gespeichert werden, haben wir das gleiche Problem mit neuen Spalten.

Wenn eine relative Reihenfolge wie name column after idoder hinzugefügt wird my_column before actions, werden die Spalten in der Benutzeroberfläche hässlich gezogen.

Wenn Sie die ui_bookmarkTabelle während der Modulinstallation löschen, können Sie benutzerdefinierte Benutzereinstellungen für die Liste löschen.

Möglicherweise müssen Kernentwickler die Aktionsspalte als letzte als Teillösung korrigieren.

Ich denke, dass diese Frage nicht die einzig richtige Entscheidung hat

Max
quelle