Изменения платформы IT-CONF. Текущая версия: 0.1.0-R182.
182релиза в истории
0.1.0-R182Текущая версия
ЮКасса: чек с НДС мероприятия, темы интерфейса и регистрация
ЮКасса получает чек с контактом покупателя, суммой заявки после скидок и ставкой НДС из параметров прейскуранта мероприятия. Ошибки чека и реквизитов магазина объясняются отдельно. Создание платежа оставляет заявку неоплаченной до подтверждения провайдера.
Исправлены границы выделения меню, центрирование пиктограмм, ссылка проживания и дублирующая плашка. Убраны запрос пакета и генерируемые плашки уровней партнёрства. Реквизиты, организаторы, программный комитет, докладчики, архив, история изменений и уведомления адаптированы к темам. Верхняя строка закреплена; вкладки используют цвета брендов и видимое наведение.
Профиль получил читаемые поля и редактор в тёмной теме. Фото сохраняется отдельной формой: обязательные скрытые за диалогом поля основного профиля больше не блокируют загрузку и удаление фотографии.
Телефон обычного участника необязателен; для регистратора и докладчиков проверка сохранена. Подтверждение показывает «Всего к оплате» и цены с НДС, в списке и карточке регистрации указан включённый НДС. Валюты интерфейса отображаются символами; ISO-коды API и хранения сохранены.
Добавлен Excel-импорт в незаполненные места заявки: прежний шаблон визарда, предпросмотр, проверка форматов, вместимости, дублей и обязательных данных. Пакет сохраняется атомарно и не меняет стоимость заявки.
0.1.0-R181
Исправление Windows-установщика и валидации полного пакета
Восстановлен UTF-8 BOM в Configure.ps1 и Validate.ps1: Windows PowerShell 5.1 корректно читает русский текст и запускает настройку, проверку и установку.
Сборка полного ZIP блокируется при неверной кодировке PowerShell или окончаниях строк CMD. Добавлены семь регрессий, включая воспроизведение отсутствующего BOM из R180.
Актуализированы проверки адаптивной консоли, полного тестового раннера, справочников и мобильного тестового режима. Исправлено полное чтение gettext-каталога из ZIP и согласован URL APK в постоянном профиле.
В PR и релизную цепочку добавлена проверка распакованного полного архива в Windows PowerShell 5.1. Ошибка этого задания блокирует пакет и TEST.
0.1.0-R180
CR-142: материалы докладчика и проживание SQA Days по макету «Маршрут»
Страницы «Памятка докладчикам», «Рекомендации по оформлению презентаций», «Темы и форматы докладов» и «Проживание» оформлены по выбранному «Маршруту» в обеих темах и на мобильных экранах. Вертикальная линия этапов и плашка «От подготовки к действию» исключены; сохранены брендовые шрифты, общая шапка, орбиты, ссылки, скачивание и единое поведение кнопок.
Со страницы «Докладчикам» материалы открываются внутри сайта мероприятия. В блоке «Где остановиться» добавлена ссылка «Рекомендации по проживанию». Для SQA Days 39 иллюстрация площадки заменена улучшенной фотографией Holiday Inn Сокольники, без обрезки здания. Пункт «Участники» скрыт в навигации SQA Days; раздел «Участникам» сохранён.
Подстраницы остаются редактируемыми через справочник мероприятия. Идемпотентная миграция дополняет SQA Days 39 полными текстами утверждённого альбома и предложением отеля, заменяя только неизменённые исходные тексты. Авторские правки и визуальные настройки сохраняются; предложение с датами и промокодом не переносится в другие мероприятия.
Обязательная квалификация: 1071 браузерный сценарий + 6 HTTP fixture, серверные регрессии, Docker quality, PostgreSQL checkout и полный пакет. Проверяются обе темы, три экрана, ссылки ресурсов, изоляция мероприятий и сохранение правок.
0.1.0-R179Улучшение
CR-141: кнопки SQA Days и раскрывающийся переключатель языка
В шапке сайтов RU/EN заменён раскрывающимся переключателем: текущий язык сверху, второй вариант ниже. Русский используется до явного выбора; сохранены cookie языка, возврат на текущую страницу и защита от внешнего редиректа. Поддержаны клавиатура, Escape и закрытие вне переключателя.
На странице площадки кнопка переименована в «Открыть в Яндекс Картах»; кнопка 2GIS оформлена так же. Обе действующие ссылки и открытие карты сохранены. На участниках текст «Купить билет» центрирован; длинные названия уровней партнёров не сдвигают стрелку с правого края. У «Текущего периода» убрана оставшаяся тень.
Изменения SQA Days проверяются в обеих темах и трёх размерах экрана. Переключатель языка проверяется на трёх брендах. Полная обязательная квалификация: 981 браузерный сценарий + 6 HTTP fixture, серверные регрессии, Docker quality, PostgreSQL checkout и полный пакет. Данные и миграции не меняются.
0.1.0-R178Улучшение
CR-140: страницы участия SQA Days по альбому и исправления тем
«Участникам», «Докладчикам» и «Партнёрам» получили модульное оформление, маршрут подготовки и сценические блоки из альбома в обеих темах и на мобильных экранах. Скин сохраняет действующие тексты, сроки, ссылки, FAQ и данные справочников; база содержимого не переписывается.
«О компании» раскрывается продолжением карточки логотипа в потоке страницы. Подписи остаются горизонтальными, соседняя карточка не растягивается, следующие строки сдвигаются. Размеры логотипов и условие скрытия пустых описаний сохранены.
Исправлены наложение строк на главной и белая плашка «Все секции» в тёмной теме. Удалена лишняя регистрация над «Оплата и документы». Переключатель темы — простая иконка с сохранённым управлением с клавиатуры. Пиктограммы профессий, форматов, участников и этапов докладчика заменены смысловыми SVG.
Квалификация: 936 браузерных сценариев + 6 HTTP fixture, серверные регрессии, Docker quality, PostgreSQL checkout и полный пакет. Проверки сохранения текстов/ссылок, раскрытия, обеих тем и трёх размеров экрана. Миграции не требуются.
0.1.0-R177Улучшение
CR-140: страницы SQA Days, НДС по валюте и визуальный редактор подстраниц
«Стоимость», «Программа», «Контакты» и «Партнёры» SQA Days оформлены по утверждённому альбому в светлой и тёмной темах с мобильной адаптацией. Сохранены шрифты бренда, верхняя шапка, меню, анимированный логотип, ссылки и обработчики программы. Переключатель темы — иконка без видимой надписи, с доступным названием и подсказкой.
Карточки стоимости показывают итог первым. НДС рассчитывается и отображается только для RUB: публичные тарифы, предварительный расчёт регистрации и итог заказа используют одно правило. Для BYN, USD и EUR элементы НДС скрыты и начисления нет. Уже оплаченные заказы и начатые платежи не переписываются.
Размеры логотипов партнёров сохраняются из справочника статусов. Раскрытие «О компании» отсутствует при пустом описании, включая пустые HTML-абзацы. Контакты сохраняют ссылки электронной почты и произвольные редакторские разделы.
Основные страницы мероприятий всех брендов доступны в справочнике; подстраницы связаны с родителем того же мероприятия и открываются с основных страниц. Идемпотентная миграция добавляет отсутствующие основные записи без замены существующего содержимого.
Редактор показывает настоящую страницу выбранного мероприятия без верхних шапок. Текст редактируется на странице, изображения заменяются ссылкой или безопасной загрузкой. Сохранение публикует отдельные текстовые и графические правки по мероприятию и языку, сохраняя функциональный HTML и вычисляемые суммы. Есть просмотр темы/мобильного размера, контроль прав, CSRF, конфликтов сохранения и аудит.
Обязательная квалификация: серверные регрессии, Docker quality, PostgreSQL checkout, полный Windows-пакет и 864 браузерных сценария плюс 6 HTTP fixture. Ошибки и пропуски блокируют установку на TEST.
0.1.0-R176Улучшение
CR-139: страницы «О конференции» и «Место проведения» SQA Days по альбому
Для SQA Days созданы отдельные представления «Сцена» и «Модульная система»: открытые нумерованные секции, иконки аудиторий и форматов, блоки участия, сетка площадки и нижние кнопки в светлой и тёмной темах.
Сохранены редакторские тексты, произвольные разделы и карточки, якоря, дочерние страницы, контактные ссылки, фактический адрес и интерактивная карта. Кнопки ведут на действующие программу, регистрацию, профиль, приложения, Яндекс Карты и 2GIS.
Использованы фирменные шрифты из настроек платформы и иллюстрация из утверждённого альбома; условное здание явно помечено как иллюстрация. Живая карта и фактические данные не заменяются изображениями или заглушками макета.
Верхняя шапка, меню, анимированный логотип и остальные страницы/бренды сохранены. Миграции и перезапись данных не требуются. Мобильная версия перестраивает сетку без горизонтальной прокрутки.
Добавлены пять серверных регрессий сохранения данных и ссылок, 36 браузерных сценариев обеих тем на трёх движках/экранах. Полный браузерный набор: 774 сценария + 6 HTTP fixture. Обязательны Docker quality, PostgreSQL checkout, полный пакет и TEST.
0.1.0-R175Улучшение
CR-138: скин SQA Days по утверждённому альбому
Светлый и тёмный скин SQA Days использует фирменные Stolzl/Aeonik из действующих настроек. По умолчанию включён тёмный режим; переключатель в верхней плашке сохраняет выбор между страницами и работает при недоступном хранилище.
Сохранены верхняя шапка и меню, геометрия и анимация кружка логотипа, название и даты конференции на главной. В шапках страниц добавлены планеты на разнонаправленных орбитах с учётом prefers-reduced-motion.
Страницы «Сцена», «Модульная система», «Маршрут» и «Цена на первом месте» оформлены поверх существующих шаблонов и содержимого. Мобильные версии обеих тем, контраст и единая анимация кнопок включены в браузерную квалификацию.
Сохранены ссылки, формы, обработчики кнопок и функциональное содержимое программы. Итог тарифа с НДС показан первым, далее ставка и разбивка; используется действующее Decimal-округление checkout без изменения цен, формул и заказов.
Другие бренды не меняются; отдельные CR-134–137 остаются открытыми. Миграции и замена редакторского содержимого не требуются.
Обязательная квалификация: серверный Docker quality, PostgreSQL checkout, полный Windows-пакет и 738 браузерных сценариев плюс 6 HTTP fixture на Chromium, Firefox и WebKit. Пропуски и ошибки блокируют TEST.
0.1.0-R174Исправление
CR-125–133: актуальные цены, рецензирование и страницы участников
CR-125: просроченные неоплаченные заявки физических и юридических лиц пересчитываются по текущему периоду в кабинете, заявке, оплате и фоновой задаче каждые пять минут. До 25-го цена действует до конца месяца, начиная с 25-го — до 5-го числа следующего месяца включительно. Учитываются повторные корпоративные строки, скидки и НДС; пересчёт атомарен и записывается в аудит.
Начатый внешний платёж сохраняет свою сумму до подтверждения статуса провайдером: фоновая проверка ЮКассы сначала получает статус через авторизованный API. Оплаченные, отменённые заявки и активные платежи не переоцениваются.
CR-126/127: решение по правке заменяет только изменённую карточку и сохраняет положение страницы. Под исходным и исправленным полем показано количество символов с пробелами без HTML-тегов; итог обновляется после каждого принятия правки.
CR-132/133: правки HTML-разметки и пробельных символов видимы и доступны для принятия или отклонения; безопасный итоговый текст хранится отдельно от обозначений. Русская и английская тема отображаются даже без исправлений.
CR-128/130: кнопка покупки на странице участников окрашена в цвет бренда с чёрной рамкой и контрастным текстом; тематики представлены текстовым списком с маркерами и разделителями.
CR-129/131: карточка докладчика не выводит пустую или неопубликованную биографию; ставка НДС выделена размером, насыщенностью шрифта и цветным вертикальным разделителем.
Playwright обязателен: 522 браузерных сценария и 6 HTTP fixture на трёх движках и трёх размерах экрана. PostgreSQL gate включает новые проверки пересчёта, оплаты и callback.
0.1.0-R173Исправление
CR-117–124: партнёры, программа, кабинет и виджет ЮКассы
Партнёр получает выбранное в дереве мероприятие до проверки формы; повторное добавление показывает понятную ошибку. «Особый статус» поясняет замену подписи уровня без изменения размеров логотипа.
На главной убрана общая левая полоса избранных докладов. В мобильной шапке строка кабинета выровнена влево. Меню «Участникам», «Докладчикам», «Партнёрам» имеет контрастный общий фон и разделители.
Технический перерыв показывается служебным блоком без тематики, языка, докладчиков, флагов и избранного; не включается в число докладов и голосование. Исходные записи программы сохраняются.
Новые платежи ЮКассы используют встроенный виджет и токен embedded. Токен хранится зашифрованным и выводится только владельцу заявки; ошибка SDK имеет повтор загрузки, истечение токена — проверку статуса. Повторный платёж возможен после подтверждённой отмены; успешность подтверждает сервер через API провайдера.
Повторяющийся email отмечается светло-розовой плашкой во всех соответствующих карточках; переход блокируется до исправления.
CR-124 заменяет кнопки CR-115: рядом с названием мероприятия отображаются иконки скрытия и возврата; нажатие открывает пояснение и подтверждение. Сохраняются CSRF, права владельца и сама заявка.
Обязательная квалификация включает 441 браузерный сценарий и 6 HTTP fixture: Chromium, Firefox, WebKit, мобильный экран, десктоп и 5120px. Сбой или пропуск блокирует выпуск и TEST.
0.1.0-R172Исправление
CR-109, 112–116: регистрация, мобильная вёрстка и Playwright
Повторяющиеся email выявляются при вводе, смене поля и восстановлении черновика; переход к проверке заблокирован до исправления. Серверные проверки сохранены.
Мобильные кнопки покупки и подачи доклада расположены в шапке рядом с меню. Исправлены рамка и отступы фактов, фон пунктов меню, разделение фильтров и выравнивание тематик. Кнопки участникам имеют одинаковый размер; покупка оформлена белым фоном с чёрным текстом.
НДС и ИНН/УНП показаны обычным поясняющим текстом. Пустой статус поиска компании скрыт. В кабинете вместо глаза — «Скрыть заявку» и «Показать заявку».
Нечитаемый ключ оплаты и неполный ответ ЮКассы возвращают ошибку с возможностью повторить платёж, без незавершённой записи. Причина HTTP 500 подтверждена на TEST: PostgreSQL запрещал блокировку nullable-стороны JOIN с настройками. FOR UPDATE ограничен строкой заявки; checkout проверяется на PostgreSQL 16 в CI.
Playwright снова обязателен в PR и выпуске: Chromium, Firefox, WebKit, десктоп, мобильный экран и 5120px; HTML, скриншоты, trace и русская сводка. Установка TEST зависит от успешного браузерного gate.
0.1.0-R171Исправление
Повтор выпуска исправлений CR-082, 088, 092–111 после таймаута GHCR
Сохранены исправления R170, включая CR-111: рублёвые тарифы без НДС и ставка НДС под кнопкой покупки.
Публикация квалифицированного образа выполняет до трёх попыток при сетевом отказе; digest фиксируется только после успешной загрузки. Тег R170 не изменяется.
0.1.0-R170Исправление
CR-082, 088, 092–111: регистрация, оплата, программа и TV
Повторно зарегистрированный регистратор исключён из количества новых мест, расчёта и списка участников; его имя сохраняется в шапке подтверждения. Повторяющиеся email проверяются на шаге участников и в транзакции создания заявки.
Мобильные кнопки подачи доклада и покупки закреплены; кнопки покупки добавлены участникам, разделены пункты меню, уменьшен адрес на главной, уточнены фильтры тем и белая панель секций. Сертификаты размещены последними в кабинете.
Автозаполнение ИНН/УНП выполняется без отдельной кнопки. Платёжная карточка показывает количество офлайн/онлайн мест, отделяет действия; неподходящий ответ ЮКассы возвращает понятную ошибку.
Шесть флагов доклада по умолчанию выключены. Изменение разрешено программному директору, куратору тематики и системному администратору, с блокировкой версии и аудитом; веб-программа и мобильный API показывают две строки значков.
Конструктор программы получает явный светлый фон, видимое сообщение ошибки и повтор загрузки. Рублёвые тарифы отмечены «без НДС», под покупкой показана настроенная ставка.
Android/PWA 4.62 открывает голосование непосредственно из QR и получает флаги платформы. TV Live 1.1.10 применяет выбранный голос и текущий текст при перегенерации, сбрасывает кэш, поддерживает ударение местА, удаляет оперативное сообщение и переименовывает шаблон правила.
0.1.0-R169Исправление
CR-077: женские фамилии от существительных
Фамилии Жемчужина и Смородина склоняются как существительные: Жемчужины, Смородины.
Притяжательные фамилии сохраняют правильные формы: Кузьминой, Беловой. Общий алгоритм используется в карточках и документах.
0.1.0-R168Исправление
CR-074–091: регистрация, кабинет, карточки компаний и мобильные QR
Выбор плательщика с тарифов переходит к соответствующей регистрации; возврат сохраняет выбранную карточку и доступность продолжения.
Очищены номера строк выписки ФНС; единый родительный падеж ФИО, должности и основания используется в карточке и документах.
Добавлены пояснения заблокированных полей, перенос банковских реквизитов и краткого названия компании в бейдж; написание «промокод» унифицировано.
Полный администратор редактирует профиль без смены своей учётной записи; собственные заявки можно скрыть и восстановить, завершённые конференции переходят в архив.
Ссылки подачи доклада ведут в платформу; добавлена кнопка внизу страницы докладчиков, белые заголовки секций и упрощённый фильтр тем.
Android/PWA 4.61 и TV Live 1.1.9: QR запускает сканер, затем голосование или секцию программы; ударение «места́» задано для озвучивания.
Сообщение о неверных данных входа поясняет чувствительность к регистру.
0.1.0-R167Исправление
Компактный анализ докладов и модальное рецензирование
Без правок: заголовок поля и «Исправления не требуются», без полного исходника и исправленного текста.
Модальное окно под выбранным исправлением: стрелка, крестик, Escape и возврат фокуса.
Ширина окна ограничена экраном, включая масштабирование и поворот; длинные причины прокручиваются внутри.
Чёрные подписи на белом фоне, включая соответствие аннотации теме и ясность.
0.1.0-R166Улучшение
Рецензирование текста с принятием правок и читаемой разметкой
Исходный текст и исправления рядом; на телефоне — вертикально в рамках одного поля.
Все правки текста и форматирования встроены в текст; причины и действия доступны в pop-up.
Завершение поля сохраняется на сервере с версией, хешем, блокировкой и аудитом; копируется только итоговый текст.
Кириллица в исходной HTML-разметке читаема; числовые сущности и координаты замороженного исходника не меняются.
Android/PWA 4.58: «Разработчик:» и компания с автором — ровно две строки по центру.
0.1.0-R165Исправление
Английский анализ докладов и четырёхбалльное голосование
Английские темы читаются из EN XML по ID доклада; оценка ясности доступна без заголовка.
Контрастная адаптивная консоль и отметка уточнения CMOS 18 нейросетью в единственном запросе.
Android/PWA 4.57 и сервер используют оценки 1–4; архивные голоса сохранены с прежней шкалой.
Разработчик мобильных приложений: ООО «Лаборатория тестирования» • Владислав Орликов.
0.1.0-R164Улучшение
Локальная проверка CMOS 18 и полное рецензирование изменений
Однозначные правила CMOS 18 проверяются локально; неоднозначные случаи анализируются моделью в том же единственном запросе на доклад.
Нейросеть получает зафиксированный чистый текст; авторская HTML-разметка и неизменённые сущности сохраняются сервером.
Рецензирование показывает все текстовые изменения модели, в том числе без пояснений, и их источник; полный журнал хранит предложения до локальной проверки.
0.1.0-R163Исправление
Устойчивый анализ докладов: привязка цитат и частичные результаты
Одна неподтверждённая цитата больше не отклоняет весь анализ доклада; остальные замечания и метрики сохраняются.
Цитаты привязываются через HTML, сущности, пробелы и Unicode NFC; неоднозначные правки не предлагаются.
Консоль показывает код, поле и номер исключённого замечания; итоговый текст не содержит скрытых исправлений модели.
0.1.0-R162Улучшение
Автоматический выбор прямого подключения и Cloudflare
Публичный каталог и XML доступны напрямую из PWA с CORS и проверкой источников.
Android/PWA 4.56 автоматически переключают маршруты; тестовая плашка показывает подключение.
Android определяет VPN системно; браузерная PWA выбирает маршрут по доступности; отправка голосов не повторяется автоматически.
0.1.0-R161Улучшение
CR-071: общая настройка тестового режима и PWA на Cloudflare
Тестовый режим Android/PWA можно включать и выключать в общих настройках всех брендов; по умолчанию он включён.
Новая версия мобильных клиентов проверяет разрешение после пяти нажатий на номер версии и не показывает счётчик при выключении.
PWA доступно по новому адресу Cloudflare; мобильная программа и голосование используют облачный gateway.
0.1.0-R160Исправление
CR-069, CR-070: резервный XML и автоматический учёт тестов
Мобильный клиент может получить проверенный XML с сервера TEST, если исходный адрес недоступен через VPN; сервер хранит последнюю проверенную копию.
Число тестов в квалификации и проверке пакета вычисляется автоматически при добавлении новых тестов.
0.1.0-R159Исправление
CR-068: повторный выпуск исправлений голосования
Сохранение открытого режима, поиск адреса по ключу из формы и импорт XML без служебных обедов перенесены из R158 без изменения поведения.
Обновлён обязательный счётчик тестов: три новые проверки CR-068 включены в Docker quality gate и проверку пакета.
0.1.0-R158Исправление
CR-068: настройки и доступность голосования
Открытое голосование сохраняется без координат и параметров сети; скрытые поля больше не блокируют форму.
Поиск адреса использует ключ Геокодера из ещё не сохранённой формы без передачи его в URL.
Служебные обеды из XML не импортируются как доклады и не мешают мобильным клиентам получить токен голосования.
0.1.0-R157Исправление и обновление
CR-062, CR-066, CR-067: удаление заявок, материалы докладов, настройки голосования
Заявка с платежом удаляется через админку вместе с её зависимыми записями; другие заявки сохраняются.
Ссылка на материалы доступна в форме и карточке доклада, а также в сообщениях автора и программного комитета.
В списке редактируются независимые параметры голосования, полная форма содержит режим доступа и геолокацию.
0.1.0-R156Исправление
CR-062–065: повторный выпуск и исправление продаж без тарифов
Перед проверкой релиза продажи и регистрация закрываются у опубликованных мероприятий без активных тарифов; заявки и тарифы сохраняются.
R155 не прошёл проверку TEST для Analyst Days / 23; после автоматического отката выпускается новый неизменяемый R156.
0.1.0-R155Обновление
CR-062–065: заявки, голосование, XML-программа и фото
Удаление заявки удаляет её зависимые записи, сохраняя сведения о повторном участии в другой заявке.
Голосование содержит три критерия и необязательный развёрнутый отзыв; ключ Геокодера вводится в настройках.
XML-доклады видны в редакторе, а анализ использует тот же источник и ведёт к настройкам программы.
Фотография заполняет круг; перед сохранением её можно увеличить и переместить.
0.1.0-R154Обновление
CR-060–061: настройки брендов и партнёры
Общие настройки управляют доступностью платёжных систем для всех брендов; сервис, режим и зашифрованные реквизиты заданы отдельно для каждого бренда.
Партнёры сгруппированы по статусу на главной, странице партнёров и в архиве; логотипы выровнены, сохраняют пропорции и масштабируются по проценту от генерального статуса.
0.1.0-R153Исправление
Профиль снова доступен для редактирования всем участникам
Снято ограничение редактирования профиля для участников активных мероприятий всех брендов.
Поля профиля, фотография и описание снова доступны самому владельцу аккаунта.
0.1.0-R152Обновление
CR-053–059: шаблоны билетов, платежи и кабинет
Шаблоны билетов А6 и раздел будущего сертификата добавлены в настройки брендов.
Подключены YooKassa, bePaid и Stripe с тестовым режимом и сверкой статуса платежа.
Поздняя оплата учитывает календарные правила 25-го и 5-го числа.
Групповые заявки помечены в кабинете; после оплаты участник получает ссылку на свой билет.
В личном кабинете появились разделы «Мои билеты» и «Мои сертификаты».
Офлайн-билет формата А6 использует логотип и цвет бренда, данные мероприятия и QR с номером заявки REG.
Билет доступен при оплате, бесплатном участии или постоплате и отзывается при смене статуса и после даты окончания мероприятия.
0.1.0-R150Исправление
CR-044: фотография на полном диаметре круга
Фотография в карточке личного кабинета занимает весь диаметр круглой маски и полностью сохраняется благодаря object-fit: contain.
Чёрный фон заменён белым, а круглая маска применяется к изображению: квадрат и чёрные области устранены.
Отдельный релизный CSS исключает использование закэшированного правила предыдущего релиза.
0.1.0-R149Исправление
CR-041 и CR-044: разметка и фотография профиля
Числовые HTML-сущности в аннотациях принятых докладов преобразуются в обычный читаемый текст.
Поддержано повторное экранирование старого сайта; исправление применяется к ранее сохранённым результатам без повторного импорта.
HTML-теги сохраняются в безопасном текстовом предпросмотре исходной разметки.
В карточке личного кабинета фотография целиком помещается в квадратную круглую область и больше не заходит на имя.
Отдельный релизный CSS исключает возврат к старому обрезающему правилу из кэша мобильного браузера.
0.1.0-R148Исправление
CR-041, CR-044, CR-051 и CR-052: анализ и мобильная консоль
В исходной HTML-разметке анализа докладов декодируются Unicode-последовательности, включая ранее сохранённые данные с повторным экранированием.
Фотография профиля полностью вписывается в круг без отсечения углов изображения.
Мобильные карточки административных справочников получили чёрный фон и белый текст.
Прейскурант адаптирован к мобильной ширине: матрица цен и промокоды показаны карточками, формы складываются в одну колонку.
0.1.0-R147Исправление
CR-044: фотография профиля внутри круглой области
Фотография профиля и её предпросмотр полностью масштабируются внутри круглой области без обрезания по принципу cover.
Добавлен серверный source-контракт, запрещающий возврат к обрезающему режиму отображения на странице профиля.
Исправление выпущено отдельной неизменяемой версией после повторного открытия CR-044.
0.1.0-R146Обновление
CR-044–CR-050: профили и адаптивная административная консоль
Исправлены карточки пользователей без фотографии и мобильное расположение значков избранного и языка в программе.
Добавлены роли и права оргкомитета; публичная команда использует назначенные роли, короткие имена и раздел «Ответственность».
Справочники мероприятий получили единую брендовую плашку, скрытие повторяющегося мероприятия и карточное мобильное представление.
Упрощены справочник статусов и главная страница консоли: удалены лишние порядок и ссылки сброса, выровнены плашки и колонки.
0.1.0-R145Обновление
CR-039: единый справочник статусов докладов
Статусы, подстатусы, сроки действия и переходы объединены в один пункт консоли мероприятия — «Справочник статусов».
Список показывает сводку по связанным данным, а карточка статуса позволяет настроить их в едином интерфейсе.
Отдельные дочерние справочники скрыты из навигации с сохранением совместимости прежних прямых URL.
0.1.0-R144Исправление
Квалифицированный выпуск CR-040–CR-043
Исправлен регрессионный тест списка докладов: проверяется фактическая ссылка кабинета рецензирования с коротким публичным идентификатором.
Изменения CR-040–CR-043 переизданы следующим неизменяемым релизным тегом после остановки R143 на тестовом quality gate.
Полный выпуск квалифицируется серверными тестами без Playwright и браузерных проверок.
0.1.0-R143Обновление
CR-040–CR-043: идентификаторы и анализ докладов
Ссылки на заявки используют короткие уникальные идентификаторы с брендом, номером конференции и порядковым номером; прежние UUID-ссылки сохранены для совместимости.
Литеральные Unicode-коды в темах, аннотациях и исходной HTML-разметке преобразуются в читаемый текст, включая символы вне BMP.
Повторное чтение опубликованной программы устойчиво к дополнительному Unicode-кодированию в одной из языковых версий.
На узких экранах верхняя панель показывает ссылки на все три бренда конференций.
0.1.0-R142Обновление
CR-029–CR-038: страницы конференций и мобильная админка
Исправлена страница «Организаторы»; в программе выровнены значки и унифицирована стрелка тематик, а на странице SQA Days обновлены заголовки и термин AI in testing.
Добавлены каталоги докладчиков и участников с отбором по статусу, оплате и составу комитетов; в кабинете доступны смена пароля и подпись логина.
Исправлен номер TechWriter Days, заголовок «Мероприятия» и адаптивная компоновка административной консоли для узких экранов.
Релиз квалифицируется серверными тестами без Playwright и браузерных проверок.
0.1.0-R141Обновление
Справочник статусов и страницы комитетов
Статусы и подстатусы докладов, сроки действия и матрица переходов перенесены в справочник мероприятия с миграцией существующих данных и журналом изменений.
Профиль содержит фотографию, биографию и настройки публичности; страницы оргкомитета и программного комитета берут участников из своих справочников.
Упорядочены админка и страница участников SQA Days; отчёты серверных тестов публикуются на русском языке без браузерных проверок.
0.1.0-R140Обновление
Анализ докладов и страницы конференций
Повторное чтение принятого доклада и загрузка произвольного доклада используют авторизованную карточку старого сайта; исправлено определение ID мероприятий Analyst Days и TechWriter Days.
Обновлены страница «Участникам» SQA Days, программа мероприятий, профили, партнёры и форма подачи доклада; восстановлено открытие настроек мероприятия и размещение кнопок сброса порядка в админке.
Playwright и браузерные проверки удалены из проекта и процессов выпуска; обязательные серверные тесты и проверка пакета сохранены.
0.1.0-R139Исправление
Чтение принятых докладов в авторизованной сессии
После входа через общее подключение список принятых докладов читается JSON-запросом со старого сайта вместо пустого Angular-шаблона.
Каждая защищённая карточка рецензирования открывается в той же сессии и содержит темы и аннотации на двух языках.
На TEST проверены девять докладов SQA Days 39; повреждённый ответ не заменяет ранее загруженные данные.
0.1.0-R138Исправление
Чтение принятых докладов старого сайта
Список принятых докладов распознаёт ссылки на обоих исторических доменах и маршруты reviewTalk и talk.
Страница входа старого сайта теперь распознаётся отдельно и показывает понятную причину вместо сообщения о пустом списке.
Добавлена регрессия импорта девяти принятых докладов с сохранением прежних результатов анализа.
0.1.0-R137Обновление
Анализ принятых докладов из XML
Добавлена вкладка анализа принятых докладов с перечнем по ID мероприятия и устранением повторяющихся ссылок.
Принятые и произвольные доклады загружаются из русской и английской версий XML, темы и аннотации показываются без дня и секции.
Выбор модели и вход на старый сайт общие для вкладок; вход используется при загрузке принятых и произвольных докладов.
Повторное чтение неизменного текста сохраняет результаты анализа и принятые правки; ошибочная загрузка не заменяет предыдущий набор докладов.
0.1.0-R136Исправление
Устойчивый анализ произвольных докладов
Корректный ответ модели больше не отклоняется целиком из-за неподтверждённого переписывания отдельного поля: скрытое изменение безопасно заменяется исходным текстом.
Цитаты из видимого текста, пересекающие разрешённые HTML-теги, привязываются к точному фрагменту исходной разметки.
Выдуманные или неоднозначные цитаты, опасные исправления, повреждённый JSON и неполный обязательный перевод продолжают блокироваться.
Диагностический код содержит безопасную причину отказа без публикации доклада или ответа модели.
0.1.0-R135Исправление
Устанавливаемый релиз и страницы участников
Устранена регрессия quality gate, из-за которой Docker-сборка R134 останавливалась до развёртывания.
Устаревший тест R124 согласован с контрактом R134: пустая информационная метрика допустима, а числовые значения по-прежнему строго проверяются по типу и диапазону.
Страницы «Участникам» SQA Days #39, Analyst Days #23 и TechWriter Days #4 принудительно обновляются новой миграцией по целевым eventId.
Содержимое сверено с заданными источниками, включая Analyst Days Community, а оформление согласовано с цветами, шрифтами, кнопками и фонами каждого бренда.
0.1.0-R134Исправление
Надёжный разбор произвольных докладов
Доклады с русскими кавычками больше не отклоняются из-за противоречия между JSON-схемой и серверной проверкой служебного правила.
Допустимое пустое значение информационной метрики соответствия или ясности не прерывает весь анализ.
Авторское оформление кавычек сохраняется, а подтверждённые орфографические и стилистические правки продолжают обрабатываться независимо.
Повреждённые ответы и выдуманные цитаты остаются заблокированы; для диагностики добавлен безопасный код этапа.
0.1.0-R133Переиздание
Техническое переиздание R132
Полный релиз R132 выпущен под следующим свободным номером R133.
Функциональность анализа произвольных докладов, страниц участников и докладчиков, а также счётчика избранного сохранена без изменений.
Обновлены версия платформы, история выпусков, сборочные манифесты и контрольные суммы.
0.1.0-R132Обновление
Загрузка произвольных докладов и страницы участников
Парсер старой страницы рецензирования отделяет тему доклада от последующих заголовков типа выступления, аннотации, докладчиков и материалов.
Кнопка «Загрузить» читает произвольный доклад и показывает его в колонке исходного текста без OpenAI; «Проанализировать» запускается отдельно после загрузки.
Страницы «Участникам» трёх текущих выпусков перенесены по указанным источникам с отдельным содержанием, карточками, темами и FAQ каждого бренда.
Страницы «Докладчикам» и «Участникам» используют общую цветовую систему, типографику, кнопки, заголовки и фоны конференционных сайтов при сохранённой структуре.
Количество избранных докладов показывается в скобках рядом с названием вкладки программы.
0.1.0-R131Инфраструктура
Централизованный мониторинг журналов
Django и Celery формируют JSON-события с request_id, сервисом, релизом, пользователем, брендом и конференцией без тел запросов и секретов.
В административной консоли появился защищённый раздел мониторинга Grafana и выгрузка логов в CSV/JSON.
Nginx допускает к Grafana и экспорту только пользователей с доступом к админке; внутренние сервисы слушают loopback-интерфейс.
Docker json-file ограничен ротацией, а web, worker и beat получают стабильные имена сервисов для поиска в VictoriaLogs.
Интеграция совместима с независимо версионируемым релизом ITCONF Log Monitoring 1.0.0-R1.
0.1.0-R130Патч
Анализ докладов и календарь подготовки докладчиков
Парсер отдельных докладов читает темы и аннотации на двух языках со страницы рецензирования старого сайта, сохраняя исходную разметку.
Анализ опубликованных и произвольных докладов разделён на две вкладки; подключение к старому сайту находится рядом с загрузкой по ссылке.
После успешного перечитывания обновляются исходные поля и дата синхронизации; сообщения об успехе и ошибке выделены цветом.
Правки разделены по языку и полю, показывают исходную HTML-разметку, подписи двух вариантов и галочку выбранного решения; принятый текст раскрыт.
На страницах «Докладчикам» трёх брендов восстановлены полные тексты и лента этапов из указанных источников; дублирующиеся даты убраны, кнопка связи называется «Вопросы ПК».
Уточнены переключатель треков, анимация подачи доклада, наведение кнопки программы, ширина карточек контактов и кнопок карт.
0.1.0-R129Патч
Актуальные тексты докладов и единое оформление страниц
Перечитывание программы запрашивает свежий XML; отдельный доклад находится по исходному ID, включая перенесённые и многослотовые выступления.
Исправлен вход на старый сайт; успешное обновление текста очищает прежнее сообщение об ошибке анализа.
Связанные правки одного словосочетания объединены в общую карточку с принятием и отклонением всей фразы.
На всех орбитах главной страницы появились планеты с последовательной сменой цветов; номер конференции выделен цветом бренда, повтор года убран.
Кнопки подачи доклада и покупки билета получили белые рамки; заголовки и отступы публичных страниц унифицированы.
Восстановлена сетка раздела «Докладчикам», исправлен блок «Присоединяйтесь», на странице места проведения добавлен 2GIS и убрано содержание.
У бегущей строки докладчиков оставлена компактная кнопка паузы без текстовой подписи.
0.1.0-R128Патч
Независимая обработка докладов и сохранение форматирования
Правки готового доклада можно принимать и отклонять во время анализа остальных докладов.
Автоматические повторные запросы анализа отключены. После ошибки доступна кнопка «Повторить анализ» для отдельного доклада.
В карточке доступны «Перечитать доклад» и «Повторный анализ»: обновляется только выбранный доклад.
В рецензировании сохраняются абзацы, списки, выделения и ссылки исходного текста; запрещённые теги и атрибуты не отображаются как активная разметка.
0.1.0-R127Патч
Анализ докладов, подключение к старому сайту и контрастные главные
На странице анализа докладов добавлен вход на старый сайт: логин и пароль зашифрованы и сохраняются отдельно для каждого администратора, доступны проверка подключения и удаление.
Отдельный доклад загружается по ссылке reviewTalk и анализируется с темами и аннотациями на двух языках; отсутствующий перевод предлагается с учётом активных правил.
Ошибки форматирования собраны в один блок без влияния на языковую оценку; исходный текст сохранён для принятия и отклонения изменений. Поля без правок скрыты в правой колонке.
Нажатие на правку показывает её причину; контекстное меню позволяет принять или отклонить изменение. Перерывы, обеды и служебные блоки исключены из анализа.
Перетаскивание блоков показывает вертикальную линию места вставки; порядок меняется после отпускания. На сенсорном экране используется удержание.
Главные страницы всех брендов получили контрастный редакционный блок, крупный полный адрес и чёрный круг с датами с разнонаправленным движением точек по орбитам.
В общих настройках можно загрузить веб-шрифты Stolzl для заголовков и Aeonik для основного текста всех сайтов.
0.1.0-R126Обновление
Геолокация Яндекса и рецензирование капитализации
В настройках голосования адрес определяется через Геокодер Яндекса; найденная точка показывается на небольшой Яндекс Карте.
Правки капитализации заголовка собраны в общий блок с принятием или отклонением; пунктуационные правки рассматриваются отдельно.
0.1.0-R125Обновление
Отдельный запуск браузерных проверок
Браузерные проверки перенесены в отдельный ручной запуск.
Сохранены программа «Ленты секций», редакционные главные страницы и возможности анализа докладов.
0.1.0-R124Патч
Рецензирование докладов и редакционные главные страницы
Главные страницы всех брендов получили редакционный формат: выразительный заголовок, компактные факты, один основной логотип в шапке и сохранённый круг с датами; разделы программы, участия и партнёров сохранены.
В анализ докладов добавлены процент соответствия аннотации теме и информационная оценка ясности для ИТ-специалиста среднего уровня с объяснениями на русском.
Добавлена проверка английских заголовков по CMOS 18. Конечная точка отмечается как мелкая ошибка; простые кавычки в русском тексте допустимы.
Все предложения показаны в режиме рецензирования: изменения связаны с замечаниями, решения принять/отклонить сохраняются, принятый текст доступен для копирования.
Правила анализа объединены в общий справочник с переключателями. Каждый запуск сохраняет использованный набор правил.
0.1.0-R123Программа и администрирование
Читаемая программа, справочники и профиль
Программа отображается лентами секций: высота каждой строки определяется самым высоким содержимым, блиц-доклады объединяются в общий слот, общие перерывы занимают всю ширину. Информация о докладчиках остаётся статичной, если помещается в слот, иначе используется бегущая строка. Аннотации раскрываются целиком без повторного заголовка.
Уменьшены заголовки докладов и закреплены названия секций при прокрутке программы.
Анализ докладов оценивает содержание и языковые ошибки без штрафов за разметку; неполные ответы обрабатываются повторно.
В настройки геолокации голосования добавлены адрес, поиск координат и карта.
Обновлён каталог крупнейших городов, добавлены редактирование приоритетов в таблице, сортировка и фильтр по стране.
Уточнены русские подписи справочников и отображение переключателей. Администратору доступно полное удаление профиля и связанных личных данных.
Убраны повторные сообщения об ошибках регистрации и технические коды из пользовательских уведомлений; добавлены инициалы и удобная загрузка фотографии профиля.
0.1.0-R122Программа конференции
Связанные части докладов и личный путевой лист
Длинные доклады разделены на связанные части с полным названием, номером части и временем окончания. Аннотация доступна целиком в первой части.
Добавлены вкладка «Избранное», звёздочки докладов и скачивание компактного путевого листа в PDF.
Переполненные слоты прокручиваются с плавными индикаторами направления; тематики свёрнуты и сохраняют фильтрацию.
При подсчёте учитываются уникальные доклады; перерывы, обеды и служебные пункты исключены.
0.1.0-R121Голосование
Режимы доступа к голосованию
Добавлены открытый режим, геолокация или IP площадки, строгая проверка обоих условий и Android/Wi-Fi.
В режиме «Только на площадке» мобильный интернет проверяется по геолокации. Открытый режим включён по умолчанию.
Сервер повторно проверяет условия перед сохранением голоса. Авторизация не требуется, QR не получает срока действия.
0.1.0-R120Интерфейс и регистрация
Мобильные страницы, программа и регистрация
Уведомления колокольчика помещаются в экран телефона; восстановлен контраст кнопок на тёмных блоках.
Пустое количество дополнительных участников становится нулём; добавлены компактные подсказки пароля.
Избранные доклады на главной странице используют XML; у обедов скрыты тип и язык, со страницы программы убран счётчик докладов.
Источник XML редактируется в формировании программы; улучшены подписи настроек и русские заголовки таблиц участников.
Повторно проверена география и удалены записи с недопустимыми символами в русских названиях.
Шарик логотипа SQA Days движется при простое и останавливается при действиях пользователя.
0.1.0-R119Обновление
Обновление платформы
В этом выпуске нет изменений пользовательских функций.
0.1.0-R118Регистрация и справочники
Профиль, приоритетные города и история изменений
Программа на десктопе при выборе всех секций отображается сеткой; мобильный список сохранён.
История изменений доступна на сайтах мероприятий рядом с версией; опубликованы только изменения пользовательских функций.
Добавлены приоритетные города — не более пяти на страну. Справочники географии сверены с GeoNames.
Устранено дублирование валют. Сообщения об ошибках полей скрываются при редактировании. Добавлен телефонный шаблон по стране при создании профиля.
Регистрация определяется по профилю и email в текущем мероприятии бренда; совпадение телефона не ограничивает участие.
Кнопки регистрации и подачи доклада учитывают доступность мероприятия; кабинет докладчика доступен после добавления доклада.
0.1.0-R117Исправления регистрации и программы
Однократный поиск компании и метаданные докладов
Поиск компании выполняется один раз для номера на странице: ИНН организации — 10 цифр, УНП — 9 цифр. Удалены повторные запросы из обработчиков автозаполнения и кнопки; сервер отклоняет неверный формат до обращения к реестру и лимиту запросов.
Для ИНН и УНП установлена цифровая клавиатура мобильных устройств; УНП допускает только цифры.
В программе язык доклада показан флагом справа от тематики и типа; плашка тематики использует её цвет из справочника и контрастный текст. Перерывы и обеды показываются без плашки типа и языка.
Из личного кабинета убран блок «Анкеты и отзывы».
0.1.0-R116Исправления регистрации
Количество дополнительных участников
Исправлено включение кнопки «К участникам» для уже зарегистрированного физического лица: оба количества заполнены, хотя бы одно больше нуля.
Учтены очистка поля, повторное изменение, восстановление страницы и отключённый организатором формат. Добавлены серверные и DOM-проверки.
0.1.0-R115Проверки качества
Playwright и кроссбраузерная квалификация
В полный пакет включён воспроизводимый набор Playwright для трёх сайтов, Chromium, Firefox и WebKit, мобильного, настольного и широкого экранов.
Статусы реальных браузерных запусков отделены от HTTP-проверок и ограничений окружения в PDF-отчёте.
0.1.0-R114Исправления интерфейса
Мобильное меню, карточки и источник программы
Исправлены область прокрутки мобильного меню и контраст кнопок на реальной разметке страницы «Докладчикам».
Объединены повторяющиеся темы и секции в легенде и фильтрах XML/ручной программы без удаления записей справочников.
В карточки программы добавлены фотографии, страна, город, компания спикеров и язык доклада.
XML-источник и переключатель добавлены непосредственно над таблицей «Программа» в консоли администратора.
0.1.0-R113Интерфейс и программа
XML-программа, визуальный редактор и напоминания
Единый масштаб мобильной вёрстки, определение браузера и исправление контраста страниц докладчиков.
Визуальный редактор страниц с безопасной HTML-разметкой, абзацами и сохранением поддержки Markdown.
Публичная программа из XML по правилам мобильного приложения: источник, переключатель, кэш, темы/треки как фильтры, цвета справочников и секции без левой полосы.
Выгрузка участников по исходному шаблону из 25 столбцов с добавлением регистратора и сокращённого названия компании.
Единый учёт оставшихся мест в группах, уведомления в кабинете и настраиваемая частота напоминаний регистратору; прекращение напоминаний после заполнения.
0.1.0-R112Обновление
Обновление платформы
В этом выпуске нет изменений пользовательских функций.
0.1.0-R111Обновление
Обновление платформы
В этом выпуске нет изменений пользовательских функций.
0.1.0-R110Интерфейс конференций
Компактный кабинет, даты и страницы докладчиков
Компактные кнопки действий в личном кабинете.
Логотип и даты рядом на мобильном первом экране.
Реквизиты без оглавления с названием юридического лица.
Текст сотрудничества только в разделе «Партнёрам».
Календарь, этапы и материалы на страницах докладчиков в стиле бренда.
Расчёт стоимости скрыт на шаге параметров обоих визардов.
0.1.0-R109Страницы конференций и программа
Редактируемые страницы, контакты и адаптивное расписание
Единый размер заголовка «О конференции» и более плотные межсимвольные интервалы.
Площадка и карта используют адрес из настроек мероприятия.
Партнёрам: текст из настроек и кнопки почты, Telegram и MAX.
Программа с выделенным временем, секциями, карточками и адаптивными фильтрами.
Страницы контактов, участников и докладчиков для трёх брендов, включая вложенные материалы.
0.1.0-R108Личный кабинет и регистрация
Мои регистрации, оплата и справочники
Все заявки и статусы оплаты в блоке «Мои регистрации», уведомление о неоплаченных заявках.
Администратор просматривает кабинет участника без смены пользователя.
Единые шаблоны телефона и светло-жёлтая плашка повторной регистрации.
Страна и город в первой строке карточки физлица; основание и email под должностью подписанта.
Редактор стран и городов содержит только русско-английские пары; записи без пары удаляются из справочника.
0.1.0-R107Регистрация и личный кабинет
Повторная регистрация, участники и профиль
Повторная регистрация физлица добавляет только новых участников; формат регистратора заблокирован.
Общие карточки участников, удаление с подтверждением и пересчёт стоимости по форматам.
Корпоративное участие существующего участника оплачивается без дублирования реестра.
Поиск компании по ИНН/УНП сначала в своём справочнике, затем во внешнем.
Восстановление пароля, письмо о профиле, фотография и новая компоновка форм.
Компактные заголовки, единые сообщения и покупка билета в текущем периоде цен.
0.1.0-R106Исправления регистрации
Мобильная регистрация и проверка контактов
Кнопка продолжения активна только после выбора плательщика.
Новая покупка сбрасывает количества и старый черновик; возврат внутри визарда сохраняет данные.
Проверка email на участие в конференции и очистка ошибок при изменении телефона.
Улучшена мобильная компоновка регистрации.
0.1.0-R105Исправление опросов после доклада
Корректная обработка локальной даты конференции
Исправлен отбор докладов по локальной дате конференции при переходе через полночь UTC+3.
Сохранены точное 15-минутное окно приглашений после доклада и защита от повторной отправки.
Добавлены воспроизводимые проверки границ дат, месяца и года, UTC+14 и UTC−12; сохранены все изменения R104.
0.1.0-R104Регистрация и выбранный профиль
Скрытая нормализация телефона и спокойные справочные поля
Телефон выбранного профиля остаётся скрытым в браузере, восстанавливается по подписанному токену и нормализуется только на сервере.
Нестандартный уникальный номер старого профиля не блокирует визард; цифровое сравнение сохраняет проверку повторов.
Списки страны и города не открываются повторно для уже выбранных и вручную не изменённых значений.
После выбора под email остаются ФИО и адрес найденного профиля; добавлены 5 регрессионных тестов без миграций базы данных.
0.1.0-R103Регистрация и адаптивный интерфейс
Надёжный выбор профиля, уникальный телефон и мобильные комбобоксы
Выбор найденного профиля подписывается и сохраняется между шагами; устаревший токен больше не блокирует вручную заполненную форму.
Email расположен первым рядом с кнопкой «Найти профиль»; результаты проверки краткие, русскоязычные и предлагают продолжить при отсутствии профиля.
Телефон форматируется при вводе и проверяется на повтор среди участников текущей конференции в браузере, форме и финальной транзакции.
Город визуально заблокирован до выбора страны; нативные мобильные подсказки заменены непрозрачным списком строго под полем.
Переходы назад и вперёд сохраняют карточки участников даже при изменении количества мест; публичная часть сайта получила общие адаптивные ограничения.
0.1.0-R102Регистрация участников
Надёжная проверка формы, маскировка телефона и зависимые города
Устранена ошибка «Пожалуйста, отправьте 3 формы.»: устаревший браузерный черновик больше не подменяет служебное число участников.
Сервер восстанавливает количество карточек из параметров первого шага, поэтому заполненную регистрацию можно проверить и завершить.
При выборе существующего участника телефон показывает код страны, код города, первые и последние две цифры номера; остальные цифры скрыты.
Поле города недоступно без страны, очищается при смене страны, а поиск возвращает города только выбранной страны.
0.1.0-R101Обновление
Синхронизация сквозного теста регистрации с R100
Проверяется полный сценарий регистрации физлица с заполненными страной, городом, телефоном и компанией.
Сохранены географические справочники, проверка контактов, подстановка профиля и расчёт НДС из R100.
0.1.0-R100Регистрация и географические справочники
Страны, города, проверка контактов и корректный НДС
Добавлены 249 стран ISO/CLDR и 159 762 населённых пункта GeoNames cities1000 с русскими и английскими названиями.
Поля регистрации физлица сгруппированы по строкам; страна, город, телефон, email и данные компании стали обязательными.
Исправлены формат и нормализация телефона, DNS/MX/SMTP-проверка email и подстановка существующего профиля.
НДС начисляется поверх цены прейскуранта без НДС после применения скидки.
0.1.0-R99Регистрация и логика анкет
Карточки участников, расчёт стоимости и Welcome Pack
Форма входа открывается без сохранённых значений; форма создания профиля получила русские подписи, страну и город.
Регистрация физлица: отдельные дополнительные офлайн- и онлайн-места, промокоды по форматам, редактируемая карточка основного участника и сохранение при возврате.
Добавлены отдельная компания и компания в бейдже, страна и город, копирование общих данных, поиск профиля по точному email с частичным скрытием телефона и компании.
Справочники стран и городов используются через ограниченный поиск с быстрым выбором; добавлены проверки формата телефона и почтового домена.
Расчёт стоимости для физлиц и юрлиц показывает базу без НДС, скидку, ставку и сумму НДС, итог; существующие тарифы с включённым НДС не увеличиваются повторно.
Исправлена интерактивная логика анкет, включая Доставку Welcome Pack: ветки обновляются без перезагрузки, скрытые ответы не блокируют отправку и не попадают в результаты.
0.1.0-R98Публикация программы
Управление публичной программой и исправление ошибки 500
В разделе «Доклады и рецензирование → Формирование программы» добавлен флажок «Программа опубликована» с немедленным сохранением.
При выключенной публикации сайт сообщает «Программа не опубликована»; превью, поиск и прямые карточки не раскрывают скрытые доклады. Сетка остаётся доступна редакторам.
Устранено воспроизведённое падение главной страницы и программы при пустом адресе доклада; добавлены безопасные ссылки по идентификатору и обработка отсутствующей секции.
При миграции заполненные программы существующих опубликованных и архивных мероприятий сохраняют видимость; новые мероприятия по умолчанию скрывают программу.
Сохранены функциональность R97, история всех релизов, часовой пояс развёртывания UTC+3 и интеграция голосования Android/PWA.
0.1.0-R97Компактное голосование
Личные оценки Android/PWA 4.45 и компактные результаты
Карточки результатов стали компактнее: тема, автор, день, время и секция; аннотации и биографии не выводятся.
Четыре небольшие цветовые шкалы со средними баллами и количеством голосов расположены рядом с информацией о докладе; пояснения вынесены над списком.
Android/PWA 4.45: компактное окно голосования и просмотра своих четырёх оценок, плавные слайдеры и отправка кнопкой «Готово».
После закрытия окна показывается результат отправки; при успехе доступна «Ваша оценка докладу», при ошибке можно повторить до окончания голосования.
Сохранены фильтры, сортировка, импорт XML, реальные оценки и отдельные тесты голосования R96.
0.1.0-R96Тестирование голосования
Тестовые оценки Android/PWA 4.44 и отдельные результаты
Добавлено управляемое из админки тестовое голосование по виртуальному времени Android/PWA 4.44.
Тестовые оценки хранятся в отдельной таблице, не меняют реальные результаты и не занимают единственный реальный голос участника.
Новый тест позволяет тем же устройствам проголосовать повторно; остановка теста прекращает приём, старые тестовые записи сохраняются.
Отдельная подпись тестовых токенов и проверка текущего теста предотвращают смешение режимов; добавлены проверки полного пути голосования.
0.1.0-R95Исправление голосования
Импорт XML на PostgreSQL и мобильный релиз 4.43
Исправлен импорт XML в результатах голосования на PostgreSQL: блокируются только строки докладов, без необязательного JOIN секций.
Сохранены первичные ключи докладов, существующие голоса и подписанные ссылки; добавлены регрессии первого импорта и доклада без секции.
Тайм-аут worker выводится отдельно; для других ошибок показан диагностический код с подробностями в журнале.
Клиенты Android/PWA 4.43 исправляют контраст оценок и обновление кэша PWA; серверный API R94 сохранён.
0.1.0-R94Голосование по четырём критериям
Результаты XML и оценки Android/PWA
Модуль «Результаты голосования» загружает полную программу из XML по source_event_id, исключая перерывы и служебные блоки.
Карточки в одну колонку: темы, аннотации, докладчики, фото, компании, города, страны, материалы и признаки XML.
Добавлены фильтры по дням и секциям (по умолчанию все), сортировка по общей оценке и количеству голосов.
Четыре оценки 1–5: полезность, качество подачи, соответствие теме и общая оценка; средние баллы и распределение.
Сохранены существующие голоса, первичные ключи и подписанные ссылки; старые Like/Dislike не преобразуются в баллы.
Добавлены атомарная миграция voting.0003, фоновое перечитывание XML, проверки API и карточек. Сохранены R1–R93 и UTC+3.
0.1.0-R93Редакторский анализ программы
AI-проверка тем, аннотаций и переводов
В разделе «Доклады и рецензирование» каждого мероприятия добавлен «Анализ докладов».
Импортируются русская и английская версии XML по source_event_id; темы сопоставляются по ID и слоту, аннотации сохраняются на двух языках.
По умолчанию выбраны День 1 и первая секция. Анализ охватывает все доклады выбранных фильтров.
Добавлены OpenAI Responses API, выбор модели, серверный ключ, прогресс Celery и отдельные ошибки по докладам.
Три адаптивные колонки показывают исходные тексты, шкалу 0–5 с разбором и предложения «было → стало», включая полные переводы.
Перечитывание XML атомарно обновляет снимок и сбрасывает только результаты изменённых текстов; программа и заявки не изменяются.
Добавлена миграция conferences.0016_r93_talk_analysis и 23 сценария регрессии; сохранены изменения R1–R92 и UTC+3.
0.1.0-R92Адаптивность конструктора анкет
Полноширинная блок-схема для desktop и 5K
Административные формы анкет больше не ограничены шириной 1550px и используют доступную рабочую область.
На ширине от 1980px вопросы и визуальная логика располагаются рядом, при этом стандартному холсту гарантируется не менее 940px.
Инспектор настроек остаётся справа только при достаточной ширине панели, иначе компактно переносится под холст и не перекрывает узлы.
При высоком системном масштабировании редактор переходит в безопасный одноколоночный режим.
На сверхшироких экранах колонка вопросов ограничена 900px, а всё оставшееся пространство получает блок-схема.
0.1.0-R91Производительность и анкеты
Стабильная память, копирование шаблонов и рабочая аналитика
Устранён рост памяти на страницах анкет: наблюдатели DOM ограничены своими formset-контейнерами, перерисовка блок-схемы объединяется в один кадр, а таймеры и ResizeObserver освобождаются при закрытии страницы.
Большие результаты больше не загружаются целиком: сервер обрабатывает ответы потоково, ограничивает словари свободных значений и отдаёт таблицу респондентов страницами по 100 строк.
В шаблонах и рабочих анкетах визуальная блок-схема размещена в правой колонке рядом с вопросами и адаптивно переносится вниз на узких экранах.
Выбор назначения при создании анкеты сразу загружает вопросы, настройки и визуальную логику шаблона; изменения до первого сохранения не теряются.
Исправлены все пять видов результатов и пять профилей аналитики рабочих анкет, включая отдельные карточки докладов, сводку мероприятия, карту ожиданий и постраничные реестры.
0.1.0-R90Анкеты, роли и реестр участников
Блок-схемы логики, сроки докладов и группы регистрации
Обычные правила логики снова редактируются и двусторонне синхронизируются с сохраняемой визуальной блок-схемой из условий, действий и стрелок Да/Нет.
Шаблон «Доставка Welcome Pack» получил полностью раздельные ветки пункта выдачи и домашнего адреса; высота чёрной шапки теперь адаптируется к логотипу.
Добавлена роль Speaker: автор редактирует и удаляет новый доклад в срок, редактирует доклад на рецензировании с автоматическим статусом «Обновлено» и пишет в обсуждение при любом статусе.
В мероприятии настраиваются сроки всех статусов докладов; после окончания срока изменение доступно только администратору, главе ПК и назначенным кураторам.
Докладчики, члены программного и организационного комитетов автоматически регистрируются как участники со статусами «Докладчик», «ПК» и «ОК».
Добавлен состав оргкомитета, вкладка «Группы» для мест без контактов и Excel-выгрузка групп по структуре предоставленного файла SQA Days 39.
0.1.0-R89Редактор и аналитика анкет
Чистые выгрузки, визуальная логика и безопасные правки
Таблица респондентов и реестр доставки выгружаются без системных полей и внутренних кодов, с порядковым номером и светло-серым заголовком.
Опубликованную анкету можно изменить после подтверждения снятия с публикации; сохранённую редакцию требуется опубликовать повторно.
Добавлен визуальный drag-and-drop конструктор логики, синхронизированный с обычными правилами, актуальными вопросами и контекстными значениями.
Удалены неиспользуемые модели, административный раздел, фоновые доставки и право интеграций анкет; REST API и каналы распространения сохранены.
Телефон стал полностью редактируемым, Welcome Pack получил отдельные ветки доставки, а hero-блок главной страницы больше не обрезает логотип и не дублирует навигацию.
0.1.0-R88Единое серверное время
Обязательный UTC+3 на Ubuntu и во всех контейнерах
Web, worker, beat, PostgreSQL и Redis получают TZ=Europe/Moscow, /etc/localtime и базу часовых поясов хоста.
Правило UTC+3 закреплено в постоянном server.env, Django, Compose, контексте разработки и R88 release contracts для всех будущих релизов.
0.1.0-R87Анкеты и аналитика
Рабочая модерация, справочные поля и наследуемые отчёты
Исправлен HTTP 400 ссылки «Ответы и модерация» в настройках мероприятия.
Страна и город стали комбобоксами глобальных справочников со свободным вводом; телефон и email получили строгую проверку.
Шаблоны получили фиксированные виды результатов и аналитики, которые наследуются рабочими анкетами и меняют представление отчёта.
Код ссылки формируется сразу, защищён от редактирования и коллизий.
Выключенная защита паролем сохраняется и очищает прежний хэш; пять R87 contracts включены в полный release gate.
0.1.0-R86Адрес PWA голосования
Канонический мобильный адрес во всех конфигурациях
Кнопка PWA на странице QR направлена на https://mobile.it-conf.com/pwa/ вместо устаревшего адреса основного сайта.
Каноническое значение добавлено в Django, серверную схему окружения и генератор постоянного Windows-профиля server.env.
Документирована безопасная команда применения на текущем Ubuntu-сервере с резервной копией и пересозданием только web-контейнера.
0.1.0-R85Обновление
Согласованные миграции и полное удаление анкет
Созданные анкеты и опросы удаляются из административной консоли вместе с вопросами, ответами, правилами и связанными данными.
Сохранён запрет на отдельное изменение или удаление структуры вопросов после получения ответов; разрешено только атомарное удаление всей анкеты пользователем с соответствующим правом.
0.1.0-R84Голосование за доклады
Анонимное голосование, QR и результаты по мероприятиям
Добавлен модуль «Голосование» с настройками для каждого мероприятия, итогами Like/Dislike по докладам и журналом голосов.
Голосование открывается после окончания доклада; первый день остаётся доступен во второй, а все голоса закрываются с окончанием конференции.
QR-ссылки и мобильные клиенты используют единый talk token и открывают точную карточку доклада.
Добавлены API регистрации устройства, статуса доклада, сохранения голоса, QR PNG и мобильная посадочная страница Android/PWA.
0.1.0-R83Шаблоны анкет и прейскурант
Раздельные шаблоны, создание рабочих анкет и наглядные цены
Модуль анкет разделён на каталог «Шаблоны» и рабочий раздел «Анкеты и опросы: Создание»; шаблон не содержит конференцию, статус и настройки распространения.
Рабочая анкета создаётся с нуля или полной копией шаблона, выбирает только неархивную конференцию и после публикации открывается по всем каналам без ошибки 404.
Коды шаблона и ссылки формируются автоматически английскими идентификаторами; назначение шаблона является текстом, а в рабочей анкете выбирается из каталога шаблонов.
Публичный прейскурант по умолчанию показывает физических лиц, визуально отмечает выбранную аудиторию, скрывает вторую аудиторию и оформляет состав тарифа инфографикой.
Текущий период отмечается плашкой основного цвета; прошедшие периоды скрыты по умолчанию и включаются отдельным чекбоксом мероприятия в справочнике «Прейскурант».
Добавлены две миграции, четыре сквозных регрессионных теста и блокирующие R83 contracts; R83 является полным релизом поверх R82.
0.1.0-R82Анкеты и права администраторов
Рабочие публичные ссылки, простая логика и режим только чтения
Публичные ссылки анкеты формируются на домене бренда выбранной конференции; постоянный токен сначала находит анкету, а её жизненный цикл больше не маскируется ошибкой 404.
Правила логики показаны компактными карточками и сортируются перетаскиванием мышью, сенсорным жестом или клавиатурой; оба списка вопросов ограничены текущей анкетой.
Поле «Доклад» подключается отдельным чекбоксом, выключено по умолчанию и на уровне интерфейса, API и модели исключено из анкет другого назначения.
Добавлены системные группы Administrator и Administrator View Only: первая получает весь функционал, вторая — всю административную консоль в режиме чтения без эффективных прав изменения.
Добавлены миграция, четыре регрессионных теста и блокирующие R82 contracts; R82 является полным релизом поверх R81.
0.1.0-R81Анкеты и административный UX
Стабильные ссылки, визуальный конструктор и быстрые статусы
Опубликованные анкеты открываются по неизменяемому публичному токену; изменение slug больше не вызывает 404, а прежние ссылки R79/R80 безопасно перенаправляются.
Конструктор получил палитру 22 типов блоков, цветные сводные карточки, понятные поля вариантов, шкал и матриц, а расширенный JSON скрыт до запроса пользователя.
Сохранённые вопросы открываются свёрнутыми; порядок меняется перетаскиванием, стрелками, клавиатурой и на сенсорных экранах.
Центр нотификаций показывает состояние почтового сервиса, ключевые показатели и цветные адаптивные разделы для автоматизаций, рассылок и мониторинга.
0.1.0-R80Администрирование нотификаций и рассылок
Поисковые правила, безопасные тесты и полный предпросмотр
Переименованы справочники регистрации, подачи и рецензирования; статусы нотификаций и списков подписчиков переключаются прямо в таблицах.
Системные коды нотификаций и правил формируются из русских названий в уникальные английские идентификаторы, а редактор показывает справочник тегов автоподстановки.
Триггеры и поля условий выбираются через русские поисковые описания, фильтруются по разделу; допустимые значения предлагаются списком, условия и действия сортируются перетаскиванием.
Добавлен безопасный тестовый режим шаблонов, правил и почтовой конфигурации: все тестовые письма перенаправляются текущему администратору и сохраняются в аудите.
Интерфейс рассылок переведён на HTML-редактор, предпросмотр развёрнут до полного письма; улучшены хлебные крошки, подписчики и подсказки webhook UniSender Go.
Исправлена ошибка 500 карточки мероприятия, усилена проверка auth-хэша webhook; R80 является полным релизом поверх R79 и сохраняет модуль анкетирования.
0.1.0-R79Анкетирование и обратная связь
Конструктор форм, каналы сбора, интеграции и аналитика
Добавлен административный модуль «Анкетирование и опросы» с конструктором из 22 типов вопросов, условной логикой, скорингом, таймером и настройками публикации.
Реализованы обычные и именные ссылки, iframe и popup embed, Android/PWA API, QR-коды, печатная версия, push-сценарии и итоговое письмо после конференции.
REST API v3, подписанные webhooks, Google Sheets, Telegram, Max и push-шлюз работают через идемпотентную очередь с повторами и журналом доставок.
Аналитика показывает конверсию, длительность, оценки, NPS, устройства, географию, секции, треки, форматы, бренды, выпуски, проблемы и офлайн/онлайн; доступны CSV, XLSX, Word и PDF.
Добавлены четыре базовых шаблона, уникальность ответов пользователя/именной ссылки, дополнительный IP-антифрод и разрешённый правами тестовый обход для администраторов.
R79 поставляется новым полным релизом и сохраняет весь функционал R78.
0.1.0-R78Нотификации и рассылки
Автоматизации, UniSender Go и массовые кампании
В администрирование добавлен модуль «Нотификации и рассылки» с разделами нотификаций регистрации, подачи доклада и системы рецензирования.
Добавлен движок КОГДА/ЕСЛИ/ТОГДА с несколькими условиями и действиями, приоритетами, задержками, идемпотентностью и полным аудитом каждого срабатывания.
Каталог наполнен 28 редактируемыми rich-text нотификациями и соответствующими правилами; пользовательские изменения не перезаписываются при повторной инициализации.
Интеграция UniSender Go использует Web API, безопасное хранение ключа, отправителя no-reply@it-conf.com, повторы временных ошибок, webhooks, suppression и мониторинг доступности.
Подсистема рассылок включает кампании, списки и CSV-импорт, подписчиков, сегменты, блочный и HTML-редакторы, планирование, тестовую отправку, паузу, отмену и статистику доставки.
R78 поставляется новым полным релизом и сохраняет весь функционал и оптимизированную процедуру развёртывания R77.
0.1.0-R77Формирование программы и права главы ПК
Рабочее меню главы ПК, PostgreSQL и мобильное перетаскивание
В системе рецензирования для главы программного комитета добавлены разделы формирования программы, тем/треков и форматов докладов.
Глава ПК управляет двумя программными справочниками в интерфейсе рецензирования, но не получает прямого доступа к Django admin и остальным справочникам.
Тестовый режим доступен реальному главе ПК только для назначенных конференций и всех активных ролей, кроме Администратора.
Исправлена PostgreSQL-ошибка FOR UPDATE с nullable LEFT JOIN при размещении доклада; необязательный аудит больше не может повредить основную транзакцию.
В сетку программы добавлено мобильное перетаскивание карточек через тап, удержание и движение с подсветкой цели и автопрокруткой.
R77 поставляется новым полным релизом и сохраняет оптимизированную процедуру развёртывания R72 и исправления R73–R76.
0.1.0-R76Обновление
Изоляция проверок внутри app build context
Сохранены исправления R74–R75, роли и права R73 и оптимизированное развёртывание R72; R76 поставляется только полным релизом.
0.1.0-R75Обновление
Совместимость legacy-проверки с тестированием ролей
Исправлено второе ложное срабатывание Validate.ps1: администраторская панель тестирования роли больше не считается устаревшим публичным тестовым режимом.
Legacy-проверка R26 по-прежнему запрещает тестовые флаги и баннеры в публичных runtime-файлах, но base.html проверяется отдельно с обязательным административным guard.
Добавлен блокирующий контракт полного сборщика, запрещающий снова включать base.html в несовместимую глобальную проверку.
Сохранены 30 прав, девять ролей, сессионное тестирование доступа R73, исправление навигации R74 и оптимизированное развёртывание R72.
R75 поставляется новым полным релизом и не перезаписывает R74.
0.1.0-R74Обновление
Семантическая проверка публичной навигации
Исправлено ложное срабатывание Validate.ps1: служебное поле возврата формы выключения тестового режима больше не считается публичной ссылкой на рецензирование.
Форма восстановления административных прав возвращает пользователя на текущую страницу и больше не содержит скрытого адреса панели рецензирования.
Добавлены блокирующие контракты, запрещающие возврат ошибочной проверки R73 в серверном и полном сборщиках.
Весь функционал ролей и прав R73 и оптимизированная процедура развёртывания R72 сохранены; R74 поставляется только полным релизом.
0.1.0-R73Роли и права рецензирования
Настраиваемая матрица доступа и безопасный тестовый режим
Добавлен справочник «Роли и права» с 30 исполняемыми правами, созданием пользовательских ролей и назначением прав без изменения кода.
Преднастроены Администратор, Глава программного комитета, Куратор, Наблюдатель и Наблюдатель+, а также роли основного состава и вспомогательного персонала.
Администратор может включить для выбранной конференции тестовый режим роли; исходные группы, назначения и флаги учётной записи не изменяются, а включение и выключение фиксируются в аудите.
Состав программного комитета разделён на «Основной состав» и «Вспомогательный персонал» с фильтрацией и корректным набором назначаемых ролей.
0.1.0-R72Обновление
Обновление платформы
Неизменившаяся историческая миграционная регрессия PostgreSQL переиспользует доказательство установленной версии; при изменении миграций, моделей, настроек или зависимостей полный тест запускается автоматически.
0.1.0-R71Замена системы рецензирования
Новый процесс с кураторами и вкладками статусов
Полностью заменена система рецензирования: шесть вкладок, основной и дополнительный кураторы, подстатусы обсуждения, резерв и решения главы ПК.
Переработан интерфейс по референсам: фильтры, карточка доклада, отдельные каналы автора и ПК, журнал старых и новых значений.
Публикация добавляет доклад только в пул программы; отказ, самоотвод и сброс удаляют его из пула и сетки.
По явному требованию удаляются прежние доклады, связанные элементы программы и данные старого рецензирования; миграции очистки и схемы разделены.
0.1.0-R70Исправление обновления PostgreSQL
Разделение схемы и переноса данных рецензирования
Миграция proposals.0005 создаёт только схему; перенос данных выполняется отдельной атомарной миграцией 0006 после завершения индексов.
Устранён pending trigger events при обновлении заполненной PostgreSQL-базы с R64; существующие состояния рецензирования не переинициализируются.
Добавлена исполняемая регрессия 11 старых статусов, связей отзывов, оценок, решений и конфликтов; проверяется сохранение последующих изменений при повторном запуске.
Сохранён полный функционал R65–R69 и полные административные права; R70 поставляется полным пакетом.
Исправлен блокирующий R64 price-list контракт Validate.ps1, который требовал устаревшую соседнюю цепочку discount_percent|unlocalize и отклонял корректный фильтр R65.
Добавлен исполняемый контракт R69 для двух групповых скидок и строки промокода; целочисленное отображение, знак процента и locale-safe HTML number сохранены.
Полные права администраторов staff/superuser, ограничения остальных ролей и весь функционал R65–R68 сохранены без изменений.
R69 поставляется полным пакетом; R68 не перезаписывается и заменён исправленным релизом.
0.1.0-R68Обновление
Семантическая проверка доступа к порталу рецензирования
Исправлен блокирующий public-content контракт Validate.ps1, который требовал устаревшую однострочную запись Python и отклонял корректный двухстрочный guard.
Добавлен AST-контракт R68, подтверждающий фактическую семантику запрета доступа, а не форматирование исходного текста.
Полные права администраторов staff/superuser, конфликтные ограничения для остальных ролей и весь функционал R65–R67 сохранены без изменений.
R68 поставляется полным пакетом; R67 не перезаписывается и заменён исправленным релизом.
0.1.0-R67Полный объединённый релиз
Исправленный R65 и система рецензирования R66
Сохранены изменения R65: инфографические плитки пяти справочников, удаление ошибочного объединённого пункта, drag-and-drop сортировка и целочисленные скидки со знаком процента.
Исправлен блокирующий дефект миграции R65: 0008 теперь фиксирует и поле sort_order, и Meta.ordering, поэтому makemigrations --check не требует незапакованную 0009.
Включён полный процесс рецензирования R66: кампании, фазы, роли, версии докладов, конфликты, рецензии, доработка, решения, резерв и публикация.
Администраторы staff/superuser имеют полные права на все операции без ролевых, фазовых, конфликтных и кворумных ограничений; административные действия отмечаются в аудите.
0.1.0-R66Отозванный неполный релиз
Рецензирование без изменений фактического R65
Введены независимые состояния процесса, доработки, решения ПК и публикации, кампании и фазы, контекстные роли и неизменяемые версии доклада.
Реализованы кураторы, назначения, конфликт интересов, динамическая форма рецензии, кворум, расхождение оценок и два изолированных канала обсуждения.
Релиз ошибочно построен от R64 и не содержит изменения фактического R65, поэтому отозван и не должен устанавливаться.
Полный объединённый и исправленный пакет выпущен под неизменяемым номером R67.
0.1.0-R65Обновление
Плитки и сортировка справочников, целые проценты скидок
Пять глобальных справочников отображаются инфографическими плитками, а ошибочный объединённый пункт и его DOM-инъектор удалены.
Все пять справочников поддерживают drag-and-drop сортировку; организациям добавлено поле sort_order.
Групповые и промо-скидки вводятся целыми процентами и отображаются со знаком процента.
0.1.0-R64Функциональная доработка регистрации и прейскуранта
Глобальные справочники, реквизиты ИП, участники и прозрачная калькуляция
Справочники компаний, стран, городов, статусов участников и способов оплаты выведены в корневую админ-плашку и зарегистрированы в кастомном AdminSite; старые значения безопасно переносятся без удаления.
Исправлены UX поиска компаний: стабильный размер кнопки, очищаемый телефон, подсказки по юрисдикции, дополнительные источники юридического адреса и корректное предзаполнение ИП России/Беларуси.
На шаге участников добавлены 15-символьное название компании в бейдже, счётчик, режим одной компании и отображение регистратора-участника; обновлён Excel-сценарий.
Подтверждение показывает раздельную калькуляцию offline/online, выбирает большую из групповой и промо-скидки и показывает включённый НДС; исправлено сохранение числовых настроек прейскуранта при русской локали.
Публичная стоимость выделяет текущий период и визуально различает прошедшие и будущие периоды во всех валютах и для обоих типов плательщика.
0.1.0-R63Обновление
Шаблоны регистрации и актуальные API-регрессии
Исправлен TemplateSyntaxError формы регистрации: wizard_form явно загружает библиотеку static перед использованием тега static.
Исторические R55-тесты переведены на активный публичный endpoint views_r59 и больше не требуют авторизации, отменённой в R59.
Публичный lookup гарантирует JSON с Cache-Control: no-store и корректно обрабатывает ValidationError как ошибку ввода.
Autocomplete-тест сравнивает разобранный JSON, а не способ Unicode-экранирования; добавлены блокирующие source-контракты R63.
0.1.0-R62Обновление
Обновление платформы
Исправлена гарантированная ошибка Django-теста R59: модель CompanyDirectoryEntry использует поле banking_details, а тест ошибочно передавал bank_details.
0.1.0-R61Обновление
Независимый от релиза cache-контракт поиска компаний
Устранена блокирующая проверка R57, требовавшая устаревший cache namespace itconf:company-lookup:r57 в более новых релизах.
Кэш поиска по ИНН/УНП переведён на семантическую версию схемы itconf:company-lookup:v3, которая изменяется только при несовместимом формате данных.
0.1.0-R60Исправление упаковки и валидации
Корректный release-index и синхронный полный пакет
Исправлен release-index.json: server_sha256 содержит путь к файлу .zip.sha256, а поле sha256 — только фактический digest серверного ZIP.
Полный пакет собирается официальным build_full_package.py, который проверяет индекс до упаковки и повторно читает его из готового ZIP.
Исходники app и deploy/server во внешнем пакете синхронизированы с вложенным серверным архивом, поэтому R59-функциональность больше не существует только во вложенном ZIP.
История приведена к единому статическому диапазону R60–R1: восстановлена запись R58 и добавлена фактическая запись функционального релиза R59.
0.1.0-R59Функциональный релиз регистрации
Публичный поиск компаний, Excel-импорт и глобальные справочники
Поиск реквизитов по ИНН и УНП доступен до авторизации; для Беларуси поддерживаются юридические лица и индивидуальные предприниматели.
Юридический адрес извлекается из compact JSON ФНС и альтернативных вложенных структур; неполный результат не закрепляется в кэше.
Данные визарда сохраняются при переходах назад, а смена юрисдикции очищает реквизиты предыдущей страны.
Возвращены шаблон XLSX и импорт участников из Excel с проверкой структуры, e-mail и ограничения количества строк.
Добавлены поиск по справочнику компаний и глобальные двуязычные справочники стран, городов, статусов участников и способов оплаты.
0.1.0-R58Обновление
Обновление платформы
App-only verifier динамически сверяет VERSION, RELEASE_HISTORY и литералы тестов, поэтому следующий релиз не сможет пройти упаковку со старым числом записей.
Функциональность compact JSON ФНС из R57 сохранена без изменений.
0.1.0-R57Исправление интеграции ФНС
Разбор фактического compact JSON ЕГРЮЛ
Российский поиск по ИНН приоритетно использует ключи compact JSON ФНС: i, p, o, n, c, a, g, r и t.
Юридический адрес берётся напрямую из поля a; структурированный разбор сохранён как резервный вариант.
Должность и ФИО руководителя в первую очередь разделяются из поля g формата «ДОЛЖНОСТЬ: ФИО».
Неполный российский результат без юридического адреса больше не кэшируется на один час.
0.1.0-R56Исправление регистрации
Корректные реквизиты подписанта и навигация визарда
Поиск по ИНН/УНП извлекает фактическую должность руководителя и юридический адрес; общий статус «Руководитель компании» больше не подменяет должность.
Должность и полное ФИО вводятся в именительном падеже, инициалы с фамилией вычисляются автоматически; обязательные реквизиты и e-mail проверяются с наглядными ошибками.
На шагах добавлены постоянно видимые кнопки возврата, а подтверждение корпоративной заявки показывает краткое название и корректную подпись налогового номера.
Для мест без указанных участников исправлено описание дальнейшего процесса: профили, письма и персональные подтверждения доступны только после заполнения участников.
0.1.0-R55Исправление и улучшение UX
Надёжный поиск по ИНН и обновлённая регистрация
Поиск по ИНН/УНП использует URL, сформированные Django, и всегда получает JSON вместо HTML-страницы ошибки или входа.
Корпоративная форма показывает только краткое название; официальное полное название попадает в карточку после успешного поиска по реестру.
Сведения о подписанте нормализуются для документов в родительном падеже, банковские реквизиты обязательны, а поля перестроены по новому макету.
Добавлены маска телефона, явная подсказка выбора плательщика, корректный возврат на шаге подтверждения физлица и однострочный заголовок раздела о конференции.
0.1.0-R54Исправление
Полная интеграция функциональности R46
Корпоративная форма R46 подключена напрямую, без runtime-патча классов Django-форм.
Юрисдикция, справочник, реквизиты, данные подписанта и карточка юрлица проходят полный путь форма–сессия–сервис–заявка.
Тариф выбирается сервером по формату, типу плательщика, валюте и дате; переданный браузером тариф не является источником решения.
Добавлен реальный Django workflow-тест сохранения заявки и повторно используемой организации.
0.1.0-R53Исправление
Согласованная упаковка полного релиза
Исправлен внешний пакет: release-index.json всегда ссылается на серверный ZIP текущей версии.
Сборщик до упаковки сверяет VERSION, release-index.json, имя серверного архива, SHA-файл и фактический SHA-256.
Готовый внешний ZIP повторно открывается и проверяется; пакет со старым серверным архивом или индексом не может быть опубликован.
0.1.0-R52Исправление
Обновление платформы
Команда check_release определяет ожидаемый диапазон истории из версии устанавливаемого кандидата и больше не содержит жёстких ограничений R45/R47.
Ошибка проверки сообщает фактический ожидаемый диапазон, например R1–R52.
0.1.0-R51Исправление
Полная и каноническая история версий
VERSION_HISTORY_RU.md приведён к единому формату заголовков и содержит непрерывный диапазон R1–R51.
Проверка server ZIP и Python release validator синхронизированы с динамическим номером текущего релиза.
0.1.0-R50Исправление
Обновление платформы
Устранена ошибка StrictMode: Validate.ps1 обращался к несуществующей переменной $serverExtractRoot.
Проверка файлов корпоративной регистрации теперь выполняется непосредственно внутри серверного ZIP без временного каталога распаковки.
Исправлен обязательный путь модуля r46_company.py; добавлена регрессия против несуществующих r47_company.py и serverExtractRoot.
0.1.0-R49Исправление
Обновление платформы
Проверка истории и маркеры текущего релиза синхронизированы с R49; добавлен регрессионный запрет на необъявленные переменные R46/R47 в Validate.ps1.
0.1.0-R48Исправление
Динамическая проверка полноты истории релизов
Ожидаемое количество записей теперь вычисляется из текущей версии release-index.json и не требует ручного изменения числового лимита в каждом релизе.
Файлы контекста разработки и изменений в полном релизе
0.1.0-R45Функциональный релиз
Безопасный выход из учётной записи
Добавлена кнопка «Выйти» на главной странице сайта для авторизованного пользователя, в профиле участника и в личном кабинете.
Выход выполняется только защищённым POST-запросом с CSRF-токеном; открытие logout URL методом GET запрещено.
При выходе Django полностью сбрасывает текущую серверную сессию и удаляет авторизацию на всех сайтах общей зоны IT-CONF.
После завершения сеанса пользователь перенаправляется на главную страницу текущего бренда, а защищённые страницы снова требуют входа.
В блокирующий workflow-тест добавлена проверка трёх кнопок, POST-only контракта, удаления _auth_user_id и закрытия личного кабинета после выхода.
0.1.0-R44Исправление
Неразрушающее повторное заполнение прейскуранта
Исправлена ошибка uniq_price_code при повторном запуске seed_initial_data после изменения администратором периода или кода тарифа.
Начальные тарифы теперь идентифицируются и по стабильному коду, и по ячейке матрицы прейскуранта; существующая строка не дублируется.
Повторное развёртывание больше не перезаписывает вручную изменённые суммы, периоды и коды тарифов исторических конференций.
Добавлена защита от конкурентного создания тарифа через блокировку строк, savepoint и повторную проверку ограничений.
0.1.0-R43Функциональный релиз
Настройки мероприятия, форматы участия, карта и публичный прейскурант
Исправлено сохранение настроек мероприятия: скрытые поля создания больше не блокируют изменение существующей конференции, а ошибки привязаны к конкретным полям и сопровождаются инструкциями.
Бренд существующего мероприятия показывается без выпадающего списка; slug нового выпуска формируется как <бренд>-<номер>.
Добавлено полное копирование настроек, статей, программы, прейскуранта, партнёров и справочников из любого мероприятия с сохранением идентификации целевого выпуска.
Прейскурант получил независимое включение офлайн/онлайн и автоматическое заполнение онлайн-цен по настраиваемому проценту от офлайн.
Публичная часть получила пункт «О конференции», двухстрочный блок даты и адреса, Яндекс.Карту места проведения и отдельные тарифы физических/юридических лиц с выбором валюты.
Исправлен контраст карточек «Три способа стать частью конференции» и добавлены блокирующие регрессионные проверки R43.
0.1.0-R42Исправление
Безопасное разделение миграции прейскуранта для PostgreSQL
Исправлена ошибка PostgreSQL cannot ALTER TABLE conferences_priceoption because it has pending trigger events.
Создание схемы прейскуранта, перенос существующих тарифов и добавление ограничения матрицы цен разделены на три миграции с отдельными транзакциями.
Зависимость миграции промокодов и расчёта регистраций перенесена на финальную миграцию прейскуранта.
Добавлен контракт R42_PRICEOPTION_MIGRATION_BOUNDARY_OK=1, запрещающий совмещать обновление PriceOption и ALTER TABLE в одной миграции.
0.1.0-R41Инфраструктурное исправление
Обновление платформы
Runtime Python-зависимости устанавливаются один раз в отдельное virtualenv и повторно используются quality- и runtime-стадиями.
gettext заменён детерминированным stdlib-компилятором PO→MO и проверкой точного соответствия django.po и django.mo.
Добавлена проверка встроенного libpq из psycopg[binary], поэтому отдельный системный пакет libpq5 не требуется.
0.1.0-R40Исправление
Безопасное разделение PostgreSQL-миграции тем и форматов докладов
Исправлена ошибка PostgreSQL cannot ALTER TABLE proposals_proposal because it has pending trigger events.
Создание схемы, перенос данных и замена внешнего ключа разделены на три самостоятельные миграции с границами транзакций.
Зависимость прейскуранта перенесена на финальную миграцию форматов, поэтому последующие изменения выполняются только после завершения преобразования Proposal.
Добавлен статический контракт R40_POSTGRES_MIGRATION_BOUNDARY_OK=1, запрещающий совмещать RunPython и ALTER TABLE в одной миграции.
Функциональность R39, включая прейскурант, промокоды, темы, форматы и редактор программы, сохранена.
0.1.0-R39Исправление
Исправление end-to-end подачи доклада с темой и контекстом конференции
POST визарда теперь передаёт обязательную тему/трек вместе с форматом доклада.
Новая ProposalForm получает конференцию до model validation, поэтому тема и формат корректно проверяются на принадлежность мероприятию.
Добавлен AST-контракт, проверяющий topic, proposal_format, submit, redirect и create-context формы.
Функциональность прейскуранта, промокодов, групповых скидок, тем, форматов и редактора программы сохранена.