Compare commits
2
Commits
ca18fc196d
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ad3cd6f671 | ||
|
|
acdfc2f46d |
@@ -110,3 +110,8 @@
|
||||
- Вместо «Открыть видео» выводится полный URL с невидимыми возможностями переноса; адрес гиперссылки остаётся исходным.
|
||||
- Все столбцы после «Примечания», включая заголовки и итоговые значения, выровнены по горизонтальному и вертикальному центру.
|
||||
- Сборка и Docker-обновление успешны. В тестовом PDF проверены полный длинный URL внутри ячейки, неизменный адрес перехода в аннотациях PDF и центрирование числовых ячеек по координатам (отклонение менее 1 pt). Скриншоты не выполнялись; собственные тестовые данные удалены.
|
||||
|
||||
## Имя PDF — 30 сентября 2026
|
||||
|
||||
- Имя скачиваемого файла: «Имя клиента — dd.MM.yyyy.pdf», дата создания программы без времени, в том же локальном времени сервера, что и история программ. Недопустимые символы имени файла заменяются подчёркиванием.
|
||||
- Сборка и Docker-обновление успешны. Проверен Content-Disposition с кириллическим именем клиента и форматом даты. Собственные тестовые записи удалены, скриншоты не выполнялись.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Security.Claims;
|
||||
using System.Globalization;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
@@ -18,6 +19,9 @@ public class ExportModel(IPlanReader reader, IPlanPdfExporter exporter) : PageMo
|
||||
var client = await reader.GetClientAsync(plan.ClientId, trainerId);
|
||||
if (client == null) return NotFound();
|
||||
Response.Headers.CacheControl = "no-store";
|
||||
return File(exporter.Export(plan, client), "application/pdf", $"training-program-{id}.pdf");
|
||||
var clientName = string.Concat(client.Name.Select(character =>
|
||||
char.IsControl(character) || "<>:\"/\\|?*".Contains(character) ? '_' : character)).Trim();
|
||||
var createdDate = plan.CreatedAtUtc.ToLocalTime().ToString("dd.MM.yyyy", CultureInfo.InvariantCulture);
|
||||
return File(exporter.Export(plan, client), "application/pdf", $"{clientName} — {createdDate}.pdf");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user