commit
38d381b388
@ -7,6 +7,7 @@ use App\Models\Assessment;
|
|||||||
use App\Models\ClassRoom;
|
use App\Models\ClassRoom;
|
||||||
use App\Models\ClassStudent;
|
use App\Models\ClassStudent;
|
||||||
use App\Models\ClassSubject;
|
use App\Models\ClassSubject;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use App\Models\Student;
|
use App\Models\Student;
|
||||||
use App\Models\Subject;
|
use App\Models\Subject;
|
||||||
use App\Models\TeacherSubject;
|
use App\Models\TeacherSubject;
|
||||||
@ -32,12 +33,26 @@ class StudentReport extends Page
|
|||||||
|
|
||||||
public static function canAccess(): bool
|
public static function canAccess(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->hasAnyRole(['super_admin']);
|
$user = auth()->user();
|
||||||
|
$isTeacher = false;
|
||||||
|
$homeRoomTeacher = HomeRoomTeacher::where('teacher_id', $user->id)->first();
|
||||||
|
if ($homeRoomTeacher) {
|
||||||
|
$isTeacher = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return auth()->user()->hasAnyRole(['super_admin']) || auth()->user()->hasAnyRole(['headmaster']) || $isTeacher;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function shouldRegisterNavigation(): bool
|
public static function shouldRegisterNavigation(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->hasAnyRole(['super_admin']);
|
$user = auth()->user();
|
||||||
|
$isTeacher = false;
|
||||||
|
$homeRoomTeacher = HomeRoomTeacher::where('teacher_id', $user->id)->first();
|
||||||
|
if ($homeRoomTeacher) {
|
||||||
|
$isTeacher = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return auth()->user()->hasAnyRole(['super_admin']) || auth()->user()->hasAnyRole(['headmaster']) || $isTeacher;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function mount(): void
|
public function mount(): void
|
||||||
@ -51,12 +66,36 @@ class StudentReport extends Page
|
|||||||
public function form(Form $form): Form
|
public function form(Form $form): Form
|
||||||
{
|
{
|
||||||
return $form->schema([
|
return $form->schema([
|
||||||
|
// Select::make('class_id')
|
||||||
|
// ->label('Class')
|
||||||
|
// ->required()
|
||||||
|
// ->options(ClassRoom::pluck('class_name', 'id')->toArray())
|
||||||
|
// ->searchable()
|
||||||
|
// ->reactive()
|
||||||
|
// ->afterStateUpdated(function ($state) {
|
||||||
|
// $this->class_id = $state;
|
||||||
|
// $this->data['class_id'] = $state; // Update data array
|
||||||
|
// $this->loadData();
|
||||||
|
// }),
|
||||||
Select::make('class_id')
|
Select::make('class_id')
|
||||||
->label('Class')
|
->label('Class')
|
||||||
->required()
|
->required()
|
||||||
->options(ClassRoom::pluck('class_name', 'id')->toArray())
|
->options(function () {
|
||||||
|
$query = ClassRoom::query();
|
||||||
|
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
if ($user->hasAnyRole(['teacher'])) {
|
||||||
|
$homeRoomTeacher = HomeRoomTeacher::where('teacher_id', $user->id)->first();
|
||||||
|
if ($homeRoomTeacher) {
|
||||||
|
$query->where('id', $homeRoomTeacher->class_room_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->pluck('class_name', 'id')->toArray();
|
||||||
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->reactive()
|
->native(false)
|
||||||
->afterStateUpdated(function ($state) {
|
->afterStateUpdated(function ($state) {
|
||||||
$this->class_id = $state;
|
$this->class_id = $state;
|
||||||
$this->data['class_id'] = $state; // Update data array
|
$this->data['class_id'] = $state; // Update data array
|
||||||
|
|||||||
@ -7,6 +7,7 @@ use App\Filament\Resources\AcademicYearResource\RelationManagers;
|
|||||||
use App\Models\AcademicYear;
|
use App\Models\AcademicYear;
|
||||||
use Filament\Forms;
|
use Filament\Forms;
|
||||||
use Filament\Forms\Form;
|
use Filament\Forms\Form;
|
||||||
|
use Filament\Notifications\Notification;
|
||||||
use Filament\Resources\Resource;
|
use Filament\Resources\Resource;
|
||||||
use Filament\Tables;
|
use Filament\Tables;
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
@ -41,7 +42,9 @@ class AcademicYearResource extends Resource
|
|||||||
return $table
|
return $table
|
||||||
->columns([
|
->columns([
|
||||||
Tables\Columns\TextColumn::make('name')
|
Tables\Columns\TextColumn::make('name')
|
||||||
->searchable(),
|
->searchable()
|
||||||
|
->weight(fn (AcademicYear $record) => $record->is_active ? 'bold' : 'normal')
|
||||||
|
->color(fn (AcademicYear $record) => $record->is_active ? 'success' : null),
|
||||||
Tables\Columns\IconColumn::make('is_active')
|
Tables\Columns\IconColumn::make('is_active')
|
||||||
->boolean(),
|
->boolean(),
|
||||||
Tables\Columns\TextColumn::make('start_date')
|
Tables\Columns\TextColumn::make('start_date')
|
||||||
@ -68,6 +71,22 @@ class AcademicYearResource extends Resource
|
|||||||
])
|
])
|
||||||
->actions([
|
->actions([
|
||||||
Tables\Actions\EditAction::make(),
|
Tables\Actions\EditAction::make(),
|
||||||
|
Tables\Actions\Action::make('toggleActive')
|
||||||
|
->label('Toggle Active')
|
||||||
|
->icon('heroicon-o-power')
|
||||||
|
->action(function (AcademicYear $record) {
|
||||||
|
// If setting to active, deactivate all others
|
||||||
|
if ($record->is_active) {
|
||||||
|
Notification::make()
|
||||||
|
->title('Info')
|
||||||
|
->body('The school year is active')
|
||||||
|
->info()
|
||||||
|
->send();
|
||||||
|
} else {
|
||||||
|
AcademicYear::where('is_active', true)->update(['is_active' => false]);
|
||||||
|
$record->update(['is_active' => true]);
|
||||||
|
}
|
||||||
|
}),
|
||||||
])
|
])
|
||||||
->bulkActions([
|
->bulkActions([
|
||||||
Tables\Actions\BulkActionGroup::make([
|
Tables\Actions\BulkActionGroup::make([
|
||||||
|
|||||||
@ -7,9 +7,11 @@ use App\Filament\Resources\AssessmentResource\RelationManagers;
|
|||||||
use App\Models\Assessment;
|
use App\Models\Assessment;
|
||||||
use App\Models\AssessmentComponent;
|
use App\Models\AssessmentComponent;
|
||||||
use App\Models\ClassStudent;
|
use App\Models\ClassStudent;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use App\Models\Student;
|
use App\Models\Student;
|
||||||
use App\Models\TeacherSubject;
|
use App\Models\TeacherSubject;
|
||||||
use Filament\Forms;
|
use Filament\Forms;
|
||||||
|
use Filament\Forms\Components\Select;
|
||||||
use Filament\Forms\Form;
|
use Filament\Forms\Form;
|
||||||
use Filament\Resources\Resource;
|
use Filament\Resources\Resource;
|
||||||
use Filament\Tables;
|
use Filament\Tables;
|
||||||
@ -29,14 +31,56 @@ class AssessmentResource extends Resource
|
|||||||
{
|
{
|
||||||
return $form
|
return $form
|
||||||
->schema([
|
->schema([
|
||||||
Forms\Components\Select::make('teacher_subject_id')
|
// Forms\Components\Select::make('teacher_subject_id')
|
||||||
|
// ->label('Teacher Subject')
|
||||||
|
// ->required()
|
||||||
|
// ->relationship('teacherSubject', 'id')
|
||||||
|
// ->getOptionLabelFromRecordUsing(fn (TeacherSubject $record) =>
|
||||||
|
// $record->teacher->name . ' - ' . $record->subject->name . ' - ' . $record->class->class_name . ' - ' . $record->academicYear->name)
|
||||||
|
// ->searchable()
|
||||||
|
// ->preload()
|
||||||
|
// ->afterStateUpdated(function (callable $set, $state) {
|
||||||
|
// if ($state) {
|
||||||
|
// $teacherSubject = TeacherSubject::find($state);
|
||||||
|
// if ($teacherSubject) {
|
||||||
|
// $set('student_id', null);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// ->required(),
|
||||||
|
|
||||||
|
Select::make('teacher_subject_id')
|
||||||
->label('Teacher Subject')
|
->label('Teacher Subject')
|
||||||
->required()
|
->required()
|
||||||
->relationship('teacherSubject', 'id')
|
->options(function () {
|
||||||
->getOptionLabelFromRecordUsing(fn (TeacherSubject $record) =>
|
$user = auth()->user();
|
||||||
$record->teacher->name . ' - ' . $record->subject->name . ' - ' . $record->class->class_name . ' - ' . $record->academicYear->name)
|
$query = TeacherSubject::with(['teacher', 'subject', 'class', 'academicYear']);
|
||||||
|
|
||||||
|
if ($user->hasRole('teacher')) {
|
||||||
|
// Ambil ID kelas dimana user menjadi wali kelas
|
||||||
|
$homeRoomClassIds = HomeRoomTeacher::where('teacher_id', $user->id)
|
||||||
|
->pluck('class_room_id')
|
||||||
|
->toArray();
|
||||||
|
|
||||||
|
$query->where(function($q) use ($user, $homeRoomClassIds) {
|
||||||
|
// Mata pelajaran yang diajarkan oleh guru ini
|
||||||
|
$q->where('teacher_id', $user->id)
|
||||||
|
// ATAU kelas dimana dia menjadi wali kelas
|
||||||
|
->orWhereIn('class_id', $homeRoomClassIds);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->get()->mapWithKeys(fn ($item) => [
|
||||||
|
$item->id => sprintf('%s - %s - %s - %s',
|
||||||
|
$item->teacher->name,
|
||||||
|
$item->subject->name,
|
||||||
|
$item->class->class_name,
|
||||||
|
$item->academicYear->name
|
||||||
|
)
|
||||||
|
]);
|
||||||
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->preload()
|
->live()
|
||||||
->afterStateUpdated(function (callable $set, $state) {
|
->afterStateUpdated(function (callable $set, $state) {
|
||||||
if ($state) {
|
if ($state) {
|
||||||
$teacherSubject = TeacherSubject::find($state);
|
$teacherSubject = TeacherSubject::find($state);
|
||||||
@ -44,8 +88,7 @@ class AssessmentResource extends Resource
|
|||||||
$set('student_id', null);
|
$set('student_id', null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
}),
|
||||||
->required(),
|
|
||||||
|
|
||||||
Forms\Components\Select::make('student_id')
|
Forms\Components\Select::make('student_id')
|
||||||
->label('Student')
|
->label('Student')
|
||||||
@ -128,7 +171,7 @@ class AssessmentResource extends Resource
|
|||||||
])
|
])
|
||||||
->bulkActions([
|
->bulkActions([
|
||||||
Tables\Actions\BulkActionGroup::make([
|
Tables\Actions\BulkActionGroup::make([
|
||||||
Tables\Actions\DeleteBulkAction::make(),
|
Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('super_admin') || auth()->user()->hasRole('teacher')),
|
||||||
]),
|
]),
|
||||||
])
|
])
|
||||||
->emptyStateActions([
|
->emptyStateActions([
|
||||||
|
|||||||
@ -3,21 +3,43 @@
|
|||||||
namespace App\Filament\Resources\AssessmentResource\Pages;
|
namespace App\Filament\Resources\AssessmentResource\Pages;
|
||||||
|
|
||||||
use App\Filament\Resources\AssessmentResource;
|
use App\Filament\Resources\AssessmentResource;
|
||||||
|
use App\Models\Assessment;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use Filament\Actions;
|
use Filament\Actions;
|
||||||
use Filament\Resources\Pages\ListRecords;
|
use Filament\Resources\Pages\ListRecords;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class ListAssessments extends ListRecords
|
class ListAssessments extends ListRecords
|
||||||
{
|
{
|
||||||
protected static string $resource = AssessmentResource::class;
|
protected static string $resource = AssessmentResource::class;
|
||||||
|
|
||||||
|
protected function getTableQuery(): Builder
|
||||||
|
{
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
if ($user->hasRole('teacher')) {
|
||||||
|
$homeRoomClassIds = HomeRoomTeacher::where('teacher_id', $user->id)
|
||||||
|
->pluck('class_room_id')
|
||||||
|
->toArray();
|
||||||
|
return Assessment::with('teacherSubject', 'student')
|
||||||
|
->whereHas('teacherSubject', function (Builder $query) use ($homeRoomClassIds, $user) {
|
||||||
|
$query->where('teacher_id', $user->id)
|
||||||
|
->orWhereIn('class_id', $homeRoomClassIds);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return Assessment::query();
|
||||||
|
}
|
||||||
|
|
||||||
protected function getHeaderActions(): array
|
protected function getHeaderActions(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
Actions\CreateAction::make(),
|
Actions\CreateAction::make()->visible(fn () => auth()->user()->hasRole('super_admin')),
|
||||||
Actions\Action::make('multiple')
|
Actions\Action::make('multiple')
|
||||||
->label('Multiple Assessments')
|
->label('Multiple Assessments')
|
||||||
->url('assessments/multiple')
|
->url('assessments/multiple')
|
||||||
->icon('heroicon-o-user-group'),
|
->icon('heroicon-o-user-group')
|
||||||
|
->visible(fn () => auth()->user()->hasRole('super_admin') || auth()->user()->hasRole('teacher')),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ use App\Filament\Resources\AssessmentResource;
|
|||||||
use App\Models\Assessment;
|
use App\Models\Assessment;
|
||||||
use App\Models\Attendances;
|
use App\Models\Attendances;
|
||||||
use App\Models\ClassStudent;
|
use App\Models\ClassStudent;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use Filament\Actions;
|
use Filament\Actions;
|
||||||
use Filament\Forms\Components\Select;
|
use Filament\Forms\Components\Select;
|
||||||
use Filament\Resources\Pages\page;
|
use Filament\Resources\Pages\page;
|
||||||
@ -43,17 +44,51 @@ class MultipleAssessments extends page
|
|||||||
return [
|
return [
|
||||||
Forms\Components\Grid::make(2)
|
Forms\Components\Grid::make(2)
|
||||||
->schema([
|
->schema([
|
||||||
Forms\Components\Select::make('teacherSubjectId')
|
// Forms\Components\Select::make('teacherSubjectId')
|
||||||
|
// ->label('Teacher Subject')
|
||||||
|
// ->options(
|
||||||
|
// TeacherSubject::with(['teacher', 'subject', 'class', 'academicYear'])->get()->mapWithKeys(function ($item) {
|
||||||
|
// return [
|
||||||
|
// $item->id => "{$item->teacher->name} - {$item->subject->name} - {$item->class->class_name} - {$item->academicYear->name}"
|
||||||
|
// ];
|
||||||
|
// })->toArray()
|
||||||
|
// )
|
||||||
|
// ->searchable()
|
||||||
|
// ->reactive()
|
||||||
|
// ->afterStateUpdated(function ($state) {
|
||||||
|
// $this->teacherSubjectId = $state;
|
||||||
|
// $this->loadStudents();
|
||||||
|
// }),
|
||||||
|
|
||||||
|
Select::make('teacherSubjectId')
|
||||||
->label('Teacher Subject')
|
->label('Teacher Subject')
|
||||||
->options(
|
->required()
|
||||||
TeacherSubject::with(['teacher', 'subject', 'class', 'academicYear'])->get()->mapWithKeys(function ($item) {
|
->options(function () {
|
||||||
return [
|
$user = auth()->user();
|
||||||
$item->id => "{$item->teacher->name} - {$item->subject->name} - {$item->class->class_name} - {$item->academicYear->name}"
|
$query = TeacherSubject::with(['teacher', 'subject', 'class', 'academicYear']);
|
||||||
];
|
|
||||||
})->toArray()
|
if ($user->hasRole('teacher')) {
|
||||||
|
$homeRoomClassIds = HomeRoomTeacher::where('teacher_id', $user->id)
|
||||||
|
->pluck('class_room_id')
|
||||||
|
->toArray();
|
||||||
|
|
||||||
|
$query->where(function($q) use ($user, $homeRoomClassIds) {
|
||||||
|
$q->where('teacher_id', $user->id)
|
||||||
|
->orWhereIn('class_id', $homeRoomClassIds);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->get()->mapWithKeys(fn ($item) => [
|
||||||
|
$item->id => sprintf('%s - %s - %s - %s',
|
||||||
|
$item->teacher->name,
|
||||||
|
$item->subject->name,
|
||||||
|
$item->class->class_name,
|
||||||
|
$item->academicYear->name
|
||||||
)
|
)
|
||||||
|
]);
|
||||||
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->reactive()
|
->live()
|
||||||
->afterStateUpdated(function ($state) {
|
->afterStateUpdated(function ($state) {
|
||||||
$this->teacherSubjectId = $state;
|
$this->teacherSubjectId = $state;
|
||||||
$this->loadStudents();
|
$this->loadStudents();
|
||||||
|
|||||||
@ -6,11 +6,13 @@ use App\Filament\Resources\AttendancesResource\Pages;
|
|||||||
use App\Models\Attendances;
|
use App\Models\Attendances;
|
||||||
use App\Models\ClassRoom;
|
use App\Models\ClassRoom;
|
||||||
use App\Models\ClassStudent;
|
use App\Models\ClassStudent;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use App\Models\Student;
|
use App\Models\Student;
|
||||||
use App\Models\Subject;
|
use App\Models\Subject;
|
||||||
use App\Models\TeacherSubject;
|
use App\Models\TeacherSubject;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Filament\Forms;
|
use Filament\Forms;
|
||||||
|
use Filament\Forms\Components\Select;
|
||||||
use Filament\Forms\Form;
|
use Filament\Forms\Form;
|
||||||
use Filament\Resources\Resource;
|
use Filament\Resources\Resource;
|
||||||
use Filament\Tables;
|
use Filament\Tables;
|
||||||
@ -29,14 +31,38 @@ class AttendancesResource extends Resource
|
|||||||
->schema([
|
->schema([
|
||||||
Forms\Components\Section::make('Data Absensi')
|
Forms\Components\Section::make('Data Absensi')
|
||||||
->schema([
|
->schema([
|
||||||
Forms\Components\Select::make('teacher_subject_id')
|
Select::make('teacher_subject_id')
|
||||||
->label('Teacher Subject')
|
->label('Teacher Subject')
|
||||||
->required()
|
->required()
|
||||||
->relationship('teacherSubject', 'id')
|
->options(function () {
|
||||||
->getOptionLabelFromRecordUsing(fn (TeacherSubject $record) =>
|
$user = auth()->user();
|
||||||
$record->teacher->name . ' - ' . $record->subject->name . ' - ' . $record->class->class_name . ' - ' . $record->academicYear->name)
|
$query = TeacherSubject::with(['teacher', 'subject', 'class', 'academicYear']);
|
||||||
|
|
||||||
|
if ($user->hasRole('teacher')) {
|
||||||
|
// Ambil ID kelas dimana user menjadi wali kelas
|
||||||
|
$homeRoomClassIds = HomeRoomTeacher::where('teacher_id', $user->id)
|
||||||
|
->pluck('class_room_id')
|
||||||
|
->toArray();
|
||||||
|
|
||||||
|
$query->where(function($q) use ($user, $homeRoomClassIds) {
|
||||||
|
// Mata pelajaran yang diajarkan oleh guru ini
|
||||||
|
$q->where('teacher_id', $user->id)
|
||||||
|
// ATAU kelas dimana dia menjadi wali kelas
|
||||||
|
->orWhereIn('class_id', $homeRoomClassIds);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->get()->mapWithKeys(fn ($item) => [
|
||||||
|
$item->id => sprintf('%s - %s - %s - %s',
|
||||||
|
$item->teacher->name,
|
||||||
|
$item->subject->name,
|
||||||
|
$item->class->class_name,
|
||||||
|
$item->academicYear->name
|
||||||
|
)
|
||||||
|
]);
|
||||||
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->preload()
|
->live()
|
||||||
->afterStateUpdated(function (callable $set, $state) {
|
->afterStateUpdated(function (callable $set, $state) {
|
||||||
if ($state) {
|
if ($state) {
|
||||||
$teacherSubject = TeacherSubject::find($state);
|
$teacherSubject = TeacherSubject::find($state);
|
||||||
@ -53,7 +79,7 @@ class AttendancesResource extends Resource
|
|||||||
->default(now())
|
->default(now())
|
||||||
->live(),
|
->live(),
|
||||||
|
|
||||||
Forms\Components\Select::make('student_id')
|
Select::make('student_id')
|
||||||
->label('Student')
|
->label('Student')
|
||||||
->required()
|
->required()
|
||||||
->searchable()
|
->searchable()
|
||||||
@ -77,7 +103,7 @@ class AttendancesResource extends Resource
|
|||||||
return $student ? $student->full_name . ' (' . $student->nis . ')' : null;
|
return $student ? $student->full_name . ' (' . $student->nis . ')' : null;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
Forms\Components\Select::make('semester')
|
Select::make('semester')
|
||||||
->label('Semester')
|
->label('Semester')
|
||||||
->required()
|
->required()
|
||||||
->options([
|
->options([
|
||||||
@ -85,7 +111,7 @@ class AttendancesResource extends Resource
|
|||||||
'second' => 'Second Semester'
|
'second' => 'Second Semester'
|
||||||
]),
|
]),
|
||||||
|
|
||||||
Forms\Components\Select::make('status')
|
Select::make('status')
|
||||||
->label('Status')
|
->label('Status')
|
||||||
->required()
|
->required()
|
||||||
->options([
|
->options([
|
||||||
@ -161,10 +187,6 @@ class AttendancesResource extends Resource
|
|||||||
Tables\Columns\TextColumn::make('recorder.name')
|
Tables\Columns\TextColumn::make('recorder.name')
|
||||||
->label('Record by')
|
->label('Record by')
|
||||||
->toggleable(),
|
->toggleable(),
|
||||||
|
|
||||||
Tables\Columns\TextColumn::make('notes')
|
|
||||||
->label('Notes')
|
|
||||||
->toggleable()
|
|
||||||
])
|
])
|
||||||
->filters([
|
->filters([
|
||||||
Tables\Filters\SelectFilter::make('status')
|
Tables\Filters\SelectFilter::make('status')
|
||||||
@ -218,12 +240,9 @@ class AttendancesResource extends Resource
|
|||||||
])
|
])
|
||||||
->bulkActions([
|
->bulkActions([
|
||||||
Tables\Actions\BulkActionGroup::make([
|
Tables\Actions\BulkActionGroup::make([
|
||||||
Tables\Actions\DeleteBulkAction::make(),
|
Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('super_admin') || auth()->user()->hasRole('teacher')),
|
||||||
]),
|
]),
|
||||||
])
|
])
|
||||||
->emptyStateActions([
|
|
||||||
Tables\Actions\CreateAction::make(),
|
|
||||||
])
|
|
||||||
->defaultSort('date', 'desc')
|
->defaultSort('date', 'desc')
|
||||||
->groups([
|
->groups([
|
||||||
Tables\Grouping\Group::make('date')
|
Tables\Grouping\Group::make('date')
|
||||||
|
|||||||
@ -3,21 +3,43 @@
|
|||||||
namespace App\Filament\Resources\AttendancesResource\Pages;
|
namespace App\Filament\Resources\AttendancesResource\Pages;
|
||||||
|
|
||||||
use App\Filament\Resources\AttendancesResource;
|
use App\Filament\Resources\AttendancesResource;
|
||||||
|
use App\Models\Attendances;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use Filament\Actions;
|
use Filament\Actions;
|
||||||
use Filament\Resources\Pages\ListRecords;
|
use Filament\Resources\Pages\ListRecords;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class ListAttendances extends ListRecords
|
class ListAttendances extends ListRecords
|
||||||
{
|
{
|
||||||
protected static string $resource = AttendancesResource::class;
|
protected static string $resource = AttendancesResource::class;
|
||||||
|
|
||||||
|
protected function getTableQuery(): ?Builder
|
||||||
|
{
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
if ($user->hasRole('teacher')) {
|
||||||
|
$homeRoomClassIds = HomeRoomTeacher::where('teacher_id', $user->id)
|
||||||
|
->pluck('class_room_id')
|
||||||
|
->toArray();
|
||||||
|
return Attendances::with('teacherSubject', 'student')
|
||||||
|
->whereHas('teacherSubject', function (Builder $query) use ($homeRoomClassIds, $user) {
|
||||||
|
$query->where('teacher_id', $user->id)
|
||||||
|
->orWhereIn('class_id', $homeRoomClassIds);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return Attendances::query();
|
||||||
|
}
|
||||||
|
|
||||||
protected function getHeaderActions(): array
|
protected function getHeaderActions(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
Actions\CreateAction::make(),
|
Actions\CreateAction::make()->visible(fn () => auth()->user()->hasRole('super_admin')),
|
||||||
Actions\Action::make('multiple')
|
Actions\Action::make('multiple')
|
||||||
->label('Multiple Attendance')
|
->label('Multiple Attendance')
|
||||||
->url('attendances/multiple')
|
->url('attendances/multiple')
|
||||||
->icon('heroicon-o-user-group'),
|
->icon('heroicon-o-user-group')
|
||||||
|
->visible(fn () => auth()->user()->hasRole('super_admin') || auth()->user()->hasRole('teacher')),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ use App\Models\Assessment;
|
|||||||
use App\Models\Attendances;
|
use App\Models\Attendances;
|
||||||
use App\Models\ClassRoom;
|
use App\Models\ClassRoom;
|
||||||
use App\Models\ClassStudent;
|
use App\Models\ClassStudent;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use App\Models\Student;
|
use App\Models\Student;
|
||||||
use App\Models\TeacherSubject;
|
use App\Models\TeacherSubject;
|
||||||
use Filament\Actions;
|
use Filament\Actions;
|
||||||
@ -48,11 +49,33 @@ class MultipleAttendances extends Page
|
|||||||
Select::make('teacher_subject_id')
|
Select::make('teacher_subject_id')
|
||||||
->label('Teacher Subject')
|
->label('Teacher Subject')
|
||||||
->required()
|
->required()
|
||||||
->options(TeacherSubject::with(['teacher', 'subject', 'class'])
|
->options(function () {
|
||||||
->get()
|
$user = auth()->user();
|
||||||
->mapWithKeys(fn ($item) => [
|
$query = TeacherSubject::with(['teacher', 'subject', 'class', 'academicYear']);
|
||||||
$item->id => $item->teacher->name . ' - ' . $item->subject->name . ' - ' . $item->class->class_name . ' - ' . $item->academicYear->name
|
|
||||||
]))
|
if ($user->hasRole('teacher')) {
|
||||||
|
// Ambil ID kelas dimana user menjadi wali kelas
|
||||||
|
$homeRoomClassIds = HomeRoomTeacher::where('teacher_id', $user->id)
|
||||||
|
->pluck('class_room_id')
|
||||||
|
->toArray();
|
||||||
|
|
||||||
|
$query->where(function($q) use ($user, $homeRoomClassIds) {
|
||||||
|
// Mata pelajaran yang diajarkan oleh guru ini
|
||||||
|
$q->where('teacher_id', $user->id)
|
||||||
|
// ATAU kelas dimana dia menjadi wali kelas
|
||||||
|
->orWhereIn('class_id', $homeRoomClassIds);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->get()->mapWithKeys(fn ($item) => [
|
||||||
|
$item->id => sprintf('%s - %s - %s - %s',
|
||||||
|
$item->teacher->name,
|
||||||
|
$item->subject->name,
|
||||||
|
$item->class->class_name,
|
||||||
|
$item->academicYear->name
|
||||||
|
)
|
||||||
|
]);
|
||||||
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->live()
|
->live()
|
||||||
->afterStateUpdated(function ($state) {
|
->afterStateUpdated(function ($state) {
|
||||||
@ -135,28 +158,6 @@ class MultipleAttendances extends Page
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->students = $result;
|
$this->students = $result;
|
||||||
|
|
||||||
// $this->students = ClassStudent::where('class_room_id', $this->teacherSubjectId)
|
|
||||||
// ->where('academic_year_id', $this->teacherSubject->academic_year_id)
|
|
||||||
// ->with('student')
|
|
||||||
// ->get()
|
|
||||||
// ->map(function ($student) {
|
|
||||||
// $existingAttendance = Attendances::where('student_id', $student->student_id)
|
|
||||||
// ->where('teacher_subject_id', $this->teacherSubjectId)
|
|
||||||
// ->whereDate('date', $this->attendanceDate)
|
|
||||||
// ->where('semester', $this->semester)
|
|
||||||
// ->first();
|
|
||||||
//
|
|
||||||
// return [
|
|
||||||
// 'id' => $student->student->id,
|
|
||||||
// 'name' => $student->student->full_name,
|
|
||||||
// 'nis' => $student->student->nis,
|
|
||||||
// 'status' => $existingAttendance ? $existingAttendance->status : null,
|
|
||||||
// 'attendance_id' => $existingAttendance ? $existingAttendance->id : null,
|
|
||||||
// ];
|
|
||||||
// })
|
|
||||||
// ->values()
|
|
||||||
// ->toArray();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function markAll($status): void
|
public function markAll($status): void
|
||||||
|
|||||||
@ -6,6 +6,7 @@ use App\Filament\Resources\CompetencyAchievementResource\Pages;
|
|||||||
use App\Filament\Resources\CompetencyAchievementResource\RelationManagers;
|
use App\Filament\Resources\CompetencyAchievementResource\RelationManagers;
|
||||||
use App\Models\ClassRoom;
|
use App\Models\ClassRoom;
|
||||||
use App\Models\CompetencyAchievement;
|
use App\Models\CompetencyAchievement;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use App\Models\Subject;
|
use App\Models\Subject;
|
||||||
use Filament\Forms;
|
use Filament\Forms;
|
||||||
use Filament\Forms\Form;
|
use Filament\Forms\Form;
|
||||||
@ -35,7 +36,20 @@ class CompetencyAchievementResource extends Resource
|
|||||||
Forms\Components\Select::make('class_room_id')
|
Forms\Components\Select::make('class_room_id')
|
||||||
->label('Class')
|
->label('Class')
|
||||||
->required()
|
->required()
|
||||||
->options(ClassRoom::pluck('class_name', 'id')->toArray())
|
->options(function () {
|
||||||
|
$query = ClassRoom::query();
|
||||||
|
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
if ($user->hasAnyRole(['teacher'])) {
|
||||||
|
$homeRoomTeacher = HomeRoomTeacher::where('teacher_id', $user->id)->first();
|
||||||
|
if ($homeRoomTeacher) {
|
||||||
|
$query->where('id', $homeRoomTeacher->class_room_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->pluck('class_name', 'id')->toArray();
|
||||||
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->native(false),
|
->native(false),
|
||||||
|
|
||||||
@ -87,7 +101,7 @@ class CompetencyAchievementResource extends Resource
|
|||||||
])
|
])
|
||||||
->bulkActions([
|
->bulkActions([
|
||||||
Tables\Actions\BulkActionGroup::make([
|
Tables\Actions\BulkActionGroup::make([
|
||||||
Tables\Actions\DeleteBulkAction::make(),
|
Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('super_admin') || auth()->user()->hasRole('teacher')),
|
||||||
]),
|
]),
|
||||||
])
|
])
|
||||||
->emptyStateActions([
|
->emptyStateActions([
|
||||||
|
|||||||
@ -3,13 +3,30 @@
|
|||||||
namespace App\Filament\Resources\CompetencyAchievementResource\Pages;
|
namespace App\Filament\Resources\CompetencyAchievementResource\Pages;
|
||||||
|
|
||||||
use App\Filament\Resources\CompetencyAchievementResource;
|
use App\Filament\Resources\CompetencyAchievementResource;
|
||||||
|
use App\Models\CompetencyAchievement;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use Filament\Actions;
|
use Filament\Actions;
|
||||||
use Filament\Resources\Pages\ListRecords;
|
use Filament\Resources\Pages\ListRecords;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class ListCompetencyAchievements extends ListRecords
|
class ListCompetencyAchievements extends ListRecords
|
||||||
{
|
{
|
||||||
protected static string $resource = CompetencyAchievementResource::class;
|
protected static string $resource = CompetencyAchievementResource::class;
|
||||||
|
|
||||||
|
protected function getTableQuery(): Builder
|
||||||
|
{
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
if ($user->hasRole('teacher')) {
|
||||||
|
$homeRoomTeacher = HomeRoomTeacher::where('teacher_id', $user->id)->firstOrFail();
|
||||||
|
if ($homeRoomTeacher) {
|
||||||
|
return CompetencyAchievement::where('class_room_id', $homeRoomTeacher->class_room_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return CompetencyAchievement::query();
|
||||||
|
}
|
||||||
|
|
||||||
protected function getHeaderActions(): array
|
protected function getHeaderActions(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
|||||||
@ -7,14 +7,12 @@ use App\Filament\Resources\ExtracurricularAssessmentResource\RelationManagers;
|
|||||||
use App\Models\ClassStudent;
|
use App\Models\ClassStudent;
|
||||||
use App\Models\Extracurricular;
|
use App\Models\Extracurricular;
|
||||||
use App\Models\ExtracurricularAssessment;
|
use App\Models\ExtracurricularAssessment;
|
||||||
use App\Models\TeacherSubject;
|
use App\Models\HomeRoomTeacher;
|
||||||
use Filament\Forms;
|
use Filament\Forms;
|
||||||
use Filament\Forms\Form;
|
use Filament\Forms\Form;
|
||||||
use Filament\Resources\Resource;
|
use Filament\Resources\Resource;
|
||||||
use Filament\Tables;
|
use Filament\Tables;
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
|
||||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
|
||||||
|
|
||||||
class ExtracurricularAssessmentResource extends Resource
|
class ExtracurricularAssessmentResource extends Resource
|
||||||
{
|
{
|
||||||
@ -27,14 +25,36 @@ class ExtracurricularAssessmentResource extends Resource
|
|||||||
public static function form(Form $form): Form
|
public static function form(Form $form): Form
|
||||||
{
|
{
|
||||||
return $form
|
return $form
|
||||||
->schema([
|
->schema(components: [
|
||||||
Forms\Components\Select::make('class_student_id')
|
Forms\Components\Select::make('class_student_id')
|
||||||
->relationship('classStudent', 'id') // atau gunakan relasi yang lebih deskriptif jika ada
|
->label('Siswa & Kelas')
|
||||||
->getOptionLabelFromRecordUsing(fn (ClassStudent $record) =>
|
->options(function () {
|
||||||
$record->class->class_name . ' - ' . $record->student->full_name . ' - ' . $record->academicYear->name)
|
$user = auth()->user();
|
||||||
|
$query = ClassStudent::with(['student', 'class']);
|
||||||
|
|
||||||
|
if ($user->hasAnyRole(['super_admin']))
|
||||||
|
{
|
||||||
|
return $query->get()->mapWithKeys(function ($cs) {
|
||||||
|
return [
|
||||||
|
$cs->id => $cs->student->full_name . ' - ' . $cs->class->class_name . ' - ' . $cs->academicYear->name,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
} else if ($user->hasAnyRole(['teacher'])) {
|
||||||
|
$homeRoomTeacher = HomeRoomTeacher::where('teacher_id', $user->id)->firstOrFail();
|
||||||
|
$query->whereHas('class', function ($query) use ($homeRoomTeacher) {
|
||||||
|
$query->where('id', $homeRoomTeacher->class_room_id);
|
||||||
|
});
|
||||||
|
return $query->get()->mapWithKeys(function ($cs) {
|
||||||
|
return [
|
||||||
|
$cs->id => $cs->student->full_name . ' - ' . $cs->class->class_name . ' - ' . $cs->academicYear->name,
|
||||||
|
];
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
})
|
||||||
->searchable()
|
->searchable()
|
||||||
->preload()
|
->preload(),
|
||||||
->required(),
|
|
||||||
|
|
||||||
Forms\Components\Select::make('extracurricular_id')
|
Forms\Components\Select::make('extracurricular_id')
|
||||||
->relationship('extracurricular', 'name')
|
->relationship('extracurricular', 'name')
|
||||||
@ -105,8 +125,11 @@ class ExtracurricularAssessmentResource extends Resource
|
|||||||
])
|
])
|
||||||
->bulkActions([
|
->bulkActions([
|
||||||
Tables\Actions\BulkActionGroup::make([
|
Tables\Actions\BulkActionGroup::make([
|
||||||
Tables\Actions\DeleteBulkAction::make(),
|
Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('super_admin') || auth()->user()->hasRole('teacher')),
|
||||||
]),
|
]),
|
||||||
|
])
|
||||||
|
->emptyStateActions([
|
||||||
|
Tables\Actions\CreateAction::make(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,13 +3,32 @@
|
|||||||
namespace App\Filament\Resources\ExtracurricularAssessmentResource\Pages;
|
namespace App\Filament\Resources\ExtracurricularAssessmentResource\Pages;
|
||||||
|
|
||||||
use App\Filament\Resources\ExtracurricularAssessmentResource;
|
use App\Filament\Resources\ExtracurricularAssessmentResource;
|
||||||
|
use App\Models\ExtracurricularAssessment;
|
||||||
|
use App\Models\HomeRoomTeacher;
|
||||||
use Filament\Actions;
|
use Filament\Actions;
|
||||||
use Filament\Resources\Pages\ListRecords;
|
use Filament\Resources\Pages\ListRecords;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class ListExtracurricularAssessments extends ListRecords
|
class ListExtracurricularAssessments extends ListRecords
|
||||||
{
|
{
|
||||||
protected static string $resource = ExtracurricularAssessmentResource::class;
|
protected static string $resource = ExtracurricularAssessmentResource::class;
|
||||||
|
|
||||||
|
protected function getTableQuery() : Builder
|
||||||
|
{
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
if ($user->hasRole('teacher')) {
|
||||||
|
$homeRoomTeacher = HomeRoomTeacher::where('teacher_id', $user->id)->firstOrFail();
|
||||||
|
return ExtracurricularAssessment::with('classStudent', 'extracurricular')
|
||||||
|
->whereHas('classStudent', function (Builder $query) use ($homeRoomTeacher) {
|
||||||
|
$query->where('class_room_id', $homeRoomTeacher->class_room_id)
|
||||||
|
->where('academic_year_id', $homeRoomTeacher->academic_year_id);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return ExtracurricularAssessment::query();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected function getHeaderActions(): array
|
protected function getHeaderActions(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
|||||||
@ -3,10 +3,53 @@
|
|||||||
namespace App\Filament\Resources\StudentResource\Pages;
|
namespace App\Filament\Resources\StudentResource\Pages;
|
||||||
|
|
||||||
use App\Filament\Resources\StudentResource;
|
use App\Filament\Resources\StudentResource;
|
||||||
|
use App\Models\Student;
|
||||||
|
use App\Models\User;
|
||||||
use Filament\Actions;
|
use Filament\Actions;
|
||||||
|
use Filament\Notifications\Notification;
|
||||||
use Filament\Resources\Pages\CreateRecord;
|
use Filament\Resources\Pages\CreateRecord;
|
||||||
|
|
||||||
class CreateStudent extends CreateRecord
|
class CreateStudent extends CreateRecord
|
||||||
{
|
{
|
||||||
protected static string $resource = StudentResource::class;
|
protected static string $resource = StudentResource::class;
|
||||||
|
|
||||||
|
// protected function mutateFormDataBeforeCreate(array $data): array
|
||||||
|
// {
|
||||||
|
//// $user = User::firstOrCreate(
|
||||||
|
//// ['email' => 'teacher@example.com'],
|
||||||
|
//// [
|
||||||
|
//// 'name' => 'teacher',
|
||||||
|
//// 'password' => bcrypt('teacher'),
|
||||||
|
//// ]
|
||||||
|
//// );
|
||||||
|
////
|
||||||
|
// $birthDate = explode('-', $data['birth_date']);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// $password = join("", $birthDate) . '-' . $data['nis'];
|
||||||
|
//
|
||||||
|
// $add = [
|
||||||
|
// 'email' => $data['email'],
|
||||||
|
// 'name' => $data['parent_name'],
|
||||||
|
// 'password' => $password,
|
||||||
|
// ];
|
||||||
|
//
|
||||||
|
// dd($add);
|
||||||
|
// die;
|
||||||
|
//
|
||||||
|
// $exists = Student::where('name', $data['name'])
|
||||||
|
// ->exists();
|
||||||
|
//
|
||||||
|
// if ($exists) {
|
||||||
|
// Notification::make()
|
||||||
|
// ->title('Failed to save')
|
||||||
|
// ->body('A record already exists.')
|
||||||
|
// ->danger()
|
||||||
|
// ->send();
|
||||||
|
//
|
||||||
|
// $this->halt(); // Stop the save process
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return $data;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -102,11 +102,11 @@ class UserResource extends Resource
|
|||||||
//
|
//
|
||||||
])
|
])
|
||||||
->actions([
|
->actions([
|
||||||
Tables\Actions\EditAction::make(),
|
Tables\Actions\EditAction::make()->visible(fn () => auth()->user()->hasRole('super_admin')),
|
||||||
])
|
])
|
||||||
->bulkActions([
|
->bulkActions([
|
||||||
Tables\Actions\BulkActionGroup::make([
|
Tables\Actions\BulkActionGroup::make([
|
||||||
// Tables\Actions\DeleteBulkAction::make(),
|
// Tables\Actions\DeleteBulkAction::make()->visible(fn () => auth()->user()->hasRole('super_admin')),
|
||||||
]),
|
]),
|
||||||
])
|
])
|
||||||
->emptyStateActions([
|
->emptyStateActions([
|
||||||
|
|||||||
@ -13,7 +13,7 @@ class HomeRoomTeacherPolicy
|
|||||||
*/
|
*/
|
||||||
public function viewAny(User $user): bool
|
public function viewAny(User $user): bool
|
||||||
{
|
{
|
||||||
return $user->can('view_any_home::rome::teacher');
|
return $user->can('view_any_home::room::teacher');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -21,7 +21,7 @@ class HomeRoomTeacherPolicy
|
|||||||
*/
|
*/
|
||||||
public function view(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
public function view(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
||||||
{
|
{
|
||||||
return $user->can('view_home::rome::teacher');
|
return $user->can('view_home::room::teacher');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,7 +29,7 @@ class HomeRoomTeacherPolicy
|
|||||||
*/
|
*/
|
||||||
public function create(User $user): bool
|
public function create(User $user): bool
|
||||||
{
|
{
|
||||||
return $user->can('create_home::rome::teacher');
|
return $user->can('create_home::room::teacher');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,7 +37,7 @@ class HomeRoomTeacherPolicy
|
|||||||
*/
|
*/
|
||||||
public function update(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
public function update(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
||||||
{
|
{
|
||||||
return $user->can('update_home::rome::teacher');
|
return $user->can('update_home::room::teacher');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,7 +45,7 @@ class HomeRoomTeacherPolicy
|
|||||||
*/
|
*/
|
||||||
public function delete(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
public function delete(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
||||||
{
|
{
|
||||||
return $user->can('delete_home::rome::teacher');
|
return $user->can('delete_home::room::teacher');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -53,7 +53,7 @@ class HomeRoomTeacherPolicy
|
|||||||
*/
|
*/
|
||||||
public function restore(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
public function restore(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
||||||
{
|
{
|
||||||
return $user->can('restore_home::rome::teacher');
|
return $user->can('restore_home::room::teacher');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -61,6 +61,6 @@ class HomeRoomTeacherPolicy
|
|||||||
*/
|
*/
|
||||||
public function forceDelete(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
public function forceDelete(User $user, HomeRoomTeacher $homeRomeTeacher): bool
|
||||||
{
|
{
|
||||||
return $user->can('force_delete_home::rome::teacher');
|
return $user->can('force_delete_home::room::teacher');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3007
package-lock.json
generated
Normal file
3007
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -12,6 +12,6 @@
|
|||||||
"laravel-vite-plugin": "^1.2.0",
|
"laravel-vite-plugin": "^1.2.0",
|
||||||
"postcss": "^8.4.47",
|
"postcss": "^8.4.47",
|
||||||
"tailwindcss": "^3.4.13",
|
"tailwindcss": "^3.4.13",
|
||||||
"vite": "^6.0.11"
|
"vite": "^6.3.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user