Commit 51d62438 authored by luiz-davi's avatar luiz-davi
Browse files

listagem de professores para avaliação

parent 646e5362
...@@ -54,16 +54,14 @@ class PadController extends Controller ...@@ -54,16 +54,14 @@ class PadController extends Controller
*/ */
public function index() public function index()
{ {
if(Auth::user()->isTypeAdmin()) if (Auth::user()->isTypeAdmin()) {
{
$users = User::initQuery()->whereType(UserType::TEACHER)->get(); $users = User::initQuery()->whereType(UserType::TEACHER)->get();
$pads = Pad::all(); $pads = Pad::all();
$menu = Menu::PADS; $menu = Menu::PADS;
return view('pad.admin.index', ['menu' => $menu, 'pads' => $pads]); return view('pad.admin.index', ['menu' => $menu, 'pads' => $pads]);
} }
if(Auth::user()->isTypeTeacher()) if (Auth::user()->isTypeTeacher()) {
{
$menu = Menu::PADS; $menu = Menu::PADS;
$userPads = UserPad::whereUserId(Auth::user()->id)->get(); $userPads = UserPad::whereUserId(Auth::user()->id)->get();
...@@ -145,36 +143,34 @@ class PadController extends Controller ...@@ -145,36 +143,34 @@ class PadController extends Controller
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$validated = $request->validate([ $validated = $request->validate(
'nome' => ['required', 'string', 'min:6', 'max:255'], [
'status' => ['required', 'integer'], 'nome' => ['required', 'string', 'min:6', 'max:255'],
'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'], 'status' => ['required', 'integer'],
'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'], '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 6 letras', 'required' => 'O campo de :attribute é obrigatório',
'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras', 'nome.min' => 'O campo de :attribute deve ter no mínimo 6 letras',
'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim', 'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras',
'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início', '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) );
{
if ($validated) {
$model = new Pad($request->all()); $model = new Pad($request->all());
$users = User::initQuery()->whereType(UserType::TEACHER)->get(); $users = User::initQuery()->whereType(UserType::TEACHER)->get();
if($model->save()) if ($model->save()) {
{
$users = User::initQuery()->whereType(UserType::TEACHER)->get(); $users = User::initQuery()->whereType(UserType::TEACHER)->get();
foreach($users as $user) foreach ($users as $user) {
{
$profile = $user->profile(UserType::TEACHER); $profile = $user->profile(UserType::TEACHER);
if($profile) if ($profile) {
{
$userPad = new UserPad(); $userPad = new UserPad();
$userPad->pad_id = $model->id; $userPad->pad_id = $model->id;
$userPad->user_id = $user->id; $userPad->user_id = $user->id;
...@@ -189,12 +185,11 @@ class PadController extends Controller ...@@ -189,12 +185,11 @@ class PadController extends Controller
return redirect()->route('pad_index')->with('success', 'Erro ao cadastrar o PAD!'); return redirect()->route('pad_index')->with('success', 'Erro ao cadastrar o PAD!');
} }
} }
} }
public function anexo() public function anexo()
{ {
return view('pad.anexo', ['index_menu' => 1 ]); return view('pad.anexo', ['index_menu' => 1]);
} }
/** /**
...@@ -230,25 +225,27 @@ class PadController extends Controller ...@@ -230,25 +225,27 @@ class PadController extends Controller
*/ */
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
$validated = $request->validate([ $validated = $request->validate(
'nome' => ['required', 'string', 'min:6', 'max:255'], [
'status' => ['required', 'integer'], 'nome' => ['required', 'string', 'min:6', 'max:255'],
'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'], 'status' => ['required', 'integer'],
'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'], '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 6 letras', 'required' => 'O campo de :attribute é obrigatório',
'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras', 'nome.min' => 'O campo de :attribute deve ter no mínimo 6 letras',
'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim', 'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras',
'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início', '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) { );
if ($validated) {
$model = Pad::find($id); $model = Pad::find($id);
$model->fill($request->all()); $model->fill($request->all());
if($model->save()) { if ($model->save()) {
return redirect()->route('pad_index')->with('success', 'PAD atualizado com sucesso!'); return redirect()->route('pad_index')->with('success', 'PAD atualizado com sucesso!');
} else { } else {
return redirect()->route('pad_index')->with('success', 'Erro ao atualizar o PAD!'); return redirect()->route('pad_index')->with('success', 'Erro ao atualizar o PAD!');
...@@ -257,10 +254,11 @@ class PadController extends Controller ...@@ -257,10 +254,11 @@ class PadController extends Controller
} }
public function delete($id) { public function delete($id)
{
$model = Pad::find($id); $model = Pad::find($id);
if($model->delete()) { if ($model->delete()) {
return redirect()->route('pad_index')->with('success', 'PAD removido com sucesso!'); return redirect()->route('pad_index')->with('success', 'PAD removido com sucesso!');
} else { } else {
return redirect()->route('pad_index')->with('fail', 'Não foi possível remover o PAD!'); return redirect()->route('pad_index')->with('fail', 'Não foi possível remover o PAD!');
...@@ -280,4 +278,21 @@ class PadController extends Controller ...@@ -280,4 +278,21 @@ class PadController extends Controller
return redirect('/pad/index'); return redirect('/pad/index');
} }
public function professores($id)
{
$user = Auth::user();
$professores = User::join('user_pad', 'user_pad.user_id', '=', 'users.id')
->join('pad', 'user_pad.pad_id', '=', 'pad.id')
->where(function ($query) use ($user, $id) {
$query->where('pad.status', '=', Status::ATIVO);
$query->where('users.campus_id', '=', $user->campus_id);
$query->where('users.id', '!=', $user->id);
$query->where('pad.id', '=', $id);
})
->select('users.id', 'users.name')
->get();
dd($professores);
}
} }
...@@ -7,6 +7,6 @@ ...@@ -7,6 +7,6 @@
<h3 class="text-center"> <i class="bi bi-book-half"></i> </h3> <h3 class="text-center"> <i class="bi bi-book-half"></i> </h3>
<h5 class="text-center"> PAD: {{ $userPad->pad->nome }} </h4> <h5 class="text-center"> PAD: {{ $userPad->pad->nome }} </h4>
<h5 class="text-center"> Status: {{ $userPad->pad->statusAsString() }} </h4> <h5 class="text-center"> Status: {{ $userPad->pad->statusAsString() }} </h4>
<a class="stretched-link" href="{{ route('pad_view', ['id' => $userPad->id]) }}"></a> <a class="stretched-link" href="{{ route('pad_professores', ['id' => $userPad->id]) }}"></a>
</div> </div>
</div> </div>
...@@ -12,6 +12,7 @@ Route::prefix('/pad')->group(function () { ...@@ -12,6 +12,7 @@ Route::prefix('/pad')->group(function () {
Route::get('/edit/{id}', [PadController::class, 'edit'])->name('pad_edit'); Route::get('/edit/{id}', [PadController::class, 'edit'])->name('pad_edit');
Route::put('/update/{id}', [PadController::class, 'update'])->name('pad_update'); Route::put('/update/{id}', [PadController::class, 'update'])->name('pad_update');
Route::delete('/delete/{id}', [PadController::class, 'delete'])->name('pad_delete'); Route::delete('/delete/{id}', [PadController::class, 'delete'])->name('pad_delete');
Route::get('/{id}/avaliar/professores', [PadController::class, 'professores'])->name('pad_professores');
}); });
/** PadProfessor */ /** PadProfessor */
...@@ -26,4 +27,4 @@ Route::prefix('/pad/professor')->group(function () { ...@@ -26,4 +27,4 @@ Route::prefix('/pad/professor')->group(function () {
// Route::get('/index', [PadAvaliadorController::class, 'index'])->name('pad_index'); // Route::get('/index', [PadAvaliadorController::class, 'index'])->name('pad_index');
// // Route::get('/view/{id}', [PadAvaliadorController::class, 'view'])->name('pad_view'); // // Route::get('/view/{id}', [PadAvaliadorController::class, 'view'])->name('pad_view');
// // Route::get('/anexo/{id}', [PadAvaliadorController::class, 'anexo'])->name('pad_anexo'); // // Route::get('/anexo/{id}', [PadAvaliadorController::class, 'anexo'])->name('pad_anexo');
// }); // });
\ No newline at end of file
...@@ -103,4 +103,3 @@ Route::prefix('/user')->group(function () { ...@@ -103,4 +103,3 @@ Route::prefix('/user')->group(function () {
Route::post('/update/perfil', [UserController::class, 'updatePerfil'])->name('update_perfil'); Route::post('/update/perfil', [UserController::class, 'updatePerfil'])->name('update_perfil');
Route::post('/update/password', [UserController::class, 'updatePassword'])->name('update_password'); Route::post('/update/password', [UserController::class, 'updatePassword'])->name('update_password');
}); });
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment