add notif & soft delete all table
This commit is contained in:
parent
fabe26bc09
commit
098d83c75e
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -35,13 +35,4 @@ class EditAcademicYear extends EditRecord
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
Actions\ForceDeleteAction::make(),
|
||||
Actions\RestoreAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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')),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -14,10 +14,4 @@ class EditClassRoom extends EditRecord
|
||||
{
|
||||
return 'Edit Kelas';
|
||||
}
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,9 +90,6 @@ class ClassStudentResource extends Resource
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
]),
|
||||
])
|
||||
->emptyStateActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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')),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
@ -14,11 +14,4 @@ class EditClassSubject extends EditRecord
|
||||
{
|
||||
return 'Edit Mata Pelajaran per-Kelas';
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -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(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -14,11 +14,4 @@ class EditExtracurricularAssessment extends EditRecord
|
||||
{
|
||||
return 'Edit Penilaian Ektrakurikuler';
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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')),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -14,11 +14,4 @@ class EditExtracurricular extends EditRecord
|
||||
{
|
||||
return 'Edit Ektrakuriler';
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -39,10 +39,4 @@ class EditHomeRoomTeacher extends EditRecord
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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')),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
@ -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(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -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(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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),
|
||||
];
|
||||
|
||||
@ -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(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -14,11 +14,4 @@ class EditSubject extends EditRecord
|
||||
{
|
||||
return 'Edit Mata Pelajaran';
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@ -14,11 +14,4 @@ class EditTeacherSubject extends EditRecord
|
||||
{
|
||||
return 'Edit Guru per-Mapel';
|
||||
}
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ class EditUser extends EditRecord
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
// Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -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'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
44
app/Filament/Widgets/AdminRankingWidgets.php
Normal file
44
app/Filament/Widgets/AdminRankingWidgets.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\Student;
|
||||
use Filament\Tables;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Widgets\TableWidget as BaseWidget;
|
||||
|
||||
class AdminRankingWidgets extends BaseWidget
|
||||
{
|
||||
protected static ?int $sort = 2;
|
||||
public static function canView(): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// protected int | string | array $columnSpan = 'full'; // Atur lebar widget jika perlu
|
||||
|
||||
protected function getHeading(): string
|
||||
{
|
||||
return 'Ranking';
|
||||
}
|
||||
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->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)),
|
||||
]);
|
||||
}
|
||||
}
|
||||
43
app/Filament/Widgets/AdminStatsWidgets.php
Normal file
43
app/Filament/Widgets/AdminStatsWidgets.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\ClassRoom;
|
||||
use App\Models\Student;
|
||||
use App\Models\Subject;
|
||||
use App\Models\User;
|
||||
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
|
||||
use Filament\Widgets\StatsOverviewWidget\Stat;
|
||||
|
||||
class AdminStatsWidgets extends BaseWidget
|
||||
{
|
||||
protected function getColumns(): int
|
||||
{
|
||||
return 4;
|
||||
}
|
||||
|
||||
protected function getStats(): array
|
||||
{
|
||||
$studnet = count(Student::where('is_active', true)
|
||||
->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),
|
||||
];
|
||||
}
|
||||
}
|
||||
14
app/Filament/Widgets/AdminWidgets.php
Normal file
14
app/Filament/Widgets/AdminWidgets.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Widgets;
|
||||
|
||||
use App\Models\ClassRoom;
|
||||
use App\Models\Student;
|
||||
use App\Models\Subject;
|
||||
use App\Models\User;
|
||||
use Filament\Widgets\StatsOverviewWidget as BaseWidget;
|
||||
use Filament\Widgets\StatsOverviewWidget\Stat;
|
||||
|
||||
class AdminWidgets extends BaseWidget
|
||||
{
|
||||
}
|
||||
@ -3,9 +3,12 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Assessment extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $fillable = [
|
||||
'teacher_subject_id',
|
||||
'student_id',
|
||||
|
||||
@ -4,9 +4,12 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class AssessmentLearningObjective extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $fillable = [
|
||||
'teacher_subject_id',
|
||||
'student_id',
|
||||
|
||||
@ -3,9 +3,12 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Attendances extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $fillable = ['student_id', 'teacher_subject_id', 'date', 'status', 'recorded_by', 'semester', 'notes'];
|
||||
|
||||
public function student()
|
||||
|
||||
@ -5,9 +5,12 @@ namespace App\Models;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class ClassSubject extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $fillable = ['class_room_id', 'subject_id', 'academic_year_id'];
|
||||
|
||||
public function subject(): BelongsTo
|
||||
|
||||
@ -3,9 +3,11 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Extracurricular extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
protected $fillable = ['name', 'description'];
|
||||
|
||||
public function assessments()
|
||||
|
||||
@ -3,9 +3,12 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class ExtracurricularAssessment extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $fillable = [
|
||||
'class_student_id',
|
||||
'extracurricular_id',
|
||||
|
||||
@ -3,9 +3,12 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Student extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $fillable = [
|
||||
'nis',
|
||||
'nisn',
|
||||
|
||||
@ -4,9 +4,12 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Subject extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $fillable = ['name', 'is_religious', 'category'];
|
||||
|
||||
public function scopes()
|
||||
|
||||
@ -5,9 +5,12 @@ namespace App\Models;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class TeacherSubject extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $fillable = ['teacher_id', 'subject_id', 'class_id', 'academic_year_id'];
|
||||
|
||||
public function teacher(): BelongsTo
|
||||
|
||||
@ -7,6 +7,7 @@ use Filament\Models\Contracts\FilamentUser;
|
||||
use Filament\Panel;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Spatie\Permission\Traits\HasRoles;
|
||||
@ -15,6 +16,7 @@ class User extends Authenticatable implements FilamentUser
|
||||
{
|
||||
/** @use HasFactory<\Database\Factories\UserFactory> */
|
||||
use HasFactory, Notifiable, HasRoles;
|
||||
use SoftDeletes;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
|
||||
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -19,6 +19,7 @@ return new class extends Migration
|
||||
$table->timestamps();
|
||||
|
||||
$table->unique(['name', 'is_religious', 'category']);
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ return new class extends Migration
|
||||
$table->string('name');
|
||||
$table->text('description')->nullable();
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ return new class extends Migration
|
||||
$table->timestamps();
|
||||
|
||||
$table->unique(['teacher_id', 'subject_id', 'class_id', 'academic_year_id']);
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -23,6 +23,7 @@ return new class extends Migration
|
||||
$table->timestamps();
|
||||
|
||||
$table->unique(['teacher_subject_id', 'student_id', 'date', 'semester']);
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ return new class extends Migration
|
||||
$table->timestamps();
|
||||
|
||||
$table->unique(['teacher_subject_id', 'student_id', 'semester']);
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ return new class extends Migration
|
||||
$table->string('semester');
|
||||
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
});
|
||||
|
||||
@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user