Linux sg77.dns-private.com 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64
LiteSpeed
Server IP : 135.181.230.13 & Your IP : 216.73.217.69
Domains :
Cant Read [ /etc/named.conf ]
User : pilasate
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
pilasate /
schoolms /
app /
Filament /
Resources /
Delete
Unzip
Name
Size
Permission
Date
Action
AttendanceResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
CourseAssignmentResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
CourseEnrollmentResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
GradeResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
MarkResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
MessageResource
[ DIR ]
drwxr-xr-x
2025-03-27 22:56
PromotionResource
[ DIR ]
drwxrwxrwx
2025-03-24 00:50
ReportResource
[ DIR ]
drwxrwxrwx
2025-03-24 10:11
StudentResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
SubjectResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
TeacherResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
UserResource
[ DIR ]
drwxrwxrwx
2025-03-23 13:10
Widgets
[ DIR ]
drwxrwxrwx
2025-03-23 19:51
AttendanceResource.php
13.87
KB
-rw-rw-rw-
2025-03-24 07:12
CourseAssignmentResource.php
7.36
KB
-rw-rw-rw-
2025-03-27 22:46
CourseEnrollmentResource.php
15.35
KB
-rw-rw-rw-
2025-03-24 06:07
GradeResource.php
3.48
KB
-rw-rw-rw-
2025-03-24 06:33
MarkResource.php
17.63
KB
-rw-rw-rw-
2025-03-28 00:00
MessageResource.php
5.43
KB
-rw-r--r--
2025-03-28 00:04
PromotionResource.php
8.05
KB
-rw-rw-rw-
2025-03-24 03:04
StudentResource.php
5.58
KB
-rw-rw-rw-
2025-03-27 22:49
SubjectResource.php
2.81
KB
-rw-rw-rw-
2025-03-24 11:32
TeacherResource.php
3.92
KB
-rw-rw-rw-
2025-03-24 11:32
UserResource.php
4.91
KB
-rw-rw-rw-
2025-03-24 06:45
Save
Rename
<?php namespace App\Filament\Resources; use App\Filament\Resources\CourseAssignmentResource\Pages; use App\Filament\Resources\CourseAssignmentResource\RelationManagers; use App\Models\CourseAssignment; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\Auth; class CourseAssignmentResource extends Resource { protected static ?string $model = CourseAssignment::class; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $navigationGroup = 'Learning Management'; protected static ?string $label = 'Subject Assignments'; public static function form(Form $form): Form { return $form ->schema([ Forms\Components\Select::make('grade_id') ->relationship('grade', 'name') ->native(false) ->placeholder('Grade name') ->preload() ->searchable() ->required() ->reactive(), Forms\Components\Select::make('course_id') ->relationship('course', 'name') ->native(false) ->placeholder('Course name') ->preload() ->searchable() ->required() ->reactive(), Forms\Components\Select::make('teacher_id') ->relationship('teacher', 'name', fn ($query) => $query->role('teacher')) ->native(false) ->placeholder('Teacher') ->preload() ->searchable() ->required() ->reactive(), Forms\Components\TextInput::make('year') ->placeholder('Year') ->required() ->numeric() ->minValue(2000) ->maxValue(date('Y') + 1) ->reactive(), Forms\Components\TextInput::make('semester') ->placeholder('Semester') ->required() ->reactive() ->rule(function ($get, $record) { return function ($attribute, $value, $fail) use ($get, $record) { $gradeId = $get('grade_id'); $courseId = $get('course_id'); $teacherId = $get('teacher_id'); $year = $get('year'); // Skip validation if any required field is missing if (!$gradeId || !$courseId || !$teacherId || !$year || !$value) { return; } // Check for existing assignment with same grade, course, teacher, year, and semester $query = CourseAssignment::where('grade_id', $gradeId) ->where('course_id', $courseId) ->where('teacher_id', $teacherId) ->where('year', $year) ->where('semester', $value); // Exclude current record if editing if ($record && $record->id) { $query->where('id', '!=', $record->id); } if ($query->exists()) { $fail("This teacher is already assigned to this course for Grade {$get('grade_id')}, {$year}, Semester {$value}."); } }; }), ]) ->columns(3); } public static function table(Table $table): Table { return $table ->query(function () { $user = Auth::user(); if ($user->hasRole('teacher')) { // Teachers only see their own course assignments return CourseAssignment::where('teacher_id', $user->id); } return CourseAssignment::query(); // Admins see all assignments }) ->columns([ Tables\Columns\TextColumn::make('grade.name') ->label('Grade') ->sortable() ->searchable(), Tables\Columns\TextColumn::make('course.name') ->sortable() ->searchable(), Tables\Columns\TextColumn::make('teacher.name') ->sortable() ->searchable(), Tables\Columns\TextColumn::make('year') ->sortable(), Tables\Columns\TextColumn::make('semester') ->sortable(), ]) ->filters([ Tables\Filters\SelectFilter::make('teacher') ->relationship('teacher', 'name') ->label('Filter by Teacher'), Tables\Filters\SelectFilter::make('course') ->relationship('course', 'name') ->label('Filter by Course'), Tables\Filters\SelectFilter::make('grade') ->relationship('grade', 'name') ->label('Filter by Grade'), ]) ->actions([ Tables\Actions\EditAction::make(), Tables\Actions\DeleteAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), ]), ]) ->defaultSort('year', 'desc'); } public static function getRelations(): array { return [ // Add relation managers if needed ]; } public static function getPages(): array { return [ 'index' => Pages\ListCourseAssignments::route('/'), 'create' => Pages\CreateCourseAssignment::route('/create'), 'edit' => Pages\EditCourseAssignment::route('/{record}/edit'), ]; } public static function getNavigationBadge(): ?string { $user = Auth::user(); if ($user->hasRole('admin')) { return (string) CourseAssignment::count(); } elseif ($user->hasRole('teacher')) { return (string) CourseAssignment::where('teacher_id', $user->id)->count(); } return (string) 0; } public static function canViewAny(): bool { // Allow both admins and teachers to view the resource return Auth::user()->hasAnyRole(['admin', 'teacher']); } public static function canCreate(): bool { return Auth::user()->hasRole('admin'); } public static function canEdit($record): bool { return Auth::user()->hasRole('admin'); } public static function canDelete($record): bool { return Auth::user()->hasRole('admin'); } }