diff --git a/app/Filament/Imports/StudentImporter.php b/app/Filament/Imports/StudentImporter.php index ec9d68b..6a19ce1 100644 --- a/app/Filament/Imports/StudentImporter.php +++ b/app/Filament/Imports/StudentImporter.php @@ -4,10 +4,13 @@ namespace App\Filament\Imports; use App\Models\Student; use App\Models\User; +use Carbon\Carbon; use Filament\Actions\Imports\ImportColumn; use Filament\Actions\Imports\Importer; use Filament\Actions\Imports\Models\Import; use Filament\Actions\Imports\Exceptions\RowImportFailedException; +use Filament\Notifications\Notification; +use Spatie\Permission\Models\Role; class StudentImporter extends Importer { @@ -65,6 +68,31 @@ class StudentImporter extends Importer throw new RowImportFailedException('Email sudah digunakan'); } + $parentRole = Role::where('name', 'parent')->first(); + + $birthDate = Carbon::parse($this->data['birth_date']); + $password = $birthDate->format('dmY') . $this->data['nis']; + + $parentUser = User::updateOrCreate( + ['email' => $this->data['email']], + [ + 'name' => $this->data['parent_name'], + 'password' => bcrypt($password), + 'phone' => $this->data['parent_phone'], + ] + ); + + $parentUser->assignRole($parentRole); + + $recipient = auth()->user(); + if ($recipient) { + Notification::make() + ->title('Impor Siswa Berhasil') + ->body('Siswa baru dengan NIS ' . $this->data['nis'] . ' dan orang tua ' . $this->data['parent_name'] . ' berhasil diimpor.') + ->success() + ->sendToDatabase($recipient); + } + return new Student(); } diff --git a/app/Filament/Resources/AcademicYearResource.php b/app/Filament/Resources/AcademicYearResource.php index eca7e9c..7ee367b 100644 --- a/app/Filament/Resources/AcademicYearResource.php +++ b/app/Filament/Resources/AcademicYearResource.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\AcademicYearResource\Pages; use App\Filament\Resources\AcademicYearResource\RelationManagers; use App\Models\AcademicYear; +use App\Models\ClassSubject; use Filament\Forms; use Filament\Forms\Form; use Filament\Notifications\Notification; @@ -70,7 +71,9 @@ class AcademicYearResource extends Resource Tables\Filters\TrashedFilter::make(), ]) ->actions([ - Tables\Actions\EditAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (AcademicYear $record) => auth()->user()->hasRole('admin') && $record->trashed()), Tables\Actions\Action::make('toggleActive') ->label('Toggle Active') ->icon('heroicon-o-power') @@ -90,13 +93,8 @@ class AcademicYearResource extends Resource ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), - Tables\Actions\ForceDeleteBulkAction::make(), - Tables\Actions\RestoreBulkAction::make(), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/AcademicYearResource/Pages/EditAcademicYear.php b/app/Filament/Resources/AcademicYearResource/Pages/EditAcademicYear.php index 7d7ac76..0e04be2 100644 --- a/app/Filament/Resources/AcademicYearResource/Pages/EditAcademicYear.php +++ b/app/Filament/Resources/AcademicYearResource/Pages/EditAcademicYear.php @@ -35,13 +35,4 @@ class EditAcademicYear extends EditRecord return $data; } - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - Actions\ForceDeleteAction::make(), - Actions\RestoreAction::make(), - ]; - } } diff --git a/app/Filament/Resources/AssessmentResource.php b/app/Filament/Resources/AssessmentResource.php index 77b83d0..b5c0902 100644 --- a/app/Filament/Resources/AssessmentResource.php +++ b/app/Filament/Resources/AssessmentResource.php @@ -7,6 +7,7 @@ use App\Filament\Resources\AssessmentResource\RelationManagers; use App\Models\Assessment; use App\Models\AssessmentComponent; use App\Models\ClassStudent; +use App\Models\ExtracurricularAssessment; use App\Models\HomeRoomTeacher; use App\Models\Student; use App\Models\TeacherSubject; @@ -179,13 +180,31 @@ class AssessmentResource extends Resource ->getOptionLabelFromRecordUsing(fn (TeacherSubject $record) => $record->teacher->name . ' - ' . $record->subject->name) ->preload(), + + Tables\Columns\TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (Assessment $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin') || auth()->user()->hasRole('teacher')), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), ]); } diff --git a/app/Filament/Resources/AttendancesResource.php b/app/Filament/Resources/AttendancesResource.php index d0d83d0..a19f72e 100644 --- a/app/Filament/Resources/AttendancesResource.php +++ b/app/Filament/Resources/AttendancesResource.php @@ -3,6 +3,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\AttendancesResource\Pages; +use App\Models\Assessment; use App\Models\Attendances; use App\Models\ClassRoom; use App\Models\ClassStudent; @@ -232,19 +233,32 @@ class AttendancesResource extends Resource ->getOptionLabelFromRecordUsing(fn (TeacherSubject $record) => $record->teacher->name . ' - ' . $record->subject->name) ->preload(), + Tables\Columns\TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make() - ->iconButton(), - Tables\Actions\DeleteAction::make() - ->iconButton(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (Attendances $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin') || auth()->user()->hasRole('teacher')), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), ]) -// ->defaultSort('teacherSubject.academicYear.name', 'desc') ->groups([ Tables\Grouping\Group::make('teacherSubject.subject.name') ->label('Mapel') diff --git a/app/Filament/Resources/ClassRoomResource.php b/app/Filament/Resources/ClassRoomResource.php index 64070bd..540c20f 100644 --- a/app/Filament/Resources/ClassRoomResource.php +++ b/app/Filament/Resources/ClassRoomResource.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\ClassRoomResource\Pages; use App\Filament\Resources\ClassRoomResource\RelationManagers; use App\Models\ClassRoom; +use App\Models\Extracurricular; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; @@ -55,6 +56,7 @@ class ClassRoomResource extends Resource ->searchable(), Tables\Columns\TextColumn::make('class_level') ->searchable(), + Tables\Columns\TextColumn::make('created_at') ->dateTime() ->sortable() @@ -63,22 +65,23 @@ class ClassRoomResource extends Resource ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ - Tables\Filters\TrashedFilter::make(), + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make(), - Tables\Actions\RestoreAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (ClassRoom $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/ClassRoomResource/Pages/EditClassRoom.php b/app/Filament/Resources/ClassRoomResource/Pages/EditClassRoom.php index 9be4050..59089a1 100644 --- a/app/Filament/Resources/ClassRoomResource/Pages/EditClassRoom.php +++ b/app/Filament/Resources/ClassRoomResource/Pages/EditClassRoom.php @@ -14,10 +14,4 @@ class EditClassRoom extends EditRecord { return 'Edit Kelas'; } - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - ]; - } } diff --git a/app/Filament/Resources/ClassRoomResource/Pages/ListClassRooms.php b/app/Filament/Resources/ClassRoomResource/Pages/ListClassRooms.php index 49b2226..932ebf3 100644 --- a/app/Filament/Resources/ClassRoomResource/Pages/ListClassRooms.php +++ b/app/Filament/Resources/ClassRoomResource/Pages/ListClassRooms.php @@ -18,7 +18,9 @@ class ListClassRooms extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make(), + Actions\CreateAction::make() + ->label('Tambah Kelas') + ->icon('heroicon-o-user-group'), ]; } } diff --git a/app/Filament/Resources/ClassStudentResource.php b/app/Filament/Resources/ClassStudentResource.php index e4d8fc0..df450d8 100644 --- a/app/Filament/Resources/ClassStudentResource.php +++ b/app/Filament/Resources/ClassStudentResource.php @@ -90,9 +90,6 @@ class ClassStudentResource extends Resource Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/ClassStudentResource/Pages/ListClassStudents.php b/app/Filament/Resources/ClassStudentResource/Pages/ListClassStudents.php index 5f60a76..559431a 100644 --- a/app/Filament/Resources/ClassStudentResource/Pages/ListClassStudents.php +++ b/app/Filament/Resources/ClassStudentResource/Pages/ListClassStudents.php @@ -18,7 +18,9 @@ class ListClassStudents extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make(), + Actions\CreateAction::make() + ->label('Tambah Kelas per-Siswa') + ->icon('heroicon-o-user-group'), ]; } } diff --git a/app/Filament/Resources/ClassSubjectResource.php b/app/Filament/Resources/ClassSubjectResource.php index dd98837..d183d2c 100644 --- a/app/Filament/Resources/ClassSubjectResource.php +++ b/app/Filament/Resources/ClassSubjectResource.php @@ -4,6 +4,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\ClassSubjectResource\Pages; use App\Filament\Resources\ClassSubjectResource\RelationManagers; +use App\Models\ClassRoom; use App\Models\ClassSubject; use Filament\Forms; use Filament\Forms\Form; @@ -50,17 +51,31 @@ class ClassSubjectResource extends Resource ->columns([ TextColumn::make('class.class_name')->label('Kelas')->sortable()->searchable(), TextColumn::make('subject.name')->label('Mata Pelajaran')->sortable()->searchable(), - TextColumn::make('academicYear.name')->label('Tahun Ajaran')->sortable(), + + Tables\Columns\TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ - // + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (ClassSubject $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), ]); } diff --git a/app/Filament/Resources/ClassSubjectResource/Pages/EditClassSubject.php b/app/Filament/Resources/ClassSubjectResource/Pages/EditClassSubject.php index a7a2c88..e100c30 100644 --- a/app/Filament/Resources/ClassSubjectResource/Pages/EditClassSubject.php +++ b/app/Filament/Resources/ClassSubjectResource/Pages/EditClassSubject.php @@ -14,11 +14,4 @@ class EditClassSubject extends EditRecord { return 'Edit Mata Pelajaran per-Kelas'; } - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - ]; - } } diff --git a/app/Filament/Resources/ClassSubjectResource/Pages/ListClassSubjects.php b/app/Filament/Resources/ClassSubjectResource/Pages/ListClassSubjects.php index 475c556..e9847a1 100644 --- a/app/Filament/Resources/ClassSubjectResource/Pages/ListClassSubjects.php +++ b/app/Filament/Resources/ClassSubjectResource/Pages/ListClassSubjects.php @@ -18,7 +18,9 @@ class ListClassSubjects extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make(), + Actions\CreateAction::make() + ->label('Tambah Mata Pelajaran per-Kelas') + ->icon('heroicon-o-user-group'), ]; } } diff --git a/app/Filament/Resources/CompetencyAchievementResource.php b/app/Filament/Resources/CompetencyAchievementResource.php index c007555..cb572bb 100644 --- a/app/Filament/Resources/CompetencyAchievementResource.php +++ b/app/Filament/Resources/CompetencyAchievementResource.php @@ -103,9 +103,6 @@ class CompetencyAchievementResource extends Resource Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin') || auth()->user()->hasRole('teacher')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/ExtracurricularAssessmentResource.php b/app/Filament/Resources/ExtracurricularAssessmentResource.php index 9e605d9..53304d1 100644 --- a/app/Filament/Resources/ExtracurricularAssessmentResource.php +++ b/app/Filament/Resources/ExtracurricularAssessmentResource.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\ExtracurricularAssessmentResource\Pages; use App\Filament\Resources\ExtracurricularAssessmentResource\RelationManagers; use App\Models\ClassStudent; +use App\Models\ClassSubject; use App\Models\Extracurricular; use App\Models\ExtracurricularAssessment; use App\Models\HomeRoomTeacher; @@ -116,20 +117,32 @@ class ExtracurricularAssessmentResource extends Resource Tables\Columns\TextColumn::make('description') ->label('Description'), + + Tables\Columns\TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ - // + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (ExtracurricularAssessment $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin') || auth()->user()->hasRole('teacher')), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/ExtracurricularAssessmentResource/Pages/EditExtracurricularAssessment.php b/app/Filament/Resources/ExtracurricularAssessmentResource/Pages/EditExtracurricularAssessment.php index f90e0e5..a12fa83 100644 --- a/app/Filament/Resources/ExtracurricularAssessmentResource/Pages/EditExtracurricularAssessment.php +++ b/app/Filament/Resources/ExtracurricularAssessmentResource/Pages/EditExtracurricularAssessment.php @@ -14,11 +14,4 @@ class EditExtracurricularAssessment extends EditRecord { return 'Edit Penilaian Ektrakurikuler'; } - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - ]; - } } diff --git a/app/Filament/Resources/ExtracurricularAssessmentResource/Pages/ListExtracurricularAssessments.php b/app/Filament/Resources/ExtracurricularAssessmentResource/Pages/ListExtracurricularAssessments.php index 503209f..b8619f6 100644 --- a/app/Filament/Resources/ExtracurricularAssessmentResource/Pages/ListExtracurricularAssessments.php +++ b/app/Filament/Resources/ExtracurricularAssessmentResource/Pages/ListExtracurricularAssessments.php @@ -37,7 +37,9 @@ class ListExtracurricularAssessments extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make(), + Actions\CreateAction::make() + ->label('Tambah Penilaian Ekstrakurikuler') + ->icon('heroicon-o-user-group'), ]; } } diff --git a/app/Filament/Resources/ExtracurricularResource.php b/app/Filament/Resources/ExtracurricularResource.php index 2e0c96a..459714a 100644 --- a/app/Filament/Resources/ExtracurricularResource.php +++ b/app/Filament/Resources/ExtracurricularResource.php @@ -4,6 +4,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\ExtracurricularResource\Pages; use App\Models\Extracurricular; +use App\Models\Student; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; @@ -49,20 +50,30 @@ class ExtracurricularResource extends Resource ->limit(50), Tables\Columns\TextColumn::make('created_at') - ->label('Created at') - ->dateTime('d M Y'), + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (Extracurricular $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ - Tables\Actions\DeleteBulkAction::make(), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), + Tables\Actions\BulkActionGroup::make([ + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + ]), ]); } diff --git a/app/Filament/Resources/ExtracurricularResource/Pages/EditExtracurricular.php b/app/Filament/Resources/ExtracurricularResource/Pages/EditExtracurricular.php index 3eb0736..66cddc9 100644 --- a/app/Filament/Resources/ExtracurricularResource/Pages/EditExtracurricular.php +++ b/app/Filament/Resources/ExtracurricularResource/Pages/EditExtracurricular.php @@ -14,11 +14,4 @@ class EditExtracurricular extends EditRecord { return 'Edit Ektrakuriler'; } - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - ]; - } } diff --git a/app/Filament/Resources/ExtracurricularResource/Pages/ListExtracurriculars.php b/app/Filament/Resources/ExtracurricularResource/Pages/ListExtracurriculars.php index 1df4f92..81189c2 100644 --- a/app/Filament/Resources/ExtracurricularResource/Pages/ListExtracurriculars.php +++ b/app/Filament/Resources/ExtracurricularResource/Pages/ListExtracurriculars.php @@ -18,7 +18,9 @@ class ListExtracurriculars extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make()->label('Tambah Ekstrakurikuler'), + Actions\CreateAction::make() + ->label('Tambah Ektrakurikuler') + ->icon('heroicon-o-user-group'), ]; } } diff --git a/app/Filament/Resources/HomeRoomTeacherResource.php b/app/Filament/Resources/HomeRoomTeacherResource.php index 4ffb8b6..a46c321 100644 --- a/app/Filament/Resources/HomeRoomTeacherResource.php +++ b/app/Filament/Resources/HomeRoomTeacherResource.php @@ -7,6 +7,7 @@ use App\Filament\Resources\HomeRoomTeacherResource\RelationManagers; use App\Models\AcademicYear; use App\Models\ClassRoom; use App\Models\HomeRoomTeacher; +use App\Models\LearningObjective; use App\Models\User; use Filament\Forms; use Filament\Forms\Form; @@ -72,24 +73,23 @@ class HomeRoomTeacherResource extends Resource ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), - Tables\Columns\TextColumn::make('deleted_at') - ->dateTime() + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ - // + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (HomeRoomTeacher $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/HomeRoomTeacherResource/Pages/EditHomeRoomTeacher.php b/app/Filament/Resources/HomeRoomTeacherResource/Pages/EditHomeRoomTeacher.php index 3a51f9e..6edeaf1 100644 --- a/app/Filament/Resources/HomeRoomTeacherResource/Pages/EditHomeRoomTeacher.php +++ b/app/Filament/Resources/HomeRoomTeacherResource/Pages/EditHomeRoomTeacher.php @@ -39,10 +39,4 @@ class EditHomeRoomTeacher extends EditRecord return $data; } - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - ]; - } } diff --git a/app/Filament/Resources/HomeRoomTeacherResource/Pages/ListHomeRoomTeachers.php b/app/Filament/Resources/HomeRoomTeacherResource/Pages/ListHomeRoomTeachers.php index b557f1b..d86e890 100644 --- a/app/Filament/Resources/HomeRoomTeacherResource/Pages/ListHomeRoomTeachers.php +++ b/app/Filament/Resources/HomeRoomTeacherResource/Pages/ListHomeRoomTeachers.php @@ -18,7 +18,9 @@ class ListHomeRoomTeachers extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make(), + Actions\CreateAction::make() + ->label('Tambah Wali Kelas') + ->icon('heroicon-o-user-group'), ]; } } diff --git a/app/Filament/Resources/LearningObjectiveResource.php b/app/Filament/Resources/LearningObjectiveResource.php index 71f7f0b..556604c 100644 --- a/app/Filament/Resources/LearningObjectiveResource.php +++ b/app/Filament/Resources/LearningObjectiveResource.php @@ -7,6 +7,7 @@ use App\Filament\Resources\LearningObjectiveResource\RelationManagers; use App\Models\ClassRoom; // Import ClassRoom model use App\Models\LearningObjective; use App\Models\Subject; // Import Subject model +use App\Models\TeacherSubject; use Filament\Forms; use Filament\Forms\Components\Select; use Filament\Forms\Form; @@ -73,7 +74,6 @@ class LearningObjectiveResource extends Resource ->tooltip(fn (LearningObjective $record): string => $record->description) // Show full text on hover ->sortable(), - // Standard timestamp columns Tables\Columns\TextColumn::make('created_at') ->dateTime() ->sortable() @@ -82,26 +82,22 @@ class LearningObjectiveResource extends Resource ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), - Tables\Columns\TextColumn::make('deleted_at') - ->dateTime() + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() ->sortable() - ->toggleable(isToggledHiddenByDefault: true), // Show deleted_at if soft deletes are used + ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ - // TrashedFilter works with SoftDeletes trait on the model - Tables\Filters\TrashedFilter::make(), + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make(), // For soft deleting records - Tables\Actions\RestoreAction::make(), // For restoring soft-deleted records - Tables\Actions\ForceDeleteAction::make(), // For permanently deleting records + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (LearningObjective $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), - Tables\Actions\ForceDeleteBulkAction::make(), - Tables\Actions\RestoreBulkAction::make(), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), ]); } diff --git a/app/Filament/Resources/LearningObjectiveResource/Pages/EditLearningObjective.php b/app/Filament/Resources/LearningObjectiveResource/Pages/EditLearningObjective.php index 3aad4dd..3630a2d 100644 --- a/app/Filament/Resources/LearningObjectiveResource/Pages/EditLearningObjective.php +++ b/app/Filament/Resources/LearningObjectiveResource/Pages/EditLearningObjective.php @@ -14,13 +14,4 @@ class EditLearningObjective extends EditRecord { return 'Edit Tujuan Pembelajaran'; } - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - Actions\ForceDeleteAction::make(), - Actions\RestoreAction::make(), - ]; - } } diff --git a/app/Filament/Resources/LearningObjectiveResource/Pages/ListLearningObjectives.php b/app/Filament/Resources/LearningObjectiveResource/Pages/ListLearningObjectives.php index aa0b4f6..0ed5246 100644 --- a/app/Filament/Resources/LearningObjectiveResource/Pages/ListLearningObjectives.php +++ b/app/Filament/Resources/LearningObjectiveResource/Pages/ListLearningObjectives.php @@ -35,7 +35,9 @@ class ListLearningObjectives extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make()->label('Tambah Tujuan Pembelajaran Baru'), + Actions\CreateAction::make() + ->label('Tambah Tujuan Pembelajaran') + ->icon('heroicon-o-user-group'), ]; } diff --git a/app/Filament/Resources/StudentResource.php b/app/Filament/Resources/StudentResource.php index c5c93ac..8a7d588 100644 --- a/app/Filament/Resources/StudentResource.php +++ b/app/Filament/Resources/StudentResource.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\StudentResource\Pages; use App\Models\ClassRoom; use App\Models\Student; +use App\Models\Subject; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; @@ -125,21 +126,27 @@ class StudentResource extends Resource ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ - // + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\ViewAction::make(), - Tables\Actions\EditAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (Student $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/StudentResource/Pages/EditStudent.php b/app/Filament/Resources/StudentResource/Pages/EditStudent.php index 196e843..350af07 100644 --- a/app/Filament/Resources/StudentResource/Pages/EditStudent.php +++ b/app/Filament/Resources/StudentResource/Pages/EditStudent.php @@ -48,18 +48,4 @@ class EditStudent extends EditRecord return $data; } - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make() - ->before(function (Actions\DeleteAction $action) { - $student = $this->record; - - if ($student->email) { - User::where('email', $student->email)->delete(); - } - }), - ]; - } } diff --git a/app/Filament/Resources/StudentResource/Pages/ListStudents.php b/app/Filament/Resources/StudentResource/Pages/ListStudents.php index 8f0b11b..bf9e65d 100644 --- a/app/Filament/Resources/StudentResource/Pages/ListStudents.php +++ b/app/Filament/Resources/StudentResource/Pages/ListStudents.php @@ -18,7 +18,9 @@ class ListStudents extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make(), + Actions\CreateAction::make() + ->label('Tambah Siswa') + ->icon('heroicon-o-user-group'), Actions\ImportAction::make('importBrands') ->importer(StudentImporter::class), ]; diff --git a/app/Filament/Resources/SubjectResource.php b/app/Filament/Resources/SubjectResource.php index 903b9b3..4ee9b5d 100644 --- a/app/Filament/Resources/SubjectResource.php +++ b/app/Filament/Resources/SubjectResource.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\SubjectResource\Pages; use App\Filament\Resources\SubjectResource\RelationManagers; use App\Models\Subject; +use App\Models\User; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; @@ -67,20 +68,23 @@ class SubjectResource extends Resource ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ - // + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (Subject $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/SubjectResource/Pages/EditSubject.php b/app/Filament/Resources/SubjectResource/Pages/EditSubject.php index 3506353..684c122 100644 --- a/app/Filament/Resources/SubjectResource/Pages/EditSubject.php +++ b/app/Filament/Resources/SubjectResource/Pages/EditSubject.php @@ -14,11 +14,4 @@ class EditSubject extends EditRecord { return 'Edit Mata Pelajaran'; } - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - ]; - } } diff --git a/app/Filament/Resources/SubjectResource/Pages/ListSubjects.php b/app/Filament/Resources/SubjectResource/Pages/ListSubjects.php index 27f0f56..2127bf9 100644 --- a/app/Filament/Resources/SubjectResource/Pages/ListSubjects.php +++ b/app/Filament/Resources/SubjectResource/Pages/ListSubjects.php @@ -18,7 +18,9 @@ class ListSubjects extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make()->label('Tambah Mata Pelajaran'), + Actions\CreateAction::make() + ->label('Tambah Mata Pelajaran') + ->icon('heroicon-o-user-group'), ]; } } diff --git a/app/Filament/Resources/TeacherSubjectResource.php b/app/Filament/Resources/TeacherSubjectResource.php index dcf05f0..c1bea72 100644 --- a/app/Filament/Resources/TeacherSubjectResource.php +++ b/app/Filament/Resources/TeacherSubjectResource.php @@ -112,19 +112,31 @@ class TeacherSubjectResource extends Resource ->relationship('class', 'class_name') ->searchable() ->preload(), - + Tables\Columns\TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make(), + Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (TeacherSubject $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } diff --git a/app/Filament/Resources/TeacherSubjectResource/Pages/EditTeacherSubject.php b/app/Filament/Resources/TeacherSubjectResource/Pages/EditTeacherSubject.php index 1d305c7..6f9d0fa 100644 --- a/app/Filament/Resources/TeacherSubjectResource/Pages/EditTeacherSubject.php +++ b/app/Filament/Resources/TeacherSubjectResource/Pages/EditTeacherSubject.php @@ -14,11 +14,4 @@ class EditTeacherSubject extends EditRecord { return 'Edit Guru per-Mapel'; } - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - ]; - } } diff --git a/app/Filament/Resources/TeacherSubjectResource/Pages/ListTeacherSubjects.php b/app/Filament/Resources/TeacherSubjectResource/Pages/ListTeacherSubjects.php index be9e96e..38f59bf 100644 --- a/app/Filament/Resources/TeacherSubjectResource/Pages/ListTeacherSubjects.php +++ b/app/Filament/Resources/TeacherSubjectResource/Pages/ListTeacherSubjects.php @@ -18,7 +18,9 @@ class ListTeacherSubjects extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make(), + Actions\CreateAction::make() + ->label('Tambah Guru per-Mapel') + ->icon('heroicon-o-user-group'), ]; } } diff --git a/app/Filament/Resources/UserResource.php b/app/Filament/Resources/UserResource.php index 97c6b08..1250075 100644 --- a/app/Filament/Resources/UserResource.php +++ b/app/Filament/Resources/UserResource.php @@ -109,20 +109,23 @@ class UserResource extends Resource ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('deleted_at') // Add this column to show deleted timestamp + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ - // + Tables\Filters\TrashedFilter::make()->label('Tampilkan Data yang Dihapus'), ]) ->actions([ Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\RestoreAction::make()->visible(fn (User $record) => auth()->user()->hasRole('admin') && $record->trashed()), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ -// Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), + Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('admin')), ]), - ]) - ->emptyStateActions([ - Tables\Actions\CreateAction::make(), ]); } @@ -156,4 +159,13 @@ class UserResource extends Resource { return 'Pengguna'; } + + // This method is required to apply the SoftDeletingScope to the query + public static function getEloquentQuery(): Builder + { + return parent::getEloquentQuery() + ->withoutGlobalScopes([ + SoftDeletingScope::class, + ]); + } } diff --git a/app/Filament/Resources/UserResource/Pages/EditUser.php b/app/Filament/Resources/UserResource/Pages/EditUser.php index 4917917..a10a2a8 100644 --- a/app/Filament/Resources/UserResource/Pages/EditUser.php +++ b/app/Filament/Resources/UserResource/Pages/EditUser.php @@ -13,7 +13,7 @@ class EditUser extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make(), +// Actions\DeleteAction::make(), ]; } diff --git a/app/Filament/Resources/UserResource/Pages/ListUsers.php b/app/Filament/Resources/UserResource/Pages/ListUsers.php index 7214b3c..54df6b7 100644 --- a/app/Filament/Resources/UserResource/Pages/ListUsers.php +++ b/app/Filament/Resources/UserResource/Pages/ListUsers.php @@ -18,7 +18,9 @@ class ListUsers extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make()->label('Tambah Pengguna'), + Actions\CreateAction::make() + ->label('Tambah Pengguna') + ->icon('heroicon-o-user'), ]; } } diff --git a/app/Filament/Widgets/AdminRankingWidgets.php b/app/Filament/Widgets/AdminRankingWidgets.php new file mode 100644 index 0000000..d061793 --- /dev/null +++ b/app/Filament/Widgets/AdminRankingWidgets.php @@ -0,0 +1,44 @@ +query( + Student::select('students.id', 'students.full_name') + ->join('assessments', 'students.id', '=', 'assessments.student_id') + ->selectRaw('AVG(assessments.score) as average_score') + ->groupBy('students.id', 'students.full_name') + ->orderByDesc('average_score') + ) + ->columns([ + Tables\Columns\TextColumn::make('full_name') + ->label('Nama Siswa'), + Tables\Columns\TextColumn::make('average_score') + ->label('Rata-rata Nilai') + ->sortable() + ->formatStateUsing(fn ($state) => number_format($state, 2)), + ]); + } +} diff --git a/app/Filament/Widgets/AdminStatsWidgets.php b/app/Filament/Widgets/AdminStatsWidgets.php new file mode 100644 index 0000000..d2b9f92 --- /dev/null +++ b/app/Filament/Widgets/AdminStatsWidgets.php @@ -0,0 +1,43 @@ +get() + ->toArray() + ); + + $teacher = count(User::role('teacher')->get()->toArray()); + + $classRoom = Classroom::count(); + + $subject = Subject::count(); + + $nonTeacherUser = User::whereDoesntHave('roles', function ($query) { + $query->where('name', 'teacher'); + })->count(); + + return [ + Stat::make('Total Siswa', $studnet), + Stat::make('Total Guru ', $teacher), + Stat::make('Total Kelas ', $classRoom), + Stat::make('Total Mapel ', $subject), + ]; + } +} diff --git a/app/Filament/Widgets/AdminWidgets.php b/app/Filament/Widgets/AdminWidgets.php new file mode 100644 index 0000000..286f661 --- /dev/null +++ b/app/Filament/Widgets/AdminWidgets.php @@ -0,0 +1,14 @@ + */ use HasFactory, Notifiable, HasRoles; + use SoftDeletes; /** * The attributes that are mass assignable. diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index a016cfb..45d64b5 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -2,6 +2,7 @@ namespace App\Providers\Filament; +use App\Filament\Widgets\AdminStatsWidgets; use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\AuthenticateSession; use Filament\Http\Middleware\DisableBladeIconComponents; @@ -37,8 +38,9 @@ class AdminPanelProvider extends PanelProvider ]) ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets') ->widgets([ - Widgets\AccountWidget::class, - Widgets\FilamentInfoWidget::class, +// Widgets\AccountWidget::class, +// Widgets\FilamentInfoWidget::class, + AdminStatsWidgets::class, ]) ->middleware([ EncryptCookies::class, @@ -57,6 +59,7 @@ class AdminPanelProvider extends PanelProvider ->plugins([ \BezhanSalleh\FilamentShield\FilamentShieldPlugin::make(), ]) + ->databaseNotifications() ->brandName('Sistem Akademik Sekolah'); } } diff --git a/database/migrations/0001_01_01_000000_create_users_table.php b/database/migrations/0001_01_01_000000_create_users_table.php index 941e7ce..215b9ee 100644 --- a/database/migrations/0001_01_01_000000_create_users_table.php +++ b/database/migrations/0001_01_01_000000_create_users_table.php @@ -24,6 +24,7 @@ return new class extends Migration $table->string('password'); $table->rememberToken(); $table->timestamps(); + $table->softDeletes(); }); Schema::create('password_reset_tokens', function (Blueprint $table) { diff --git a/database/migrations/2025_04_10_151020_create_subjects_table.php b/database/migrations/2025_04_10_151020_create_subjects_table.php index a4f58fc..7194c8a 100644 --- a/database/migrations/2025_04_10_151020_create_subjects_table.php +++ b/database/migrations/2025_04_10_151020_create_subjects_table.php @@ -19,6 +19,7 @@ return new class extends Migration $table->timestamps(); $table->unique(['name', 'is_religious', 'category']); + $table->softDeletes(); }); } diff --git a/database/migrations/2025_04_11_145412_create_extracurriculars_table.php b/database/migrations/2025_04_11_145412_create_extracurriculars_table.php index 7ff9632..18f879e 100644 --- a/database/migrations/2025_04_11_145412_create_extracurriculars_table.php +++ b/database/migrations/2025_04_11_145412_create_extracurriculars_table.php @@ -16,6 +16,7 @@ return new class extends Migration $table->string('name'); $table->text('description')->nullable(); $table->timestamps(); + $table->softDeletes(); }); } diff --git a/database/migrations/2025_04_13_010342_create_teacher_subjects_table.php b/database/migrations/2025_04_13_010342_create_teacher_subjects_table.php index 0a515e6..0b71252 100644 --- a/database/migrations/2025_04_13_010342_create_teacher_subjects_table.php +++ b/database/migrations/2025_04_13_010342_create_teacher_subjects_table.php @@ -20,6 +20,7 @@ return new class extends Migration $table->timestamps(); $table->unique(['teacher_id', 'subject_id', 'class_id', 'academic_year_id']); + $table->softDeletes(); }); } diff --git a/database/migrations/2025_04_13_010343_create_attendances_table.php b/database/migrations/2025_04_13_010343_create_attendances_table.php index fa90b23..0eb8dd4 100644 --- a/database/migrations/2025_04_13_010343_create_attendances_table.php +++ b/database/migrations/2025_04_13_010343_create_attendances_table.php @@ -23,6 +23,7 @@ return new class extends Migration $table->timestamps(); $table->unique(['teacher_subject_id', 'student_id', 'date', 'semester']); + $table->softDeletes(); }); } diff --git a/database/migrations/2025_04_30_125442_create_assessments_table.php b/database/migrations/2025_04_30_125442_create_assessments_table.php index 123f8a2..bef6ac4 100644 --- a/database/migrations/2025_04_30_125442_create_assessments_table.php +++ b/database/migrations/2025_04_30_125442_create_assessments_table.php @@ -20,6 +20,7 @@ return new class extends Migration $table->timestamps(); $table->unique(['teacher_subject_id', 'student_id', 'semester']); + $table->softDeletes(); }); } diff --git a/database/migrations/2025_05_15_030547_create_extracurricular_assessments_table.php b/database/migrations/2025_05_15_030547_create_extracurricular_assessments_table.php index 032d773..e22bc86 100644 --- a/database/migrations/2025_05_15_030547_create_extracurricular_assessments_table.php +++ b/database/migrations/2025_05_15_030547_create_extracurricular_assessments_table.php @@ -20,6 +20,7 @@ return new class extends Migration $table->string('semester'); $table->timestamps(); + $table->softDeletes(); }); } diff --git a/database/migrations/2025_05_25_043315_create_notifications_table.php b/database/migrations/2025_05_25_043315_create_notifications_table.php index d738032..f09da33 100644 --- a/database/migrations/2025_05_25_043315_create_notifications_table.php +++ b/database/migrations/2025_05_25_043315_create_notifications_table.php @@ -15,7 +15,7 @@ return new class extends Migration $table->uuid('id')->primary(); $table->string('type'); $table->morphs('notifiable'); - $table->text('data'); + $table->jsonb('data'); $table->timestamp('read_at')->nullable(); $table->timestamps(); }); diff --git a/database/migrations/2025_05_30_171406_create_assessment_learning_objectives_table.php b/database/migrations/2025_05_30_171406_create_assessment_learning_objectives_table.php index 1a27754..8cbb131 100644 --- a/database/migrations/2025_05_30_171406_create_assessment_learning_objectives_table.php +++ b/database/migrations/2025_05_30_171406_create_assessment_learning_objectives_table.php @@ -18,6 +18,8 @@ return new class extends Migration $table->foreignId('learning_objective_id')->constrained('learning_objectives')->onDelete('cascade'); $table->enum('type', ['highest', 'lower']); $table->timestamps(); + + $table->softDeletes(); }); } diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php index fa850f2..fb80791 100644 --- a/database/seeders/UserSeeder.php +++ b/database/seeders/UserSeeder.php @@ -70,7 +70,7 @@ class UserSeeder extends Seeder 'guard_name' => 'web', ]); - $teacher->syncPermissions($rolePermissions); +// $teacher->syncPermissions($rolePermissions); $role->syncPermissions($rolePermissions); @@ -78,8 +78,8 @@ class UserSeeder extends Seeder $admin->assignRole($role); } - if (!$user->hasRole($teacher)) { - $user->assignRole($teacher); - } +// if (!$user->hasRole($teacher)) { +// $user->assignRole($teacher); +// } } }