Skip to content

Матрица переходов статусов в разделе настроек - #796

Open
Ibochkarev wants to merge 2 commits into
betafrom
feat/issue-785-status-transitions-editor
Open

Ibochkarev wants to merge 2 commits into
betafrom
feat/issue-785-status-transitions-editor

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

В разделе статусов настроек добавлена вкладка с матрицей разрешённых переходов. Сохранение пишет в ту же системную настройку ms3_order_status_transitions (CSV или пустая строка). Клетки final/fixed и диагональ отключены. При включённом allow-list подсвечиваются статусы без входящих переходов.

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

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

Связанные Issues

Closes #785

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

php -l core/components/minishop3/src/Services/Order/OrderStatusTransitionPolicy.php
php -l core/components/minishop3/src/Services/Order/OrderStatusTransitionsSettingsService.php
php -l core/components/minishop3/src/Controllers/Api/Manager/StatusesController.php
# exit 0

php core/components/minishop3/tests/StatusesTransitionsRouteTest.php
# OK

cd core/components/minishop3
./vendor/bin/phpunit tests/Unit/Services/Order/OrderStatusTransitionsSettingsServiceTest.php tests/Unit/Services/Order/OrderStatusTransitionPolicyTest.php
# OK (10 tests, 33 assertions)

cd vueManager
npm test -- --run src/components/StatusTransitionsMatrix.test.js src/components/settingsConfirmDialog.test.js
# 10 passed
npx eslint src/components/StatusTransitionsMatrix.vue src/components/StatusesAndTransitionsTabs.vue src/components/SettingsPage.vue src/components/StatusTransitionsMatrix.test.js src/test/settingsGridHarness.js
# exit 0
  • Ручное тестирование
  • Автоматические тесты (composer ci:php / composer test, npm run lint:ci, composer stan / GitHub Actions CI)
  • Тестирование на разных версиях PHP/MODX

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

  • MiniShop3: branch feat/issue-785-status-transitions-editor
  • MODX: n/a (unit/smoke)
  • PHP: 8.5.8

Скриншоты (если применимо)

До После

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок (composer stan / CI job PHPStan)
  • ESLint проходит без ошибок (npm run lint:ci для Vue)
  • Обновлён CHANGELOG.md (для значимых изменений)

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

Admins edit ms3_order_status_transitions as a named from→to checkbox
matrix instead of raw CSV, keeping the same system setting for BC.
@Ibochkarev Ibochkarev added this to the Order status UX milestone Sep 25, 2026
Resolve IDE undefined-type diagnostics on statuses/transitions handlers.
@Ibochkarev
Ibochkarev requested a review from biz87 September 25, 2026 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant