Оновлення таблиці ui_bookmark під час додавання стовпців через ui_component XML


9

У Magento 2 ui_componentсітки на основі дозволяють переупорядкувати стовпці, і Magento запам'ятає ваші настройки при наступному вході в систему. Це робиться завдяки збереженню даних Magento в ui_bookmarkтаблиці (через Magento\Ui\Model\Bookmarkмодельний об'єкт).

Хоча ця функція чітка, вона може створювати проблеми, коли розробник розширення або системний інтегратор використовує Magento ui_componentXML для додавання стовпців до таблиці. Якщо є власні дані, ui_bookmarkMagento (здавалося б) ігнорує порядок сортування нового стовпця, і дивні / несподівані речі можуть статися.

Чи є найкраща практика та / або система для розробників розширень, які хочуть додати стовпці до сітки інтерфейсу користувача (або Magento, або їх власну) і переконатися, що стовпець знаходиться десь стосовно інших? тобто - "Ця друга кнопка дій завжди повинна відображатись останньою, або завжди відображатись останньою", або "поле імені завжди повинно бути після ідентифікатора.

Чи потрібно розробнику розширень за допомогою app/code/Package/Module/Setup/...класу зайти в ui_bookmarkтаблицю та оновити ці записи самі? Або є кращий спосіб досягти цього? Або розробникам розширень просто потрібно жити з додаванням стовпця до несподіваних місць, коли користувач уже має запис ui_bookmark?

Відповіді:


4

Я думаю, що це помилка в magento2.

Я зазвичай очищую таблицю ui_bookmark після додавання нових стовпців будь-якими модулями.

Magento2 зберігає позиції стовпців, навіть якщо в порядку впорядкування стовпців немає змін.

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

Але якщо позиції стовпців будуть збережені лише після модифікацій користувача, у нас виникнуть ті ж проблеми з новими стовпцями.

Якщо буде додано відносне впорядкування, як, наприклад, name column after idабо my_column before actions, у нас буде некрасиве перетягування стовпців в інтерфейсі.

Якщо ви очистите ui_bookmarkтаблицю під час встановлення модуля - ви можете очистити власні налаштування користувача для списку.

Можливо, розробникам ядер потрібно виправити стовпчик дій як останній як часткове рішення.

Я думаю, що це питання має не єдине правильне рішення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.