download countries, teams/player and tournaments for txodds

This commit is contained in:
salam committed 2026-03-05 11:56:18 +01:00
1 parent cf37530dd2
commit 356dabb0c1
14 files changed
+294 -17

No files matched your search

@@ -3,17 +3,9 @@
namespace App\Filament\Clusters\StaticData\Resources\Bettypes\Pages;
use App\Filament\Clusters\StaticData\Resources\Bettypes\BettypeResource;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListBettypes extends ListRecords
{
protected static string $resource = BettypeResource::class;
protected function getHeaderActions(): array
{
return [
CreateAction::make(),
];
}
}
@@ -4,11 +4,14 @@ namespace App\Filament\Clusters\StaticData\Resources\Bettypes\Tables;
use App\Models\Sport;
use Filament\Actions\EditAction;
use Filament\Forms\Components\Select;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
class BettypesTable
{
@@ -38,11 +41,28 @@ class BettypesTable
IconColumn::make('q1')->boolean()->trueIcon('phosphor-check-circle-fill')->falseIcon('phosphor-circle')->falseColor('gray'),
])
->filters([
SelectFilter::make('sport_id')
->label('Sport')
->options(fn () => Sport::where('is_active', 1)->pluck('name', 'id')
->toArray()),
Filter::make('sport_id')
->schema([
Select::make(name: 'sport_id')
->placeholder('Filter Sport')
->hiddenLabel()
->preload()
->options(fn () => Sport::where('is_active', 1)->pluck('name', 'id'))
->live(),
])
->query(function (Builder $query, array $data): Builder {
return $query
->when(
$data['sport_id'],
fn (Builder $query, $sport_id) => $query->where('sport_id', $sport_id)
);
}),
// SelectFilter::make('sport_id')
// ->label('')
// ->options(fn () => Sport::where('is_active', 1)->pluck('name', 'id')
// ->toArray()),
], layout: FiltersLayout::AboveContent)
->deferFilters(false)
->recordActions([
EditAction::make()->hiddenLabel(),
]);
@@ -4,8 +4,11 @@ namespace App\Filament\Clusters\StaticData\Resources\Countries;
use App\Filament\Clusters\StaticData\Resources\Countries\Pages\ManageCountries;
use App\Filament\Clusters\StaticData\StaticDataCluster;
use App\Filament\Exports\CountryExporter;
use App\Models\Country;
use Filament\Actions\EditAction;
use Filament\Actions\ExportAction;
use Filament\Actions\Exports\Enums\ExportFormat;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Resources\Resource;
@@ -13,6 +16,7 @@ use Filament\Schemas\Schema;
use Filament\Support\Enums\IconSize;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Filters\TernaryFilter;
use Filament\Tables\Table;
@@ -77,6 +81,22 @@ class CountryResource extends Resource
Filter::make('icon')
->label('Missing Icons')
->query(fn (Builder $query): Builder => $query->whereNull('icon')),
], layout: FiltersLayout::AboveContent)
->deferFilters(false)
->headerActions([
ExportAction::make()
->modalHeading('Download Countries')
->label('Export')
->icon('phosphor-download')
->modalDescription('This will download the Countries (id, name) from TxOdds.')
->modalIcon('phosphor-microsoft-excel-logo')
->exporter(CountryExporter::class)
->columnMapping(false)
->modifyQueryUsing(fn (Builder $query) => $query->where('is_country', true))
->formats([
ExportFormat::Xlsx,
ExportFormat::Csv,
]),
])
->recordActions([
EditAction::make()->hiddenLabel(),
@@ -29,7 +29,6 @@ class TxoddsMarketsTable
Select::make(name: 'sport_market')
->placeholder('Filter Sport')
->hiddenLabel()
->label('')
->preload()
->options(function () {
return [