Skip to content

feat(grid): фильтрация товаров категории по relation-колонкам - #585

Open
Ibochkarev wants to merge 1 commit into
betafrom
feat/issue-582-relation-column-filter
Open

feat(grid): фильтрация товаров категории по relation-колонкам#585
Ibochkarev wants to merge 1 commit into
betafrom
feat/issue-582-relation-column-filter

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

В гриде товаров категории relation-колонки уже JOIN/SELECT/sort, но filter_{fieldName} обрабатывался только для option. Фильтр по адресу вендора и подобным полям молча игнорировался.

Теперь CategoryProductsListService применяет LIKE по display-полю связанной таблицы (тот же JOIN и sortExpression(), что для сортировки). CategoryProductsGrid шлёт filter_* и для type === 'relation'.

Тип изменений

  • Новая функциональность (non-breaking change)

Связанные Issues

Closes #582

Как это было протестировано?

Gate E:

php -l core/components/minishop3/src/Services/Category/CategoryProductsListService.php
# exit 0
php core/components/minishop3/tests/RelationColumnSpecTest.php
# OK, exit 0
php core/components/minishop3/tests/CategoryProductsRelationFilterTest.php
# OK (red-green: FAIL без PHP-цикла), exit 0
cd core/components/minishop3 && composer test:smoke
# OK smoke tests (77), exit 0
cd vueManager && npx eslint src/components/CategoryProductsGrid.vue
# exit 0
  • Автоматические тесты (composer test:smoke, focused smoke, eslint path)
  • Ручное тестирование в Manager (фильтр по relation-колонке после очистки кэша)

Конфигурация тестирования:

  • MiniShop3: ветка feat/issue-582-relation-column-filter от beta
  • PHP: 8.x локально

Чеклист

  • Код соответствует стилю проекта
  • Изменения не ломают существующую функциональность
  • Лексиконы не нужны (без новых UI-строк)
  • PHPStan — CI job
  • ESLint по затронутому Vue-файлу
  • CHANGELOG — не трогали (релизный процесс)

Дополнительные заметки

Review: Vue-префикс filter_ для relation был обязателен; без него PHP-only не закрывал симптом из #328. Source-contract smoke для PHP+Vue — в духе существующих smoke-тестов репозитория.

Apply filter_{field} LIKE on joined relation display fields and send the same prefix from the manager grid so UI filters match option-column behaviour.
@Ibochkarev Ibochkarev added the enhancement New feature or request label Aug 16, 2026
@Ibochkarev
Ibochkarev requested a review from biz87 August 16, 2026 09:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Фильтрация по relation-колонкам в гриде товаров категории

1 participant