From 72a7c211627b2b40cb1c384fe3748afb741e89fe Mon Sep 17 00:00:00 2001 From: alissonalbuquerque Date: Wed, 29 Jun 2022 18:04:16 -0300 Subject: [PATCH] refatoracao do pad: professor --- app/Http/Controllers/PADController.php | 31 +++++++++---- app/Models/UserPad.php | 9 +++- app/Queries/UserPadQuery.php | 43 +++++++++++++++++ resources/views/pad/index.blade.php | 51 --------------------- resources/views/pad/teacher/index.blade.php | 35 ++++++++++++++ resources/views/pad/teacher/view.blade.php | 37 +++++++++++++++ routes/web.php | 20 +++++--- 7 files changed, 158 insertions(+), 68 deletions(-) create mode 100644 app/Queries/UserPadQuery.php delete mode 100644 resources/views/pad/index.blade.php create mode 100644 resources/views/pad/teacher/index.blade.php create mode 100644 resources/views/pad/teacher/view.blade.php diff --git a/app/Http/Controllers/PADController.php b/app/Http/Controllers/PADController.php index 17a6762..58fa506 100644 --- a/app/Http/Controllers/PADController.php +++ b/app/Http/Controllers/PADController.php @@ -29,9 +29,24 @@ class PadController extends Controller return view('pad.admin.index', ['pads' => $pads]); } - dd('refatorar'); + if(Auth::user()->isTypeTeacher()) { + + $index_menu = 1; + $userPads = UserPad::find()->whereUser(Auth::user()->id)->get(); + + return view('pad.teacher.index', ['index_menu' => $index_menu, 'userPads' => $userPads]); + } } + /** + * @param integer $id + * @return \Illuminate\Http\Response + */ + public function view($id) { + + return view('pad.teacher.view', ['id' => $id]); + } + /** * Show the form for creating a new resource. * @@ -47,20 +62,19 @@ class PadController extends Controller /** * Store a newly created resource in storage. - * * @param \Illuminate\Http\Request $request */ public function store(Request $request) { $validated = $request->validate([ - 'nome' => ['required', 'string', 'min:5', 'max:255'], + 'nome' => ['required', 'string', 'min:6', 'max:255'], 'status' => ['required', 'integer'], 'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'], 'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'], ], [ 'required' => 'O campo de :attribute é obrigatório', - 'nome.min' => 'O campo de :attribute deve ter no mínimo 5 letras', + 'nome.min' => 'O campo de :attribute deve ter no mínimo 6 letras', 'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras', 'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim', 'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início', @@ -148,27 +162,28 @@ class PadController extends Controller * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request - * @param int $id + * @param integer $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $validated = $request->validate([ - 'nome' => ['required', 'string', 'min:5', 'max:255'], + 'nome' => ['required', 'string', 'min:6', 'max:255'], 'status' => ['required', 'integer'], 'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'], 'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'], ], [ 'required' => 'O campo de :attribute é obrigatório', - 'nome.min' => 'O campo de :attribute deve ter no mínimo 5 letras', + 'nome.min' => 'O campo de :attribute deve ter no mínimo 6 letras', 'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras', 'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim', 'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início', ]); if($validated) { - $model = new Pad($request->all()); + $model = Pad::find($id); + $model->fill($request->all()); if($model->save()) { return redirect()->route('pad_index')->with('success', 'PAD atualizado com sucesso!'); diff --git a/app/Models/UserPad.php b/app/Models/UserPad.php index 6a3b17d..032f2b1 100644 --- a/app/Models/UserPad.php +++ b/app/Models/UserPad.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Queries\UserPadQuery; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -14,11 +15,15 @@ class UserPad extends Model protected $fillable = ['user_id', 'pad_id']; public function user() { - $this->belongsTo(User::class); + return $this->belongsTo(User::class); } public function pad() { - $this->belongsTo(PAD::class); + return $this->belongsTo(PAD::class); + } + + public static function find() { + return new UserPadQuery(get_called_class()); } } diff --git a/app/Queries/UserPadQuery.php b/app/Queries/UserPadQuery.php new file mode 100644 index 0000000..1411113 --- /dev/null +++ b/app/Queries/UserPadQuery.php @@ -0,0 +1,43 @@ +query = UserPad::where([]); + } + + /** + * @param integer $id + * @return UserPadQuery|Builder + */ + public function whereId($id, $expression = '=') + { + $this->query = $this->query->where('id', $expression, $id); + return $this->query; + } + + /** + * @param integer $user_id + * @return UserPadQuery|Builder + */ + public function whereUser($user_id, $expression = '=') + { + $this->query = $this->query->where('user_id', $expression, $user_id); + return $this->query; + } + + /** + * @return Builder + */ + public function getQuery() + { + return $this->query; + } +} \ No newline at end of file diff --git a/resources/views/pad/index.blade.php b/resources/views/pad/index.blade.php deleted file mode 100644 index e6e432d..0000000 --- a/resources/views/pad/index.blade.php +++ /dev/null @@ -1,51 +0,0 @@ -@extends('layouts.main') - -@section('title', 'Unidade') -@section('header') - @include('layouts.header', [ - 'user' => Auth::user(), - ]) -@endsection -@section('nav') - @include('layouts.navigation', [ - 'index_menu' => $index_menu, - ]) -@endsection -@section('body') -
-
-

PLANO DE ATIVIDADES DOCENTES (PAD)

-

ANEXO B -

-

- Insira os dados correspondentes nos campos exibidos abaixo -

-
-
- -@endsection diff --git a/resources/views/pad/teacher/index.blade.php b/resources/views/pad/teacher/index.blade.php new file mode 100644 index 0000000..b107821 --- /dev/null +++ b/resources/views/pad/teacher/index.blade.php @@ -0,0 +1,35 @@ +@extends('layouts.main') + +@php + use App\Models\Tabelas\Constants; +@endphp + +@section('title', 'Unidade') +@section('header') + @include('layouts.header', [ + 'user' => Auth::user(), + ]) +@endsection +@section('nav') + @include('layouts.navigation', [ + 'index_menu' => $index_menu, + ]) +@endsection +@section('body') +
+ @foreach($userPads as $userPad) +
+
+ @if($userPad->pad->status === Constants::STATUS_ATIVO) +

+ @else +

+ @endif +
PAD: {{ $userPad->pad->nome }}
+
Status: {{ $userPad->pad->getStatusAsText() }}
+ +
+
+ @endforeach +
+@endsection diff --git a/resources/views/pad/teacher/view.blade.php b/resources/views/pad/teacher/view.blade.php new file mode 100644 index 0000000..19a5c3d --- /dev/null +++ b/resources/views/pad/teacher/view.blade.php @@ -0,0 +1,37 @@ +
+
+

PLANO DE ATIVIDADES DOCENTES (PAD)

+

ANEXO B +

+

+ Insira os dados correspondentes nos campos exibidos abaixo +

+
+
+ + \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 6b29265..042c48d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -81,6 +81,19 @@ Route::prefix('/pad')->group(function () { Route::delete('/delete/{id}', [PadController::class, 'delete'])->name('pad_delete'); }); +Route::prefix('/pad/professor')->group(function () { + Route::get('/index', [PadController::class, 'index'])->name('pad_index'); + Route::get('/view/{id}', [PadController::class, 'view'])->name('pad_view'); + Route::get('/anexo', [PadController::class, 'anexo'])->name('pad_anexo'); +}); + +Route::prefix('/pad/dimensao/')->group(function () { + Route::get('/gestao', [GestaoController::class, 'index'])->name('dimensao_gestao'); + Route::get('/ensino', [EnsinoController::class, 'index'])->name('dimensao_ensino'); + Route::get('/pesquisa', [PesquisaController::class, 'index'])->name('dimensao_pesquisa'); + Route::get('/extensao', [ExtensaoController::class, 'index'])->name('dimensao_extensao'); +}); + Route::prefix('/coordenador')->group(function () { Route::get('/index', [CoordenadorController::class, 'index'])->name('coordenador_index'); Route::get('/create', [CoordenadorController::class, 'create'])->name('coordenador_create'); @@ -103,13 +116,6 @@ Route::prefix('/diretor')->group(function () { Route::get('/listar/unidade', [UnidadeController::class, 'getAll'])->name('listar_unidades'); Route::get('/list/campus/{unidade_id}', [CampusController::class, 'findByUnidade'])->name('list_campus_by_unidade'); -Route::prefix('/pad/dimensao/')->group(function () { - Route::get('/gestao', [GestaoController::class, 'index'])->name('dimensao_gestao'); - Route::get('/ensino', [EnsinoController::class, 'index'])->name('dimensao_ensino'); - Route::get('/pesquisa', [PesquisaController::class, 'index'])->name('dimensao_pesquisa'); - Route::get('/extensao', [ExtensaoController::class, 'index'])->name('dimensao_extensao'); -}); - Route::prefix('/pad/dimensao/ensino')->group(function () { Route::post('/aulas/create', [EnsinoAulaController::class, 'create'])->name('ensino_aula_create'); // Route::get('/ensino/aulas/update', [EnsinoAulaController::class, 'update'])->name('ensino_aula_update'); -- GitLab