О платформе Войти
← К списку версий
v0.82.0 29.09.2026 MINOR
Корзина пользователей: «На проверке», «В корзине», «Удалённые»
ТЗ 256 «Корзина пользователей». У человека был один переключатель «Активен/Неактивен»: выключенный пользователь просто исчезал из рассылок, но оставался в общем списке без следа, почему его больше нет, и без возможности вернуть его в работу. Теперь у пользователя отдельный статус-корзина из четырёх состояний: «В работе» → «На проверке» → «В корзине» → «Удалённые», и каждое состояние возвращается в работу одним действием. Статус не пересекается с переключателем «Вход» (is_active): статус решает, отправляем ли мы человеку письма и отчёты, а «Вход» — пускаем ли мы его в личный кабинет. На странице пользователей появились вкладки с постоянными счётчиками («Все · N / В работе · N / На проверке · N / В корзине · N / Удалённые · N»), отдельная колонка «Статус» с бейджем и новые пункты кебаб-меню: «На проверку», «В корзину», «Вернуть в работу», «Восстановить», «Удалить навсегда». «Удалить» стало мягким: запись уходит в «Удалённые» вместе со своими проектами и письмами, её можно восстановить; «Удалить навсегда» доступно только оттуда и вычищает связанные данные. Письма и отчёты не отправляются всем, кто вне «В работе»: гейт стоит в scopeEmailActive, в подборке получателей кампаний, массовых уведомлений, недельных отчётов и статусов задач, а вход закрыт в логине, смене аккаунта, автовходе и восстановлении пароля. Версия v0.82.0, эталон тестов 312 passed.
Что сделано
  • Статус у пользователя - Новая колонка clients.status (active / review / trash / deleted, по умолчанию active) и константы Client::STATUS_*. Хелперы: isOperational() — «в работе», статус-подпись «В работе / На проверке / В корзине / Удалён». Статус независим от is_active: один закрывает письма, другой — вход.
  • Вкладки на странице пользователей - /admin/users: вкладки с живыми счётчиками («Все», «В работе», «На проверке», «В корзине», «Удалённые»), вкладка «Все» скрывает удалённых, фильтры и сортировка работают внутри вкладки, сортировка добавлена по статусу. Бывший фильтр «Статус» переименован в «Вход» (Открыт/Закрыт) — чтобы «статус» значил одно.
  • Кебаб-меню по статусу - «На проверку» и «В корзину» — у человека в работе; «Вернуть в работу» и «На проверку» — в корзине; «Восстановить» и «Удалить навсегда» — в удалённых. «Войти как» показывается только для людей в работе.
  • Мягкое удаление - «Удалить» переводит запись в «Удалённые» (данные, проекты и письма сохраняются), оттуда — «Восстановить» или «Удалить навсегда» с вычисткой связанных записей. Обе операции пишутся в журнал действий.
  • Письма и вход - Гейт статуса добавлен туда, где выбираются клиенты: scopeEmailActive, получатели кампаний (всех типов) и массовые уведомления, недельные отчёты и статусы задач. Вход закрыт в логине, восстановлении пароля, смене аккаунта и автовходе по устройству; NextStepService подсказывает администратору, что человек вне работы, и ведёт на нужную вкладку.
Результат
  • Пользователя можно отложить, не теряя: «На проверке» и «В корзине» гасят письма и вход, «Удалённые» — это восстановимый архив, а безвозвратное удаление требует явного перехода. Страница пользователей показывает, где находится каждый человек, счётчиками вкладок.