diff --git a/app/Filament/Resources/ScheduleResource.php b/app/Filament/Resources/ScheduleResource.php index 09a1362..c9aa90d 100644 --- a/app/Filament/Resources/ScheduleResource.php +++ b/app/Filament/Resources/ScheduleResource.php @@ -16,6 +16,7 @@ use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\TextColumn; +use Filament\Tables\Grouping\Group; use Filament\Tables\Table; use Illuminate\Support\Carbon; use Illuminate\Support\Str; @@ -89,6 +90,7 @@ class ScheduleResource extends Resource ->itemLabel(fn (array $state): ?string => $state['title'] ?? 'Новый файл') ->collapsible() ->cloneable() + ->maxItems(1) ->defaultItems(1), ]), ]); @@ -97,16 +99,21 @@ class ScheduleResource extends Resource public static function table(Table $table): Table { return $table - ->columns([ - TextColumn::make('educationalGroup.title') - ->label('Учебная группа') - ->sortable() - ->searchable(), + ->defaultGroup( + Group::make('educationalGroup.title') + ->titlePrefixedWithLabel(false) + ->collapsible() + ->getTitleFromRecordUsing(function ($record): string { + $groupTitle = $record->educationalGroup->title; - TextColumn::make('file_count') - ->label('Файлов') - ->getStateUsing(fn ($record) => count($record->file ?? [])) - ->badge(), + return 'Группа: ' . $groupTitle; + + }) + ) + ->columns([ + TextColumn::make('title') + ->label('Название') + ->getStateUsing(fn ($record) => $record->file[0]['title']), TextColumn::make('educationalGroup.education_form_id') ->formatStateUsing(fn ($state) => FormEducation::tryFrom($state)->getLabel()) @@ -165,6 +172,7 @@ class ScheduleResource extends Resource 'index' => Pages\ListSchedules::route('/'), 'create' => Pages\CreateSchedule::route('/create'), 'edit' => Pages\EditSchedule::route('/{record}/edit'), + 'upload' => Pages\ScheduleResource\Pages\UploadSchedules::route('/upload'), // Добавьте эту строку ]; } } \ No newline at end of file diff --git a/app/Filament/Resources/ScheduleResource/Pages/ListSchedules.php b/app/Filament/Resources/ScheduleResource/Pages/ListSchedules.php index 072cde6..0166124 100644 --- a/app/Filament/Resources/ScheduleResource/Pages/ListSchedules.php +++ b/app/Filament/Resources/ScheduleResource/Pages/ListSchedules.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources\ScheduleResource\Pages; use App\Filament\Resources\ScheduleResource; use Filament\Actions; use Filament\Resources\Pages\ListRecords; +use Filament\Support\Colors\Color; class ListSchedules extends ListRecords { @@ -14,6 +15,11 @@ class ListSchedules extends ListRecords { return [ Actions\CreateAction::make(), + Actions\Action::make('uploadSchedules') // Дайте уникальное имя для вашего действия + ->label('Быстрая загрузка расписания') // Текст, который будет отображаться на кнопке + ->url(ScheduleResource::getUrl('upload')) // Используйте getUrl для получения маршрута + ->color(Color::Indigo) + ->icon('heroicon-o-arrow-up-tray'), // Опционально: добавьте иконку ]; } -} +} \ No newline at end of file