Atualizando a tabela ui_bookmark ao adicionar colunas via XML ui_component

9

No Magento 2, as ui_componentgrades baseadas permitem reordenar as colunas e o Magento lembrará suas configurações na próxima vez que você efetuar login. Isso é conseguido pelo Magento salvando dados na ui_bookmarktabela (através de um Magento\Ui\Model\Bookmarkobjeto de modelo).

Embora esse recurso seja interessante, ele pode criar problemas quando um desenvolvedor de extensões ou integrador de sistemas usa o Magento ui_componentXML para adicionar colunas a uma tabela. Se houver dados personalizados ui_bookmark, o Magento (aparentemente) ignorará a ordem de classificação de uma nova coluna e coisas estranhas / inesperadas podem acontecer.

Existe uma prática recomendada e / ou sistema para desenvolvedores de extensões que desejam adicionar colunas a uma UI Grid (do Magento ou da sua própria) e garantir que uma coluna esteja em algum lugar em relação às outras? ie - "Este segundo botão de ação sempre deve aparecer por último ou sempre aparece em último lugar" ou "o campo de nome deve estar sempre após o ID.

Um desenvolvedor de extensão precisa, por meio de uma app/code/Package/Module/Setup/...classe, acessar a ui_bookmarktabela e atualizar essas entradas elas mesmas? Ou existe uma maneira melhor de conseguir isso? Ou os desenvolvedores de extensões precisam apenas viver com uma coluna sendo adicionada a locais inesperados quando um usuário já tem uma entrada ui_bookmark?

Alan Storm
fonte

Respostas:

4

Eu acho que isso é bug no magento2.

Normalmente limpo a tabela ui_bookmark depois de adicionar novas colunas por qualquer módulo.

O Magento2 salva as posições das colunas, mesmo que não haja nenhuma modificação na ordenação das colunas.

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

Porém, se as posições das colunas forem armazenadas somente após as modificações do usuário, teremos o mesmo problema com as novas colunas.

Se serão adicionados pedidos relativos como as name column after idou my_column before actions, teremos um arrastamento feio de colunas na interface do usuário.

Se você limpar a ui_bookmarktabela durante a instalação do módulo - poderá limpar as configurações personalizadas do usuário para a listagem.

Talvez, os desenvolvedores principais precisem corrigir a coluna de ações, por último, como solução parcial.

Eu acho que essa pergunta não tem a única decisão certa

Máx.
fonte