diff --git a/releases/v1.5.4/RELEASE_NOTES.md b/releases/v1.5.4/RELEASE_NOTES.md index fa722c9..e2331c3 100644 --- a/releases/v1.5.4/RELEASE_NOTES.md +++ b/releases/v1.5.4/RELEASE_NOTES.md @@ -3,16 +3,48 @@ Дата релиза: 2026-03-16 Тег: `v1.5.4` +Предыдущий релиз: `v1.5.0` + ## Ключевые изменения -- runtime автоматически нормализует `server.host` к `127.0.0.1` и переписывает некорректный локальный конфиг; +- pricing tab переработан: закупка и продажа разделены на отдельные таблицы с ценами за 1 шт.; +- экран прайслиста переработан под разные типы источников; удалены misleading-колонки `Поставщик` и `partnumbers`; +- runtime и startup ужесточены: локальный клиент принудительно работает только на loopback, конфиг автоматически нормализуется; - добавлены действия с вариантом и унифицированы правила именования `_копия` для вариантов и конфигураций; -- исправлен CSV-экспорт прайсинговых таблиц в конфигураторе под Excel-совместимый формат; -- таблица проектов переработана: новая колонка даты, tooltip с деталями, отдельный автор, компактные действия и ссылка на трекер; +- исправлен CSV-экспорт прайсинговых таблиц в конфигураторе под Excel-совместимый формат Excel-friendly; +- таблица проектов переработана: дата последней правки, tooltip с деталями, отдельный автор, компактные действия и ссылка на трекер; - sync больше не подменяет `updated_at` проектов временем синхронизации; -- добавлена одноразовая утилита `cmd/migrate_project_updated_at` для пересинхронизации `updated_at` проектов из MariaDB в локальную SQLite. +- добавлена одноразовая утилита `cmd/migrate_project_updated_at` для пересинхронизации `updated_at` проектов из MariaDB в локальную SQLite; +- runtime config, release notes и `bible-local/` очищены и приведены к актуальной архитектуре; - `scripts/release.sh` больше не затирает существующий `RELEASE_NOTES.md`. +## Summary + +### UI и UX + +- вкладка ценообразования теперь разделена на отдельные таблицы закупки и продажи; +- список проектов переработан: новая колонка даты, отдельный автор, tooltip с деталями, компактные действия, ссылка на трекер; +- для вариантов добавлены действия переименования, переноса и копирования; +- копии вариантов и конфигураций теперь именуются единообразно: `_копия`, `_копия2`, `_копия3`. + +### Прайслисты и экспорт + +- экран прайслиста переработан под разные типы источников; +- из прайслистов убраны misleading-колонки `Поставщик` и `partnumbers`; +- CSV-экспорт прайсинговых таблиц в конфигураторе приведён к Excel-совместимому формату. + +### Runtime и sync + +- локальный runtime нормализует `server.host` к `127.0.0.1` и переписывает некорректный runtime config; +- sync перестал подменять `updated_at` проектов временем локальной синхронизации; +- добавлена утилита `cmd/migrate_project_updated_at` для восстановления локальных дат проектов с сервера. + +### Документация и release tooling + +- `bible-local/` сокращён до актуальных архитектурных контрактов; +- release notes и release-структура приведены к одному формату; +- `scripts/release.sh` теперь сохраняет существующий `RELEASE_NOTES.md` и не затирает его шаблоном. + ## Затронутые области - `cmd/qfs/`; @@ -20,6 +52,8 @@ - `internal/localdb/`; - `internal/services/project.go`; - `internal/services/sync/service.go`; +- `internal/handlers/pricelist.go`; +- `web/templates/pricelist_detail.html`; - `web/templates/index.html`; - `web/templates/project_detail.html`; - `web/templates/projects.html`; diff --git a/web/templates/config_revisions.html b/web/templates/config_revisions.html index 1259576..3a659a8 100644 --- a/web/templates/config_revisions.html +++ b/web/templates/config_revisions.html @@ -135,15 +135,18 @@ async function loadVersions() { } function renderVersions(versions) { - if (versions.length === 0) { + const currentVersionNo = configData && configData.current_version_no ? Number(configData.current_version_no) : null; + const snapshots = versions.filter(v => Number(v.version_no) !== currentVersionNo); + + if (snapshots.length === 0) { document.getElementById('revisions-list').innerHTML = - '
| Версия | '; + html += 'Снимок | '; html += 'Дата | '; html += 'Автор | '; html += 'Артикул | '; @@ -152,16 +155,14 @@ function renderVersions(versions) { html += 'Действия | '; html += '
|---|---|---|---|---|---|
| '; html += 'v' + v.version_no; - if (isCurrent) html += ' (текущая)'; html += ' | '; html += '' + escapeHtml(date) + ' | '; html += '' + escapeHtml(author) + ' | '; @@ -178,11 +179,8 @@ function renderVersions(versions) { html += ''; - // Rollback (not for current version) - if (!isCurrent) { - html += ''; - } + html += ''; html += '