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
@@ -14,6 +14,15 @@ if (isset($_POST['delete']) && is_numeric($_POST['delete'])) {
|
||||
}
|
||||
|
||||
$items = db_whours_list($pdo);
|
||||
|
||||
if (isset($_GET['csv'])) {
|
||||
$rows = [];
|
||||
foreach ($items as $item) {
|
||||
$rows[] = [$item['week_day'], $item['open'], $item['close']];
|
||||
}
|
||||
csv_export('work_hour', 'horario-funcionamento', 'Exportação CSV do horário de funcionamento', ['Dia', 'Abertura', 'Fecho'], $rows);
|
||||
}
|
||||
|
||||
$page_title = 'Horário de Funcionamento';
|
||||
include __DIR__ . '/../../../includes/header.php';
|
||||
|
||||
@@ -22,7 +31,10 @@ $dias = ['segunda'=>'Segunda','terça'=>'Terça','quarta'=>'Quarta','quinta'=>'Q
|
||||
<div class="container">
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h1 class="h3 mb-0">Horário de Funcionamento</h1>
|
||||
<a class="btn btn-primary" href="<?= base_url('views/admin/work_hours/create.php') ?>"><i class="bi bi-plus-lg me-1"></i>Adicionar Dia</a>
|
||||
<div class="d-flex gap-2">
|
||||
<a class="btn btn-outline-secondary" href="?csv=1"><i class="bi bi-filetype-csv me-1"></i>Exportar CSV</a>
|
||||
<a class="btn btn-primary" href="<?= base_url('views/admin/work_hours/create.php') ?>"><i class="bi bi-plus-lg me-1"></i>Adicionar Dia</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card shadow-sm"><div class="card-body p-0">
|
||||
|
||||
Reference in new issue
Block a user