%PDF- %PDF-
Direktori : /var/www/html/camillo/camillo-api-master/app/Nova/ |
Current File : /var/www/html/camillo/camillo-api-master/app/Nova/Absence.php |
<?php namespace App\Nova; use App\Enums\UsertypeEnum; use Laravel\Nova\Fields\BelongsTo; use Laravel\Nova\Fields\Date; use Laravel\Nova\Fields\ID; use Illuminate\Http\Request; use Laravel\Nova\Fields\Text; use Laravel\Nova\Http\Requests\NovaRequest; use Zingazzi\ItalianDateTime\ItalianDateTime as DateTime; class Absence extends Resource { /** * The model the resource corresponds to. * * @var string */ public static $model = 'App\Models\Absence'; public static function label() { return __('Absences'); } public static function singularLabel() { return __('Absence'); } public function title() { return ucfirst($this->minor->name) . " " . ucfirst($this->minor->surname) . " " . $this->date->format('d-m-Y'); } /** * The columns that should be searched. * * @var array */ public static $search = [ 'id', 'minor_id', 'date' ]; public static function indexQuery(NovaRequest $request, $query) { $user = $request->user(); $institutes = $user->institutes; $institute_ids = $institutes->map(function ($item, $key){ return $item->id; }); if($user->usertype->role === UsertypeEnum::PRINCIPAL) { $query->whereHas('classroom', function ($q) use ($institute_ids) { $q->whereHas('institute', function ($q) use ($institute_ids) { $q->whereIn('institute_id', $institute_ids); }); }); } } /** * Get the fields displayed by the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function fields(Request $request) { return [ ID::make()->sortable()->canSee(function($request){ return $request->user()->usertype->role === UsertypeEnum::ADMIN; }), BelongsTo::make(__('Minor*'), 'minor', Minor::class) ->rules('required') ->sortable(), BelongsTo::make(__('Classroom*'), 'classroom', Classroom::class) ->rules('required') ->sortable(), Text::make(__('Reason*'), 'reason') ->rules('required') ->sortable(), DateTime::make(__('Date*'), 'date') ->rules('required')->format('D-M-Y') ->sortable() ]; } /** * Get the cards available for the request. * * @param \Illuminate\Http\Request $request * @return array */ public function cards(Request $request) { return []; } /** * Get the filters available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function filters(Request $request) { return []; } /** * Get the lenses available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function lenses(Request $request) { return []; } /** * Get the actions available for the resource. * * @param \Illuminate\Http\Request $request * @return array */ public function actions(Request $request) { return []; } }