Aktualizowanie tabeli ui_bookmark podczas dodawania kolumn przez ui_component XML

9

W Magento 2, ui_componentoparte na siatkach siatki pozwalają na zmianę kolejności kolumn, a Magento zapamięta twoje ustawienia przy następnym logowaniu. Jest to osiągane przez zapisywanie danych w ui_bookmarktabeli przez Magento (za pomocą Magento\Ui\Model\Bookmarkobiektu modelowego).

Chociaż ta funkcja jest schludna, może powodować problemy, gdy programista rozszerzeń lub integrator systemu używa Magento ui_componentXML do dodawania kolumn do tabeli. Jeśli są dane niestandardowe, ui_bookmarkMagento (pozornie) zignoruje kolejność sortowania nowej kolumny i mogą się zdarzyć dziwne / nieoczekiwane rzeczy.

Czy istnieje najlepsza praktyka i / lub system dla programistów rozszerzeń, którzy chcą dodawać kolumny do siatki interfejsu użytkownika (Magento lub własnej) i upewnić się, że kolumna jest gdzieś w stosunku do innych? tzn. „Ten drugi przycisk akcji powinien zawsze pojawiać się na końcu lub zawsze na drugim miejscu” lub „pole nazwy powinno zawsze znajdować się po identyfikatorze.

Czy programista rozszerzeń musi za pośrednictwem app/code/Package/Module/Setup/...klasy sięgnąć do ui_bookmarktabeli i samodzielnie zaktualizować te wpisy? Czy jest lepszy sposób na osiągnięcie tego? Czy też programiści rozszerzeń muszą po prostu żyć z kolumną dodawaną do nieoczekiwanych miejsc, gdy użytkownik ma już wpis ui_bookmark?

Alan Storm
źródło

Odpowiedzi:

4

Myślę, że to błąd w Magento2.

Zwykle czyszczę tabelę ui_bookmark po dodaniu nowych kolumn przez dowolne moduły.

Magento2 zapisuje pozycje kolumn, nawet jeśli nie ma żadnych modyfikacji w kolejności kolumn.

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

Ale jeśli pozycje kolumn będą przechowywane tylko po modyfikacji użytkownika, będziemy mieli ten sam problem z nowymi kolumnami.

Jeśli zostanie dodany porządek względny jak jako name column after idlub my_column before actions, będziemy mieli brzydkie przeciąganie kolumn w interfejsie użytkownika.

Jeśli wyczyścisz ui_bookmarktabelę podczas instalacji modułu - możesz wyczyścić niestandardowe ustawienia użytkownika dla listy.

Być może kluczowi programiści muszą naprawić kolumnę działań jako ostatnią jako częściowe rozwiązanie.

Myślę, że to pytanie nie jest jedyną właściwą decyzją

Max
źródło