This commit is contained in:
2026-10-12 23:40:02 +07:00
parent a8c0667d1c
commit 8a210c4379
2 changed files with 68 additions and 1 deletions
+67
View File
@@ -2,6 +2,73 @@
Архив задач, переведённых в статус `DONE`.
### ED-039 — Черновики без сценария и лист выдачи улик
- Статус: `DONE`
- Репозиторий: `evening_detective_server`
- Цель: убрать название сценария из обоих черновиков, исключить развязку из печатного комплекта, очистить подписи улик как у игроков и растянуть таблицу на доступную ширину страницы.
- Результат: генератор черновиков получает только заголовок и не выводит сценарий. Документ ведущего переименован в «Ответы.pdf», генератор принимает только вопросы и сохраняет правильные ответы без доступа к развязке. В `issuancePDF` подписи очищаются существующим `ClearText(clue.Name)`; исходные названия не изменяются. Столбец команды остаётся 51 мм, остальные столбцы равномерно занимают всю ширину альбомного A4 между полями 15 мм, включая последнюю неполную группу.
- Ограничения: исходные файлы улик, сценарий в БД, интерфейс ведущего и API не менялись; зависимости не добавлены; commit/push не выполнялись; существовавшее изменение backend-бинарника не затронуто.
- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; весь изменённый код и тесты проверены по Go-стандарту. Тест полного архива проверяет отсутствие развязки во всех генерируемых PDF, наличие правильных ответов и отсутствие сценария в обоих черновиках. Геометрия готового PDF проверяет полную ширину каждого листа при 0/1/8/9/17 уликах; тест подписей проверяет очистку `([код])` и сохранность оригинального названия.
- Дополнительная проверка: визуально проверены черновик, документ ответов, таблица на три улики и последняя страница таблицы на 17 улик; чистые подписи и полная ширина подтверждены. Примеры находятся только в `/tmp/ed039-print-preview`. На вопрос пользователя указано точное место очистки — `internal/services/game_print_service/pdf.go:251`.
- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции; существующее ограничение исходного шрифта из ED-034 сохраняется.
### ED-038 — Крупнее название сценария, без номеров страниц
- Статус: `DONE`
- Репозиторий: `evening_detective_server`
- Цель: увеличить название сценария в шапке до 18 пунктов, сохранив одну строку; убрать номера страниц во всех генерируемых PDF комплекта.
- Результат: базовый размер подписи увеличен с 14 до 18 пунктов, длинные названия уменьшаются по доступной ширине без обрезки. Общий footer с нумерацией полностью удалён; PDF игрока и ведущего создаются без номеров страниц. Генератор QR нумерацию и раньше не добавлял.
- Ограничения: поля, одностраничность правил и вопросов, API и состав ZIP сохраняются; исходные улики не менялись; зависимости не добавлены; commit/push не выполнялись; существовавшее изменение backend-бинарника не затронуто.
- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; изменённый код и тесты проверены по Go-стандарту. Тест подписи обновлён на 18 пунктов, добавлен тест отсутствия номеров на двух страницах PDF игрока и ведущего; существующие проверки длинных названий, правил и вопросов прошли.
- Дополнительная проверка: многостраничное введение визуально проверено; извлечённый текст всех страниц не содержит нумерации. Координаты короткого и длинного названия проверены: подпись ниже «Вечерний детектив», в одну строку, без пересечения. Примеры находятся только в `/tmp/ed038-intro.pdf` и `/tmp/ed038-long-title.pdf`.
- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции. Длинные подписи по-прежнему уменьшаются для размещения в одной строке; ограничение исходного шрифта из ED-034 сохраняется.
### ED-037 — Крупная подпись сценария и правила на одном листе
- Статус: `DONE`
- Репозиторий: `evening_detective_server`
- Цель: увеличить название сценария в шапке, сохранить одну строку; оба варианта правил размещать на одном A4; добавить отступ над полем команды.
- Результат: подпись сценария увеличена с 10 до 14 пунктов; длинные названия уменьшаются по доступной ширине без обрезки. Перед «Команда:» в вопросах и обоих черновиках добавлены 3 мм, дополнительный отступ учитывается при подгонке вопросов. Правила печатаются на одном A4 с полным текстом и разделами; размер текста, заголовков, межстрочных интервалов и отступов подбирается по доступной высоте. Подбор размера шрифта переиспользован для правил и вопросов.
- Ограничения: правила остаются без названия сценария; API и состав ZIP не менялись; зависимости не добавлены; commit/push не выполнялись; существовавшее изменение backend-бинарника не затронуто.
- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; весь diff проверен по Go-стандарту. Тесты проверяют очные/онлайн/длинные/пустые правила на одну страницу, сохранность полного текста и разделов, ошибку неподдерживаемого текста, подпись до 14 пунктов. Существующие тесты длинных названий, геометрии вопросов и состава архива прошли.
- Дополнительная проверка: визуально проверены оба варианта правил, вопросы и черновик; координаты извлечённого текста проверены для правил, вопросов и обоих черновиков — одна страница, текст внутри полей, поле команды ниже заголовка. PDF-примеры находятся только в `/tmp/ed037-print-preview`.
- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции. Длинные названия и объёмные тексты уменьшаются для сохранения одной строки/страницы; ограничение исходного шрифта из ED-034 сохраняется.
### ED-036 — Правила без названия сценария
- Статус: `DONE`
- Репозиторий: `evening_detective_server`
- Цель: убрать название сценария со всех страниц PDF правил, сохранив логотип и «Вечерний детектив».
- Результат: генератор правил больше не принимает название сценария и создаёт фирменную шапку с пустой подписью. Обновлены caller сборки архива и тест ассетов; тест полного архива проверяет отсутствие названия сценария в правилах и сохранение его в остальных документах.
- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; изменённый код проверен по Go-стандарту. Правила визуально проверены после рендера, пример сохранён только в `/tmp/ed036-rules.pdf`.
- Ограничения: остальные документы, API и состав ZIP не менялись; commit/push не выполнялись; существовавшее изменение backend-бинарника не затронуто.
- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции.
### ED-035 — Название сценария в шапке и вопросы на одном листе
- Статус: `DONE`
- Репозиторий: `evening_detective_server`
- Цель: название сценария второй строкой рядом с логотипом под «Вечерний детектив»; название игры не подставляется в генерируемые PDF; вопросы всегда на одном листе A4.
- Результат: генераторы получают `scenario.Name`; на правилах, введении и обоих черновиках название повторяется только в шапке, длинная подпись уменьшается без обрезки. В документах ведущего название игры заменено названием сценария. На бланке вопросов сохранены нумерация, поле команды и четыре строки ответа после каждого вопроса; шрифт до 11 пунктов подбирается по фактической высоте перенесённых строк, интервалы и поля ответа уменьшаются пропорционально. Автоматические переносы на второй лист отключены.
- Ограничения: API, состав ZIP и исходные улики не менялись; зависимости не добавлены; нижнего ограничения размера шрифта нет по выбору пользователя, поэтому большой объём может стать очень мелким. Существующее ограничение исходного машинописного шрифта описано в ED-034 и не менялось. Commit/push не выполнялись.
- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно. После уточнения теста геометрии повторно успешно проверен пакет `game_print_service`. Ревью изменённого кода и тестов по Go-стандарту выполнено.
- Дополнительная проверка: разные названия игры и сценария, в том числе название игры с эмодзи; название игры отсутствует в извлечённом тексте всех генерируемых PDF, название сценария встречается один раз на страницу документов игрока. Длинная подпись сохраняется и повторяется в шапке; многостраничное введение сохраняет текст. Пустой список, 3/40/200 вопросов, длинные абзацы и явные переносы проверены на одну страницу; геометрия готового PDF проверяет четыре линии ответа на вопрос и нижнее поле. Бланки на 8 и 40 вопросов и вторую страницу введения проверены визуально; `pdfinfo` подтверждает один лист A4, `pdftotext` — сохранность текста.
- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции. Примеры PDF сохранены только в `/tmp/ed035-print-preview`; существовавшее изменение backend-бинарника не затронуто.
### ED-034 — Фирменное оформление PDF игрока
- Статус: `DONE`
- Репозиторий: `evening_detective_server`
- Цель: оформить правила, введение, вопросы и оба черновика машинописным шрифтом фронтенда и предоставленным логотипом.
- Решение: белая бумага A4, поля 15 мм, шапка с цветным логотипом шириной 18 мм и сохранением пропорций, названием «Вечерний детектив» и разделителем на каждой странице; шрифт `a_OldTyper.ttf` в заголовках, тексте и нумерации.
- Результат: точные копии шрифта и логотипа встроены через `go:embed`; для пяти документов игрока добавлено фирменное оформление, верхняя граница текста перенесена на 43 мм под шапку. Общие функции заголовка и нумерации сохраняют выбранный шрифт. Кириллица, содержание и поля ответов сохраняются на новых страницах.
- Ограничения: API, состав ZIP, оригиналы улик и оформление документов ведущего не менялись; новые зависимости не добавлены; commit/push не выполнялись. Исходный файл логотипа во фронтенде не изменён.
- Проверка: `gofmt`, `go test ./...`, `git diff --check` — успешно; полный прогон тестов выполнен с разрешённым доступом к системному кэшу после ошибки read-only в песочнице. Ревью всего diff по Go-стандарту выполнено, нарушений в изменённом коде не осталось.
- Дополнительная проверка: тесты встроенного шрифта и оригинального JPEG, повторения логотипа на страницах и отступа текста, сохранения стиля ведущего, длинного введения и вопросов; `pdftotext` проверяет сохранность текста и повторение шапки. Все пять документов визуально проверены, включая вторые страницы правил и вопросов. Копии ассетов сверены с исходниками через `cmp`; PDF-примеры находятся только в `/tmp/ed034-print-preview`.
- Известное ограничение: исходный `a_OldTyper.ttf` содержит `OS/2 fsType=0x0002`; библиотека PDF выводит предупреждение `ERROR - copyright restrictions.` при встраивании. Шрифт и его флаги не изменялись, предупреждение не подавлялось; PDF создаётся и отображается. Пользователь уведомлён об этом в процессе работы.
- Не проверено: физическая печать, браузер на живом сервере и PostgreSQL-интеграции; фронтенд-проверки не запускались, его код не менялся.
### ED-033 — Скачать материалы игры для печати
- Статус: `DONE`
+1 -1
Submodule prod updated: df0d2dd475...27262e04ae