Akeneo: выбрать сеточный фильтр программно

Наши пользователи могут добавлять другие продукты к продукту как ассоциации. Для большинства типов наших ассоциаций не имеет смысла показывать все продукты в сетке, они должны выбирать только продукты из одного семейства.

Пользователь может фильтровать продукты по семейству в графическом интерфейсе Akeneo, но это потребует меньше усилий и сделает наши данные более согласованными, если фильтр будет выбран программно.

Я бы изменил код в Pim/Bundle/EnrichBundle/Resources/views/Association/_associations.html.twig как это:

var changeAssociation = function (associationId) {
    var $idField = $('#pim_product_edit_associations').find('input[type="hidden"][value="' + associationId + '"]');

    // 4 is an association example id where only one family should be displayed
    if(associationId == 4) {
        // TODO: Filter family in the product grid 
        // mediator.trigger('datagrid:???:' dataGrids.product.name);
    }

Как я могу изменить фильтр сетки продуктов в Javascript?

Или есть лучший способ для моей цели?

1 ответ

Решение

Конфигурация этой сетки находится здесь (EnrichBundle/Resources/config/datagrid/association_product.yml). Вы можете настроить source.repository_method параметр для использования вашего пользовательского запроса в репозитории продукта (createAssociationDatagridQueryBuilderWithFamily например). Поскольку продукт передается в этот метод хранилища, вы сможете получить его семейство.

Это первый шаг, но кажется, что вы хотите сделать это только на конкретных продуктах.

Два решения:

  • Вы решаете в методе хранилища (поскольку у вас есть продукт, вы можете решить, будете ли вы фильтровать его семейство)
  • Вы выбираете шаблон: в этом случае вы можете создать копию сетки ассоциации (в конце association_product.yml файл, который вы можете скопировать первый конфигурационный файл сетки и переименовать его (association-with-family-product-grid например). Затем в шаблоне вы можете загрузить одну или другую (опция сетки здесь).

Не забудьте очистить кеш после манипуляций с конфигурацией datagrid, и все готово!

Другие вопросы по тегам