diff --git a/app/Filament/Resources/ResultResource.php b/app/Filament/Resources/ResultResource.php index f47681567..7990202a5 100644 --- a/app/Filament/Resources/ResultResource.php +++ b/app/Filament/Resources/ResultResource.php @@ -11,6 +11,7 @@ use Carbon\Carbon; use Filament\Forms; use Filament\Forms\Components\Checkbox; +use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Placeholder; use Filament\Forms\Components\Section; @@ -27,6 +28,7 @@ use Filament\Tables\Actions\ViewAction; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\TextColumn; +use Filament\Tables\Filters\Filter; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Filters\TernaryFilter; use Filament\Tables\Table; @@ -357,6 +359,22 @@ public static function table(Table $table): Table ->alignment(Alignment::End), ]) ->filters([ + Filter::make('created_at') + ->form([ + DatePicker::make('created_from'), + DatePicker::make('created_until'), + ]) + ->query(function (Builder $query, array $data): Builder { + return $query + ->when( + $data['created_from'], + fn (Builder $query, $date): Builder => $query->whereDate('created_at', '>=', $date), + ) + ->when( + $data['created_until'], + fn (Builder $query, $date): Builder => $query->whereDate('created_at', '<=', $date), + ); + }), SelectFilter::make('ip_address') ->label('IP address') ->multiple()