Сайт оператора техосмотра
Журнал изменений продукта: новые возможности, доработки личного кабинета и публичной части сайта записи на техосмотр.
v2.2.12
PatchРедактирование заявки после обновления
Автоматически исправляются view-файлы со старым путём к стилям ЛК, если update-ZIP их не перезаписал.
Личный кабинет
- Страница редактирования заявки больше не падает с ошибкой 500 из‑за устаревшего app\assets\LkAsset — при обновлении и проверке схемы пути к AssetBundle приводятся к bundles/.
v2.2.11
PatchРедактирование заявки и мобильное меню
Исправлена ошибка 500 при открытии формы редактирования заявки в ЛК; бургер на телефоне без рывков.
Личный кабинет
- Страница редактирования заявки снова открывается: обновлён путь к стилям ЛК после переноса AssetBundle в bundles/.
Главная
- Мгновенное раскрытие navbar на мобилке; панель меню и кнопка телефона без скачков при сворачивании.
v2.2.10
PatchИсправлена вёрстка одной допуслуги
Карточка услуги без конфликта с icon-box: боковая панель, текст сверху, список и кнопка внизу.
Главная
- Убран сломанный grid и margin-left от legacy icon-box; при одной услуге — нормальная горизонтальная карточка на всю ширину.
v2.2.9
PatchШирокая карточка одной допуслуги
Блок «Услуги в одном месте» при одной услуге — на всю ширину секции, с акцентной боковой панелью.
Главная
- Карточка на полную ширину: слева панель с иконкой, справа описание, преимущества в две колонки и кнопка.
v2.2.8
PatchДопуслуги в описании пункта по умолчанию
Если описание ПТО пустое — базовый текст плюс абзацы про включённые ОСАГО и/или госномера.
Главная
- В карточке пункта при пустом add_info подставляется текст об аккредитации и отдельные абзацы по включённым допуслугам.
v2.2.8
PatchНастройки: раздел «SEO и интеграции»
Проверка почты, доп.услуги ОСАГО/госномера и Web-DK token перенесены из «Реквизиты» и «Предварительная запись» в отдельный раздел.
Админка
- Вкладка SEO переименована в «SEO и интеграции»: Яндекс.Вебмастер, ОСАГО/госномера, Web-DK token, проверка почты.
- «Реквизиты» и «Предварительная запись» — только профиль организации и параметры записи.
v2.2.7
PatchОдна допуслуга на лендинге
Секция «Услуги в одном месте» при одной подключённой услуге — карточка по центру, горизонтальная компоновка на широком экране.
Главная
- При только ОСАГО или только госномерах — полноширинная карточка по центру вместо узкой колонки слева.
- Подзаголовок секции подстраивается под включённую услугу.
v2.2.6
PatchЛендинг, описание ПТО и роли в админке
Шаг госпошлины с QR на лендинге, краткий текст пункта по умолчанию и пояснения по ролям пользователей.
Главная
- Шаг «Госпошлина» между «Документы» и «Осмотр»; кнопка QR при одном ПТО с заполненными реквизитами.
- Дефолтное описание ПТО без блока про ОСАГО и госномера.
Админка
- Блок «Кто есть кто» на /user/index: партнёр, сотрудник и учётная запись API.
v2.2.5
PatchQR госпошлины в шаге лендинга
При одном пункте техосмотра в шаге «Госпошлина» показывается кнопка оплаты по QR, если реквизиты заполнены.
Главная
- Кнопка «QR-код госпошлины» в шаге «Госпошлина» — только при одном ПТО и заполненных реквизитах оплаты.
v2.2.4
PatchЭтап госпошлины на лендинге
В блоке «Как проходит техосмотр» добавлен шаг об оплате госпошлины перед осмотром.
Главная
- Новый шаг «Госпошлина» между «Документы» и «Осмотр» — пять этапов вместо четырёх.
v2.2.3
PatchСоздание партнёра из админки
Исправлена ошибка при добавлении партнёра и API-пользователя в ЛК.
Пользователи
- При создании партнёра подставляются обязательные поля user (owner, city, price и др.) — без 500/SQL.
v2.1.2
PatchСтатика без PHP на legacy-хостинге
CSS/JS и Yii-assets отдаются nginx напрямую, если document root — корень проекта, а не web/.
Производительность
- Симлинки из корня в web/ (css, js, assets, favicon…) — статика не попадает в PHP и DDoS-лимит.
- Классы AssetBundle перенесены в bundles/ — URL /assets/ снова для опубликованных файлов Yii.
v2.1.1
PatchСмена категории в предзаписи
При выборе M2/M3 календарь и слоты времени обновляются сразу, дата сдвигается на ближайший допустимый день.
Предварительная запись
- Исправлена реакция формы на смену категории: обновление календаря, даты и доступного времени.
v2.1.0
MinorДни недели для автобусов M2/M3
В настройках предзаписи можно указать, в какие дни принимают автобусы — календарь и проверка заявки учитывают категорию.
Предварительная запись
- В ЛК → «Предварительная запись» — отдельные дни недели для категорий M2 и M3.
- Если дни не заданы, запись M2/M3 доступна в любой рабочий день ПТО (как раньше).
- Календарь на форме записи блокирует недоступные дни после выбора категории.
v2.0.48
PatchОбновления с публикатора
Клиентские сайты снова видят новую версию на demo-site в разделе «Обновление».
Администрирование
- Исправлено определение версии последнего update-ZIP на публикаторе (API update-info).
v2.0.47
PatchВсе заявки на графике
Исправлено отображение заявок, время которых не совпадало со строками сетки ПТО.
Заявки
- Заявки привязываются к слотам от начала рабочего дня ПТО, а не от полуночи.
- При необходимости в сетку добавляются дополнительные строки для фактического времени записи.
v2.0.46
PatchФильтр ПТО в графике записи
График в ЛК строится по выбранному пункту техосмотра: свои часы работы и заявки.
Заявки
- В фильтре графика обязательный выбор пункта техосмотра.
- Сетка и статистика показывают только заявки и режим работы выбранного ПТО.
v2.0.45
PatchВыходные суббота и воскресенье
В настройках ПТО можно указать выходные «суббота и воскресенье»; предзапись и график учитывают новый режим.
Пункты техосмотра
- В настройках онлайн-записи ПТО добавлен вариант выходных «Суббота и воскресенье».
- Сокращённая суббота не применяется, если суббота уже выходной.
Предварительная запись
- В календаре записи недоступны даты выходных по настройкам ПТО.
- При открытии формы подставляется ближайший рабочий день; выходная дата отклоняется при отправке.
v2.0.44
PatchГрафик записи по настройкам ПТО
Сетка графика в ЛК строится по рабочим часам и шагу записи из настроек пункта техосмотра.
Заявки
- Строки времени и интервал слотов берутся из настроек ПТО (moStart/moEnd, booking_step).
- Выходные, сокращённые дни и обеденный перерыв отображаются в ячейках сетки.
- Подпись в шапке графика показывает актуальные часы работы и шаг записи.
v2.0.43
PatchВерсия продукта без расхождений
Одна версия в ЛК, API и на публикаторе; понятнее статус на странице «Обновление».
Администрирование
- API /api/v1/service/version совпадает с версией в «Обновление» (version.json и params).
- «Проверить схему» выравнивает appVersion в config/params.php с version.json.
- Подсказки, если сайт новее публикатора или params отстают от version.json.
v2.0.42
PatchПроверка почты в настройках
В ЛК → Настройки → Реквизиты можно отправить тестовое письмо на указанный e-mail.
Администрирование
- Кнопка «Тест» проверяет SMTP и адрес отправителя без сброса пароля.
v2.0.41
PatchОбновление из личного кабинета
Надёжнее применение update-ZIP: почта и шаблоны писем, резервная копия config/mail.
Администрирование
- «Обновление» в ЛК подтягивает mail-local.php и шаблоны писем с публикатора.
v2.0.40
PatchПисьмо сброса пароля
Стилизованный шаблон и название ПТО вместо My Application.
Личный кабинет
- Обновлён текст и оформление письма восстановления пароля.
v2.0.38
PatchПочта при обновлении
При update.php синхронизируются адреса отправителя из дистрибутива публикатора.
Уведомления
- Обновление подставляет общий SMTP (config/mail-local.php) и senderEmail с публикатора.
v2.0.37
PatchЦентрализованная почта SaaS
Отправка с notify@sites-pm.web-dk.ru; инструкция config/MAIL.md.
Почта
- Эталон params: общий ящик notify@sites-pm.web-dk.ru, SMTP — config/mail-local.php.
- Документация: config/MAIL.md, пример mail-local.saas.example.php.
v2.0.36
PatchОтправка почты
Почта: config/mailer.php, envelope sendmail, опционально SMTP (mail-local.php).
Личный кабинет
- Исправлена отправка писем (сброс пароля, уведомления): задан DSN transport в config.
v2.0.35
PatchВосстановление пароля: отправка письма
Исправлен setFrom при сбросе пароля (email => имя отправителя).
Личный кабинет
- Исправлена ошибка RfcComplianceException при запросе ссылки на сброс пароля.
v2.0.34
PatchТелефон на главной (исправление)
Формат мобильных +7 (XXX) XXX-XX-XX; исправлена ошибка Class PhoneFormat not found в шапке.
Главная
- Компонент PhoneFormat; импорт в начале main.php.
- 89902050777 отображается как +7 (990) 205-07-77.
v2.0.33
PatchФормат телефона на главной
Мобильные номера на лендинге показываются как +7 (XXX) XXX-XX-XX.
Главная
- Шапка, подвал и карточки пунктов: 89902050777 → +7 (990) 205-07-77.
- Ссылка tel: ведёт на +79902050777.
v2.0.30
MinorВосстановление пароля
Страницы запроса и установки нового пароля на русском, в оформлении страницы входа; письма на русском.
Личный кабинет
- Страницы /request-password-reset и /reset-password в едином стиле с входом.
- Письмо со ссылкой для сброса пароля — на русском.
v2.0.21
PatchМобильная вёрстка: navbar и шаги
navbar-brand по центру по вертикали; контент карточек шагов — по центру на телефоне.
Главная
- main.css: flex-выравнивание #main-menu на max-width 767px.
- home-landing: центрирование landing-steps на max-width 639px.
v2.0.20
PatchИсправлены поля форм в тёмной теме ЛК
Починка lk-dashboard.css после блока отступов; явные стили form-control для dark theme.
Админка
- Восстановлен .lk-color-swatch::after (сломанный CSS).
- Поля ввода: background-color, placeholder, autofill в тёмной теме.
v2.0.19
PatchТарифы на главной
Карточки категорий с подсказкой и обрезкой длинного текста.
Главная
- price-category-card: колонка, shortHint, line-clamp описания, цена в подвале.
- CategoryLabels — понятные названия категорий.
v2.0.18
PatchНастройка отступов главной в ЛК
Три ползунка в «Внешний вид»: секции, заголовки, карточки.
Главная
- landing_spacing_section, landing_spacing_head, landing_spacing_cards в settings.
- Компонент LandingSpacing — CSS-переменные для home-landing.
v2.0.17
PatchШаги техосмотра — отдельная секция
landing-prose оформлен как карточка; крупная инфографика в секции «Как проходит техосмотр».
Главная
- Секция #how-it-works с воздушными шагами 01–04.
- Текст о ценах — бейдж, градиент, кнопка PDF.
v2.0.16
PatchТарифы: 1–2 карточки на всю ширину
price-category-card при одной или двух категориях растягиваются по контейнеру.
Главная
- Одна категория — 100% ширины; две — по 50% на десктопе.
v2.0.15
PatchИнфографика и ширина блока под тарифами
Четыре шага техосмотра над landing-prose; блок в 1.5 раза шире (63rem).
Главная
- Инфографика: запись → документы → осмотр → результат.
- landing-prose-wrap: max-width 63rem.
v2.0.13
PatchНовости по умолчанию на главной
Три нейтральные новости, если в админке ещё нет активных публикаций.
Главная
- NewsPlaceholders: запись, документы, режим работы.
- При появлении своих новостей подставные скрываются.
v2.0.12
PatchКарта пункта по адресу
Если код Яндекс.Карты не задан — на главной показывается виджет по адресу ПТО.
Главная
- YandexMapEmbed: автоматический iframe, если map_code пустой.
- Свой код из конструктора по-прежнему имеет приоритет.
v2.0.10
PatchТексты по умолчанию и вёрстка лендинга
price_add_info и add_info при пустых полях; центрирование тарифов и блока под ценами.
Главная
- Произвольная информация о ценах — текст о повторном техосмотре.
- Центрирование 1–2 карточек тарифов и блока landing-prose.
v2.0.0
MajorЛичный кабинет Trezo и формы
Крупное обновление интерфейса администратора и публичной части сайта.
Личный кабинет (Trezo)
- Новый дизайн ЛК: боковое меню, карточки, тёмная/светлая тема, Material Symbols.
- Дашборд, настройки сайта (вкладки: запись, SEO, дизайн, информация).
- Список и редактирование заявок, просмотр карточки заявки.
- График записи: полноэкранный режим, компактная шапка (сохранение в localStorage).
Заявки и запись
- Форма редактирования заявки: секции, слоты времени, демо-режим только просмотра.
- Исправлен выбор времени вне сетки (например 9:45) и визуальная подсветка слота.
- Корректная работа recTime при значениях с плавающей точкой в БД.
Диагностические карты (интерфейс)
- Раздел ДК в ЛК: список, просмотр, создание и редактирование в едином стиле Trezo.
- Бейджи срока действия, привязка к контрагентам и партнёрам.
- Модуль и API для внешних систем добавлены в версии 1.9.
Пользователи и контрагенты
- Стилизованные формы создания/редактирования пользователей и организаций.
- Роль API (1С): генерация access token в форме.
- Смена пароля с подтверждением.
Демо-режим
- Роль demo_admin: просмотр списков без изменения данных.
- Маскирование персональных данных в демо.
- Ограничения на пользователей, контрагентов, новости и смену пароля.
Публичная часть
- Лендинг, формы предзаписи (полная и облегчённая), страница входа.
- Кастомный hero-баннер, типографика и цветовые схемы.
- График занятости, экспорт, улучшенные слоты времени на записи.
v1.9.0
MinorДиагностические карты и API для внешних систем
Главное изменение линейки 1.9 — полноценный учёт диагностических карт в личном кабинете и приём данных из внешних систем (в т.ч. 1С) по API.
Модуль «Диагностические карты»
- Раздел в ЛК: список карт, карточка просмотра, создание и редактирование.
- Привязка к контрагентам (организациям) и партнёрам.
- Хранение данных ТС, сроков действия, статуса; загрузка PDF карты.
- Роль API (1С): access token для аутентификации при передаче карт.
API для внешних систем
- REST API v1: приём и обновление диагностических карт из внешних систем.
- Маршрут POST api/diagnostic-card — передача карты и PDF (base64).
- Идентификация по UIN карты, данные владельца и транспортного средства.
Прочее в линейке 1.9
- Доработки графика записи, форм заявок и навигации ЛК.
- Кэширование статических ресурсов по appVersion.
v1.8.0
MinorКабинет клиента
Новое
- Добавлен функционал «Кабинет клиента».
v1.7.0
MinorЦены ТО и API
Новое
- Актуализация цен на ТО в ЛК (кнопка «Заполнить цены»).
- Страница истории версий.
- API продукта, метод version.
v1.6.0
MinorУведомления
Настройки
- Настройка «Не присылать уведомление админу на email о новой записи».
v1.5.0
MinorОферта
Запись
- Включение договора-оферты при предварительной записи (согласие).