Skip to content

feat: вкладка сертификатов и редактор перетаскиванием - #499

Merged
TThanos3000 merged 3 commits into
devfrom
feat/dev-program-certificates-20261024
Oct 23, 2026
Merged

TThanos3000 merged 3 commits into
devfrom
feat/dev-program-certificates-20261024

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Что изменено

В управлении программой появилась вкладка «Сертификаты»: шаблон с собственным фоном и подписью, директор и должность, редактор перетаскиванием/масштабированием, пробный PDF, автовыдача и журнал отправок. Участник может скачать свой сертификат на странице программы.

Зачем

Реализация утвержденного макета https://www.figma.com/design/tvog0fpEgWgEtr7KUTjbyE?node-id=904-3219 . Spec: docs/feature-specs/program-certificates.md.

Реализация

Angular 20, Mont, штатные UI foundation, Modal и управление программой. Типизированные domain port/use-case/HTTP adapter. Приватные настройки и адреса не кешируются в EntityCache. Перемещение мышью, касанием и стрелками; подпись сохраняет пропорции. Есть увеличение редактора, центрирование, кнопки размера, проверка длинного имени и защита несохраненных изменений.

API

Зависит от PROCOLLAB-github/api#818: сначала backend с миграцией 0029 и worker/beat, затем этот frontend. API additive, интерфейсы существующих вкладок не меняются.

UI

Три шага: Шаблон / Автовыдача / Отправки. Два режима получателей, ручной/отложенный запуск, пробное письмо только себе, подтверждение и пауза. Все/Отправлено/Ошибки с серверным поиском/пагинацией, повтор одной/всех ошибок и архив PDF. Нет условия подтверждения почты или неясного бейджа «Включено».

Permissions

Новая вкладка использует существующий защищенный management flow. Backend проверяет роль и программу на каждом запросе; собственные PDF отдельно ограничены участником. Негативные проверки — в парном backend PR.

Проверки

  • 81 Vitest: geometry, certificates component, management, program roles/widget, own certificate and stale-response regressions.
  • npm run build:pr; npm run lint:ts (0 ошибок, 6 существующих предупреждений).
  • Prettier измененных TS/HTML/docs, Stylelint новых SCSS, git diff --check.
  • Browser, настоящий локальный Angular + Django с синтетическими данными: upload, drag, пропорциональный resize, сохранение/перезагрузка, режимы и подтверждение, dirty guard, фильтры ошибок/отправленных, собственный сертификат.
  • 390px и 1440px, native touch events, увеличенный редактор, отсутствие горизонтального overflow.

Acceptance criteria

  • Вкладка управления и состояния loading/empty/error/disabled.
  • Загрузка, директор/подпись, прямое размещение без координат.
  • Два режима получателей и запуск с подтверждением.
  • Фильтр ошибок действительно исключает отправленные строки.
  • Поддержка повторов и скачивания из API, без демоданных в продукте.
  • Собственный сертификат участника на странице программы.
  • Native A4 PDF с кириллицей, одна страница и параллельные worker — Linux/PostgreSQL CI парного backend PR: 1352 теста, run 40028136370.

Не проверено

Реальный email provider и dev deployment не выполнялись. Полный format:check на Windows без опций сообщает 1871 baseline файлов из-за CRLF checkout; неизмененный tsconfig.json отличается от Git только EOL. Полный npm run format:check -- --end-of-line auto и каноническая проверка измененных файлов проходят. Несвязанные файлы не нормализовались. Существующие Angular/Sass warnings сохранены.

Риски / migration

Деплой backend должен предшествовать frontend. PDF/активы хранятся приватно в БД; миграция и native зависимости перечислены в api#818. Merge/deploy еще не выполнены.

Парный backend PR: все CI jobs success (PostgreSQL, SQLite, Lint). Review passed; rollout order API -> успешный Deploy -> frontend.

@TThanos3000
TThanos3000 marked this pull request as ready for review October 23, 2026 22:02
@TThanos3000
TThanos3000 merged commit 5e22c54 into dev Oct 23, 2026
@TThanos3000
TThanos3000 deleted the feat/dev-program-certificates-20261024 branch October 23, 2026 22:08
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