feat: enhance AcademicAdvisingLogService to filter logs based on student role; update RolePermissionSeeder to include view-academic-advising-logs permission; rename 'Pembimbing Akademik' to 'Dosen' in UI
This commit is contained in:
parent
51e943572a
commit
37ce3c15ea
@ -13,6 +13,11 @@ public function paginated(User $user, int $perPage = 25, string $search = '', ?i
|
||||
{
|
||||
return AcademicAdvisingLog::query()
|
||||
->with([
|
||||
'students' => function ($q) use ($user) {
|
||||
if ($user->hasRole(UserRole::Mahasiswa->value)) {
|
||||
$q->where('students.id', $user->student?->id);
|
||||
}
|
||||
},
|
||||
'students.user.profile',
|
||||
'students.department',
|
||||
'lecturer.user.profile',
|
||||
@ -23,6 +28,7 @@ public function paginated(User $user, int $perPage = 25, string $search = '', ?i
|
||||
->orWhereHas('user.profile', fn ($q) => $q->where('full_name', 'like', "%{$search}%"))))
|
||||
->when($lecturerId, fn ($q) => $q->where('lecturer_id', $lecturerId))
|
||||
->when($user->hasRole(UserRole::Dosen->value), fn ($q) => $q->where('lecturer_id', $user->lecturer?->id))
|
||||
->when($user->hasRole(UserRole::Mahasiswa->value), fn ($q) => $q->whereHas('students', fn ($q) => $q->where('students.id', $user->student?->id)))
|
||||
->latest()
|
||||
->paginate($perPage, ['id', 'lecturer_id', 'topic', 'notes', 'created_at']);
|
||||
}
|
||||
|
||||
@ -40,6 +40,7 @@ public function run(): void
|
||||
'mahasiswa' => [
|
||||
'view-dashboard',
|
||||
'view-academic-terms',
|
||||
'view-academic-advising-logs',
|
||||
'view-courses',
|
||||
'view-course-registrations',
|
||||
'view-letter-requests',
|
||||
|
||||
@ -58,7 +58,7 @@ export function createAcademicAdvisingLogColumns(
|
||||
},
|
||||
{
|
||||
accessorKey: 'lecturer.user.profile.full_name',
|
||||
header: () => <span>Pembimbing Akademik</span>,
|
||||
header: () => <span>Dosen</span>,
|
||||
cell: ({ row }) => {
|
||||
const lecturer = row.original.lecturer;
|
||||
|
||||
|
||||
@ -258,7 +258,7 @@ function ViewDetailDialog({
|
||||
|
||||
<div className="grid gap-1">
|
||||
<Label className="text-muted-foreground">
|
||||
Pembimbing Akademik
|
||||
Dosen
|
||||
</Label>
|
||||
<p>
|
||||
{log.lecturer?.user?.profile?.full_name ??
|
||||
@ -338,7 +338,7 @@ function AdvisingLogFields({
|
||||
<>
|
||||
<div className="grid gap-2">
|
||||
<Label>
|
||||
Pembimbing Akademik{' '}
|
||||
Dosen{' '}
|
||||
<span className="text-destructive">*</span>
|
||||
</Label>
|
||||
<input
|
||||
|
||||
Loading…
Reference in New Issue
Block a user