feat: filter available class sessions to exclude those already assigned to materials or assignments while preserving the current record selection
This commit is contained in:
parent
7bebb127eb
commit
f5b000cb7e
@ -4,6 +4,7 @@
|
||||
|
||||
use App\Enums\AssignmentType;
|
||||
use App\Filament\Resources\Learning\Assignments\Actions\SelectAllStudentsAction;
|
||||
use App\Models\Assignment;
|
||||
use App\Models\ClassSession;
|
||||
use App\Models\Course;
|
||||
use App\Models\Student;
|
||||
@ -57,13 +58,19 @@ public static function configure(Schema $schema): Schema
|
||||
Select::make('class_session_id')
|
||||
->label('Pertemuan Ke-')
|
||||
->placeholder('Pilih Pertemuan (Opsional)')
|
||||
->options(function (Get $get) {
|
||||
->options(function (Get $get, ?Assignment $record) {
|
||||
$courseId = $get('course_id');
|
||||
if (! $courseId) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return ClassSession::where('course_id', $courseId)
|
||||
->where(function ($query) use ($record) {
|
||||
$query->doesntHave('assignments');
|
||||
if ($record && $record->class_session_id) {
|
||||
$query->orWhere('id', $record->class_session_id);
|
||||
}
|
||||
})
|
||||
->orderBy('session_number')
|
||||
->pluck('session_number', 'id')
|
||||
->map(fn ($num) => "Sesi Ke-$num")
|
||||
|
||||
@ -73,13 +73,19 @@ public static function form(Schema $schema): Schema
|
||||
Select::make('class_session_id')
|
||||
->label('Pertemuan Ke-')
|
||||
->placeholder('Pilih Pertemuan (Opsional)')
|
||||
->options(function ($get) {
|
||||
->options(function ($get, ?Material $record) {
|
||||
$courseId = $get('course_id');
|
||||
if (! $courseId) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return ClassSession::where('course_id', $courseId)
|
||||
->where(function ($query) use ($record) {
|
||||
$query->doesntHave('materials');
|
||||
if ($record && $record->class_session_id) {
|
||||
$query->orWhere('id', $record->class_session_id);
|
||||
}
|
||||
})
|
||||
->orderBy('session_number')
|
||||
->pluck('session_number', 'id')
|
||||
->map(fn ($num) => "Sesi Ke-$num")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user