65 lines
1.8 KiB
PHP
65 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Resources\LearningObjectiveResource\Pages;
|
|
|
|
use App\Filament\Resources\LearningObjectiveResource;
|
|
use App\Models\Attendances;
|
|
use App\Models\HomeRoomTeacher;
|
|
use App\Models\LearningObjective;
|
|
use App\Models\TeacherSubject;
|
|
use Filament\Actions;
|
|
use Filament\Resources\Pages\ListRecords;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
class ListLearningObjectives extends ListRecords
|
|
{
|
|
protected static string $resource = LearningObjectiveResource::class;
|
|
|
|
protected function getTableQuery(): ?Builder
|
|
{
|
|
$user = auth()->user();
|
|
|
|
if ($user->hasRole('teacher')) {
|
|
|
|
$homeRoomClassIds = HomeRoomTeacher::where('teacher_id', $user->id)
|
|
->pluck('class_room_id')
|
|
->toArray();
|
|
|
|
if (!empty($homeRoomClassIds)) {
|
|
return LearningObjective::with(["subject", "class"])
|
|
->whereIn('class_room_id', $homeRoomClassIds);
|
|
} else {
|
|
$teacherClass = TeacherSubject::with(["subject", "class"])
|
|
->where('teacher_id',$user->id)
|
|
->firstOrFail();
|
|
|
|
$query = LearningObjective::with(["subject", "class"]);
|
|
|
|
if ($teacherClass) {
|
|
$query->where('class_room_id', $teacherClass->class_id)
|
|
->where('subject_id', $teacherClass->subject_id);
|
|
}
|
|
|
|
return $query;
|
|
}
|
|
|
|
}
|
|
|
|
return LearningObjective::query();
|
|
}
|
|
|
|
protected function getHeaderActions(): array
|
|
{
|
|
return [
|
|
Actions\CreateAction::make()
|
|
->label('Tambah Tujuan Pembelajaran')
|
|
->icon('heroicon-o-user-group'),
|
|
];
|
|
}
|
|
|
|
public function getTitle(): string
|
|
{
|
|
return 'Daftar Tujuan Pembelajaran';
|
|
}
|
|
}
|