reihanrere 41c0dcfb20
All checks were successful
continuous-integration/drone/push Build is passing
add attedances on raport
2025-06-24 08:14:22 +07:00

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';
}
}