Actualización de la tabla ui_bookmark al agregar columnas a través de ui_component XML

9

En Magento 2, las ui_componentcuadrículas basadas le permiten reordenar columnas y Magento recordará su configuración la próxima vez que inicie sesión. Esto se logra al guardar los datos en la ui_bookmarktabla (a través de un Magento\Ui\Model\Bookmarkobjeto modelo).

Si bien esta característica es clara, puede crear problemas cuando un desarrollador de extensiones o un integrador de sistemas usa Magento ui_componentXML para agregar columnas a una tabla. Si hay datos personalizados ui_bookmark, Magento (aparentemente) ignorará el orden de clasificación de una nueva columna y pueden ocurrir cosas extrañas / inesperadas.

¿Existe una mejor práctica y / o sistema para los desarrolladores de extensiones que desean agregar columnas a una UI Grid (ya sea de Magento o la suya propia) y asegurarse de que una columna esté en algún lugar en relación con las demás? es decir, "Este segundo botón de acción siempre debe aparecer en último lugar, o siempre debe aparecer en segundo lugar", o "el campo de nombre siempre debe estar después de la ID.

¿Un desarrollador de extensiones necesita, a través de una app/code/Package/Module/Setup/...clase, llegar a la ui_bookmarktabla y actualizar estas entradas por sí mismo? ¿O hay una mejor manera de lograr esto? ¿O los desarrolladores de extensiones solo necesitan vivir con una columna que se agrega a lugares inesperados cuando un usuario ya tiene una entrada ui_bookmark?

Alan Storm
fuente

Respuestas:

4

Creo que esto es un error en magento2.

Por lo general, limpio la tabla ui_bookmark después de agregar nuevas columnas por cualquier módulo.

Magento2 guarda las posiciones de las columnas incluso si no hay ninguna modificación en el orden de las columnas.

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

Pero si las posiciones de las columnas se almacenarán solo después de las modificaciones del usuario, tendremos el mismo problema con las nuevas columnas.

Si se agregará un orden relativo como as name column after ido my_column before actions, tendremos que arrastrar feo las columnas en la interfaz de usuario.

Si va a borrar la ui_bookmarktabla durante la instalación del módulo, puede borrar las configuraciones de usuario personalizadas para la lista.

Tal vez, los desarrolladores principales necesitan arreglar la columna de acciones como la última solución parcial.

Creo que esta pregunta no tiene la única decisión correcta

Max
fuente