Skip to content

feat(certificates): текущий шаблон PDF и отправление выбранным участникам - #827

Merged
TThanos3000 merged 1 commit into
devfrom
feat/dev-certificates-ux-20261025
Oct 25, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
feat/dev-certificates-ux-20261025

Conversation

@TThanos3000

Copy link
Copy Markdown
Collaborator

Что изменено

Скачивание из журнала теперь может применить текущий сохраненный шаблон вместо старого PDF. Пробный PDF использует тот же пример имени, что в редакторе, включая длинное ФИО.

Добавлены действия с выбором сертификатов: отправить по почте, обновить PDF без письма, повторить ошибки с сохранением прежнего способа доставки. Можно выбрать UUID либо всех по фильтру/поиску с исключениями на всех страницах. Чужие UUID, конфликт ревизии и строки в обработке отклоняются до изменений; уже отправленные письма не дублируются.

Журнал возвращает признак измененного шаблона и фильтр unsent. Новые POST download/archive обновляют персональные PDF, сохраняя ссылки участников. Ручные задания имеют отдельные снимки и проходят через штатный outbox, не подменяя управление автовыдачей. Старые GET download/archive и retry сохранены для совместимости.

Проверка

  • 44 теста сертификатов: 41 прошел, 3 теста блокировок PostgreSQL пропущены на локальной SQLite. Добавлен конкурентный тест двойного запроса отправления и повторных воркеров для PostgreSQL CI.
  • Покрыты отбор/исключения без ограничения страницей, права и чужие ID, конфликты, отсутствие дублей, сохранение режима только на платформе при повторе, обновление текущего PDF/ZIP и сохранность старого файла при ошибке renderer.
  • Настоящие локальные Angular/Django: длинное имя в нативном PDF; обновление старого персонального PDF; ZIP из четырех текущих PDF; выбранные получатели и пропуск отправленного; два письма в locmem-перехватчике без внешней рассылки и без дублей воркера.
  • Black, flake8, diff check.

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

Миграции не нужны. Сначала этот API, затем парный frontend с веткой feat/dev-certificates-ux-20261025. Само сохранение шаблона не меняет выданные PDF: обновление выполняется явно при действии менеджера. Новый PDF доступен по прежней ссылке; письмо при обновлении не отправляется. Большой архив с измененным шаблоном требует нативной генерации файлов; использовать выбор/фильтр для ограничения объема.

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