Implement compliance exports and retention overrides
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-01-02 20:13:45 +01:00
parent 5fd546c428
commit eed7699549
45 changed files with 2319 additions and 40 deletions

View File

@@ -0,0 +1,44 @@
<?php
namespace App\Filament\Resources\RetentionOverrideResource\Pages;
use App\Filament\Resources\Pages\AuditedEditRecord;
use App\Filament\Resources\RetentionOverrideResource;
use App\Models\RetentionOverride;
use App\Services\Audit\SuperAdminAuditLogger;
use Filament\Actions;
use Filament\Facades\Filament;
class EditRetentionOverride extends AuditedEditRecord
{
protected static string $resource = RetentionOverrideResource::class;
protected function getHeaderActions(): array
{
return [
Actions\Action::make('release')
->label(__('admin.retention_overrides.actions.release'))
->icon('heroicon-o-check-circle')
->color('success')
->requiresConfirmation()
->visible(fn () => $this->record instanceof RetentionOverride && $this->record->released_at === null)
->action(function (): void {
if (! ($this->record instanceof RetentionOverride) || $this->record->released_at !== null) {
return;
}
$this->record->forceFill([
'released_at' => now(),
'released_by_id' => Filament::auth()->id(),
])->save();
app(SuperAdminAuditLogger::class)->recordModelMutation(
'updated',
$this->record,
SuperAdminAuditLogger::fieldsMetadata(['released_at', 'released_by_id']),
static::class
);
}),
];
}
}