Export training plan as one continuous PDF page

This commit is contained in:
DmitriyFadin
2026-10-14 22:15:45 +03:00
parent ff677ed780
commit 66138eb3ea
8 changed files with 60 additions and 27 deletions
+3 -1
View File
@@ -22,7 +22,7 @@
- Удаление тренировки через иконку корзины с подтверждением; после удаления последней тренировки неделю можно заполнить заново.
- Автосохранение, ручное сохранение, отмена последнего удаления блока в течение 10 секунд только в исходной тренировке (настройка `.env`: `Planner__UndoDeleteDurationSeconds`) и защита от перезаписи из другой вкладки.
- В начале PDF — таблица с именем, целью, режимом тренировок и состоянием здоровья клиента. Заметки тренера не экспортируются.
- Альбомный PDF: одна непрерывная таблица на неделю, цветные разделители тренировок с отдельными итогами, одна строка на упражнение, кликабельные ссылки и значки камеры. Ширина таблицы — 27,5 см; PNG камеры встроен в сборку, выровнен по центру ячейки. Размер иконки задаётся `Pdf__CameraSizePoints`.
- PDF одной длинной страницей: высота подбирается по содержимому без уменьшения шрифта, недели идут подряд. Одна таблица на неделю, цветные разделители тренировок с отдельными итогами, одна строка на упражнение, кликабельные ссылки и значки камеры. Ширина таблицы — 27,5 см; PNG камеры встроен в сборку, выровнен по центру ячейки. Размер иконки задаётся `Pdf__CameraSizePoints`.
Интерфейс первой версии рассчитан на компьютер. Полная адаптация под iPhone 15 отложена. Клиентского кабинета, загрузки видео, регистрации и работы без интернета нет. Blazor Interactive Server требует соединения с сервером.
@@ -115,3 +115,5 @@ dotnet ef migrations add MigrationName --project src/TrainingPlanner.Web --outpu
### Обновление старых программ
Перед применением миграции ExercisePrescription сделайте резервную копию БД. Общие вес и повторения берутся из первого подхода, старые сеты разделяются на одиночные упражнения, отдых переводится из секунд в минуты. Разные веса последующих подходов больше не используются. Для возврата к прежней модели нужны резервная копия и прежняя версия приложения. Переменные `PLANNER_DEFAULT_REST_SECONDS` и `PLANNER_DEFAULT_ROUNDS` заменены на `PLANNER_DEFAULT_REST_MINUTES` и `PLANNER_DEFAULT_SETS_COUNT`.
Непрерывный PDF: `Pdf__PageWidthCentimeters=29.7`, `Pdf__MaxContinuousPageHeightCentimeters=500`. При превышении предела экспорт сообщает об ошибке, не обрезая программу.