feat(backoffice): exportação CSV nas listagens, com audit
Novo helper csv_export() (config/functions.php): CSV Excel-friendly (BOM UTF-8 + ';') e cada exportação fica no audit_log (RGPD: exportar dados pessoais tem de ser rastreável). Botão "Exportar CSV" em todas as listagens do backoffice: equipa, eventos, galerias, ginásios, horário, mensalidades, modalidades, horário de funcionamento e lixeira (pedidos de inscrição e aulas experimentais já tinham). Fecha a metade "exportação com permissões e audit" do item 6.9 (a única parte que o relatório considera ganho real à escala atual). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
33158381bb
commit
116817e2de
10 files changed
+122
-4
No files matched your search
@@ -29,13 +29,25 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
}
|
||||
|
||||
$items = trash_list($pdo);
|
||||
|
||||
if (isset($_GET['csv'])) {
|
||||
$rows = [];
|
||||
foreach ($items as $it) {
|
||||
$rows[] = [$it['label'], $it['title'], $it['deleted_at'], $it['deleted_by_name'] ?? ''];
|
||||
}
|
||||
csv_export('trash', 'lixeira', 'Exportação CSV da lixeira', ['Tipo', 'Registo', 'Apagado em', 'Por'], $rows);
|
||||
}
|
||||
|
||||
$page_title = 'Lixeira';
|
||||
include __DIR__ . '/../../../includes/header.php';
|
||||
?>
|
||||
<div class="container">
|
||||
<div class="d-flex justify-content-between align-items-center mb-2">
|
||||
<h1 class="h3 mb-0">Lixeira</h1>
|
||||
<span class="badge bg-secondary"><?= count($items) ?></span>
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<span class="badge bg-secondary"><?= count($items) ?></span>
|
||||
<a class="btn btn-outline-secondary btn-sm" href="?csv=1"><i class="bi bi-filetype-csv me-1"></i>Exportar CSV</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted small mb-4">
|
||||
O que se apaga no backoffice fica aqui. Pode ser restaurado a qualquer momento;
|
||||
|
||||
Reference in new issue
Block a user