Skip to content

Сертификаты: вертикальный и альбомный А4 - #824

Merged
TThanos3000 merged 1 commit into
devfrom
feat/dev-certificate-a4-orientation-20261025
Oct 25, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
feat/dev-certificate-a4-orientation-20261025

Conversation

@TThanos3000

Copy link
Copy Markdown
Collaborator

Что изменено

Сертификаты поддерживают вертикальный А4 (210 × 297 мм) и альбомный А4 (297 × 210 мм). Ориентация сохраняется в черновике и снимке выдачи; PDF и подгонка текста используют выбранные размеры. Фон вписывается целиком без обрезки, вертикальные изображения сохраняют разрешение до 2480 × 3508.

Старые шаблоны без поля orientation остаются альбомными. Сохранение старым клиентом не сбрасывает уже выбранную вертикальную ориентацию. Неизвестные значения отклоняются без изменения ревизии.

Проверка

  • Локальная изолированная SQLite: 31 тест сертификатов, 29 успешных и 2 проверки блокировок PostgreSQL пропущены.
  • Настоящий WeasyPrint: по одной странице для вертикального, альбомного и старого снимка. Проверены размеры страниц, валидация, сохранение и совместимость со старым клиентом.
  • Angular + Django на disposable localhost: оба preview PDF скачаны через интерфейс. MediaBox: 210 × 297 мм и 297 × 210 мм; Poppler-рендеры проверены визуально, видны все четыре контрольных угла фона.
  • Black, flake8 и git diff --check успешны.

Риски и ограничения

Миграция БД и новые настройки окружения не требуются. Ранее сформированные PDF не пересоздаются. Для новых PDF фон теперь вписывается целиком: при отличии пропорций изображения от А4 возможны белые поля вместо обрезки. Сначала выкатить этот API PR, затем парный frontend. Реальный dev не изменялся, выдача и рассылка при проверке не запускались.

@TThanos3000
TThanos3000 merged commit f3de578 into dev Oct 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants